From 10c86a2a10e0e3337ba5d6075a380ed9e2c8bc4b Mon Sep 17 00:00:00 2001 From: realvictorprm Date: Sat, 8 Apr 2017 23:21:00 +0200 Subject: [PATCH] Fixed the generated C# when an incomplete class is forwarded more than once. Signed-off-by: Dimitar Dobrev --- src/AST/Declaration.cs | 2 + src/CppParser/AST.cpp | 1 + src/CppParser/AST.h | 1 + src/CppParser/Bindings/CLI/AST.cpp | 26 + src/CppParser/Bindings/CLI/AST.h | 11 + .../CppSharp.CppParser.cs | 12092 +++++++-------- .../CSharp/i686-apple-darwin12.4.0/Std.cs | 8 +- .../i686-pc-win32-msvc/CppSharp.CppParser.cs | 11932 ++++++++------- .../Bindings/CSharp/i686-pc-win32-msvc/Std.cs | 6 +- .../CppSharp.CppParser.cs | 12724 ++++++++-------- .../CppSharp.CppParser.cs | 12228 +++++++-------- .../CSharp/x86_64-linux-gnu-cxx11abi/Std.cs | 9 +- .../x86_64-linux-gnu/CppSharp.CppParser.cs | 12104 +++++++-------- .../Bindings/CSharp/x86_64-linux-gnu/Std.cs | 9 +- .../CppSharp.CppParser.cs | 12040 ++++++++------- .../CSharp/x86_64-pc-win32-msvc/Std.cs | 6 +- src/CppParser/Parser.cpp | 6 +- src/CppParser/Parser.h | 3 +- src/Generator/Passes/RenamePass.cs | 3 +- .../Passes/ResolveIncompleteDeclsPass.cs | 25 +- src/Parser/ASTConverter.cs | 7 + tests/CSharp/AnotherUnit.h | 4 + tests/CSharp/CSharp.Tests.cs | 16 + tests/CSharp/CSharp.cpp | 28 + tests/CSharp/CSharp.h | 14 +- 25 files changed, 37347 insertions(+), 35958 deletions(-) diff --git a/src/AST/Declaration.cs b/src/AST/Declaration.cs index d54aab5a..5d29b6df 100644 --- a/src/AST/Declaration.cs +++ b/src/AST/Declaration.cs @@ -317,6 +317,8 @@ namespace CppSharp.AST public List Attributes { get; private set; } + public List Redeclarations { get; } = new List(); + protected Declaration() { Access = AccessSpecifier.Public; diff --git a/src/CppParser/AST.cpp b/src/CppParser/AST.cpp index 86a2ee3e..b79c1eeb 100644 --- a/src/CppParser/AST.cpp +++ b/src/CppParser/AST.cpp @@ -281,6 +281,7 @@ DEF_STRING(Declaration, Name) DEF_STRING(Declaration, USR) DEF_STRING(Declaration, DebugText) DEF_VECTOR(Declaration, PreprocessedEntity*, PreprocessedEntities) +DEF_VECTOR(Declaration, Declaration*, Redeclarations) DeclarationContext::DeclarationContext(DeclarationKind kind) : Declaration(kind) diff --git a/src/CppParser/AST.h b/src/CppParser/AST.h index f6495f57..bfb8d547 100644 --- a/src/CppParser/AST.h +++ b/src/CppParser/AST.h @@ -483,6 +483,7 @@ public: Declaration* completeDeclaration; unsigned definitionOrder; VECTOR(PreprocessedEntity*, PreprocessedEntities) + VECTOR(Declaration*, Redeclarations) void* originalPtr; RawComment* comment; }; diff --git a/src/CppParser/Bindings/CLI/AST.cpp b/src/CppParser/Bindings/CLI/AST.cpp index d82df074..655de2ed 100644 --- a/src/CppParser/Bindings/CLI/AST.cpp +++ b/src/CppParser/Bindings/CLI/AST.cpp @@ -1898,6 +1898,26 @@ void CppSharp::Parser::AST::Declaration::ClearPreprocessedEntities() ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->clearPreprocessedEntities(); } +CppSharp::Parser::AST::Declaration^ CppSharp::Parser::AST::Declaration::GetRedeclarations(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->getRedeclarations(i); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)__ret); +} + +void CppSharp::Parser::AST::Declaration::AddRedeclarations(CppSharp::Parser::AST::Declaration^ s) +{ + if (ReferenceEquals(s, nullptr)) + throw gcnew ::System::ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + auto __arg0 = (::CppSharp::CppParser::AST::Declaration*)s->NativePtr; + ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->addRedeclarations(__arg0); +} + +void CppSharp::Parser::AST::Declaration::ClearRedeclarations() +{ + ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->clearRedeclarations(); +} + CppSharp::Parser::AST::Declaration::operator CppSharp::Parser::AST::Declaration^(CppSharp::Parser::AST::DeclarationKind kind) { auto __arg0 = (::CppSharp::CppParser::AST::DeclarationKind)kind; @@ -2096,6 +2116,12 @@ unsigned int CppSharp::Parser::AST::Declaration::PreprocessedEntitiesCount::get( return __ret; } +unsigned int CppSharp::Parser::AST::Declaration::RedeclarationsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->getRedeclarationsCount(); + return __ret; +} + CppSharp::Parser::AST::DeclarationContext::DeclarationContext(::CppSharp::CppParser::AST::DeclarationContext* native) : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) { diff --git a/src/CppParser/Bindings/CLI/AST.h b/src/CppParser/Bindings/CLI/AST.h index bb2d77ec..0e54c15e 100644 --- a/src/CppParser/Bindings/CLI/AST.h +++ b/src/CppParser/Bindings/CLI/AST.h @@ -1489,12 +1489,23 @@ namespace CppSharp unsigned int get(); } + property unsigned int RedeclarationsCount + { + unsigned int get(); + } + CppSharp::Parser::AST::PreprocessedEntity^ GetPreprocessedEntities(unsigned int i); void AddPreprocessedEntities(CppSharp::Parser::AST::PreprocessedEntity^ s); void ClearPreprocessedEntities(); + CppSharp::Parser::AST::Declaration^ GetRedeclarations(unsigned int i); + + void AddRedeclarations(CppSharp::Parser::AST::Declaration^ s); + + void ClearRedeclarations(); + static operator CppSharp::Parser::AST::Declaration^(CppSharp::Parser::AST::DeclarationKind kind); protected: 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 cd3f3c7f..abf30cf4 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 @@ -669,569 +669,525 @@ namespace CppSharp } } - public unsafe partial class TagType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class Declaration : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 12)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 104)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr declaration; + public global::System.IntPtr _namespace; + + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(16)] + public int lineNumberStart; + + [FieldOffset(20)] + public int lineNumberEnd; + + [FieldOffset(24)] + public global::Std.__1.BasicString.__Internal Name; + + [FieldOffset(36)] + public global::Std.__1.BasicString.__Internal USR; + + [FieldOffset(48)] + public global::Std.__1.BasicString.__Internal DebugText; + + [FieldOffset(60)] + public byte isIncomplete; + + [FieldOffset(61)] + public byte isDependent; + + [FieldOffset(62)] + public byte isImplicit; + + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(68)] + public uint definitionOrder; + + [FieldOffset(72)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; + + [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] + public global::System.IntPtr originalPtr; + + [FieldOffset(100)] + public global::System.IntPtr comment; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST7TagTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST7TagTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.TagType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new TagType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.TagType __CreateInstance(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) - { - return new TagType(native, skipVTables); - } + EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - private static void* __CopyValue(global::CppSharp.Parser.AST.TagType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); - global::CppSharp.Parser.AST.TagType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - private TagType(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration23getPreprocessedEntitiesEj")] + internal static extern global::System.IntPtr GetPreprocessedEntities_0(global::System.IntPtr instance, uint i); - protected TagType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration23addPreprocessedEntitiesERPNS1_18PreprocessedEntityE")] + internal static extern void AddPreprocessedEntities_0(global::System.IntPtr instance, global::System.IntPtr s); - public TagType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration25clearPreprocessedEntitiesEv")] + internal static extern void ClearPreprocessedEntities_0(global::System.IntPtr instance); - public TagType(global::CppSharp.Parser.AST.TagType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration17getRedeclarationsEj")] + internal static extern global::System.IntPtr GetRedeclarations_0(global::System.IntPtr instance, uint i); - public global::CppSharp.Parser.AST.Declaration Declaration - { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration); - return __result0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration17addRedeclarationsERPS2_")] + internal static extern void AddRedeclarations_0(global::System.IntPtr instance, global::System.IntPtr s); - set - { - ((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration19clearRedeclarationsEv")] + internal static extern void ClearRedeclarations_0(global::System.IntPtr instance); - public unsafe partial class ArrayType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 28)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration7getNameEv")] + internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); - [FieldOffset(4)] - public byte isDependent; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration7setNameEPKc")] + internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration6getUSREv")] + internal static extern global::System.IntPtr USR_0(global::System.IntPtr instance); - [FieldOffset(16)] - public global::CppSharp.Parser.AST.ArrayType.ArraySize sizeType; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration6setUSREPKc")] + internal static extern void SetUSR_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - [FieldOffset(20)] - public int size; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration12getDebugTextEv")] + internal static extern global::System.IntPtr DebugText_0(global::System.IntPtr instance); - [FieldOffset(24)] - public int elementSize; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration12setDebugTextEPKc")] + internal static extern void SetDebugText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ArrayTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration28getPreprocessedEntitiesCountEv")] + internal static extern uint GetPreprocessedEntitiesCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ArrayTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration22getRedeclarationsCountEv")] + internal static extern uint GetRedeclarationsCount_0(global::System.IntPtr instance); } - public enum ArraySize - { - Constant = 0, - Variable = 1, - Dependent = 2, - Incomplete = 3 - } + public global::System.IntPtr __Instance { get; protected set; } - internal static new global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ArrayType(native.ToPointer(), skipVTables); + return new Declaration(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) { - return new ArrayType(native, skipVTables); + return new Declaration(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ArrayType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Declaration.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); - global::CppSharp.Parser.AST.ArrayType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); + global::CppSharp.Parser.AST.Declaration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ArrayType(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) + private Declaration(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ArrayType(void* native, bool skipVTables = false) - : base((void*) null) + protected Declaration(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public ArrayType() - : this((void*) null) + public Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public ArrayType(global::CppSharp.Parser.AST.ArrayType _0) - : this((void*) null) + public Declaration(global::CppSharp.Parser.AST.Declaration _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public void Dispose() { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType); - } + Dispose(disposing: true); + } - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.ArrayType.ArraySize SizeType + public virtual void Dispose(bool disposing) { - get - { - return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType; - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType = value; - } + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public int Size + public global::CppSharp.Parser.AST.PreprocessedEntity GetPreprocessedEntities(uint i) { - get - { - return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size; - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size = value; - } + var __ret = __Internal.GetPreprocessedEntities_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.PreprocessedEntity __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.PreprocessedEntity) global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.PreprocessedEntity.__CreateInstance(__ret); + return __result0; } - public int ElementSize + public void AddPreprocessedEntities(global::CppSharp.Parser.AST.PreprocessedEntity s) { - get - { - return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize; - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize = value; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddPreprocessedEntities_0((__Instance + __PointerAdjustment), __arg0); } - } - public unsafe partial class FunctionType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 36)] - public new partial struct __Internal + public void ClearPreprocessedEntities() { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - - [FieldOffset(16)] - public global::CppSharp.Parser.AST.CallingConvention callingConvention; - - [FieldOffset(20)] - public global::CppSharp.Parser.AST.ExceptionSpecType exceptionSpecType; - - [FieldOffset(24)] - internal global::Std.__1.Vector.__Internal Parameters; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType13getParametersEj")] - internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType13addParametersERPNS1_9ParameterE")] - internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType15clearParametersEv")] - internal static extern void ClearParameters_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType18getParametersCountEv")] - internal static extern uint GetParametersCount_0(global::System.IntPtr instance); + __Internal.ClearPreprocessedEntities_0((__Instance + __PointerAdjustment)); } - internal static new global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public global::CppSharp.Parser.AST.Declaration GetRedeclarations(uint i) { - return new FunctionType(native.ToPointer(), skipVTables); + var __ret = __Internal.GetRedeclarations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Declaration __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(__ret); + return __result0; } - internal static global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) + public void AddRedeclarations(global::CppSharp.Parser.AST.Declaration s) { - return new FunctionType(native, skipVTables); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddRedeclarations_0((__Instance + __PointerAdjustment), __arg0); } - private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionType.__Internal native) + public void ClearRedeclarations() { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); - global::CppSharp.Parser.AST.FunctionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + __Internal.ClearRedeclarations_0((__Instance + __PointerAdjustment)); } - private FunctionType(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public static implicit operator global::CppSharp.Parser.AST.Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + return new global::CppSharp.Parser.AST.Declaration(kind); } - protected FunctionType(void* native, bool skipVTables = false) - : base((void*) null) + public global::CppSharp.Parser.AST.DeclarationKind Kind { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind; + } - public FunctionType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind = value; + } } - public FunctionType(global::CppSharp.Parser.AST.FunctionType _0) - : this((void*) null) + public global::CppSharp.Parser.AST.AccessSpecifier Access { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access; + } - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Type __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access = value; + } } - public global::CppSharp.Parser.AST.Parameter GetParameters(uint i) + public global::CppSharp.Parser.AST.DeclarationContext Namespace { - var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Parameter __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Parameter.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Parameter) global::CppSharp.Parser.AST.Parameter.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Parameter.__CreateInstance(__ret); - return __result0; - } + get + { + global::CppSharp.Parser.AST.DeclarationContext __result0; + if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace)) + __result0 = (global::CppSharp.Parser.AST.DeclarationContext) global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace]; + else __result0 = global::CppSharp.Parser.AST.DeclarationContext.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace); + return __result0; + } - public void AddParameters(global::CppSharp.Parser.AST.Parameter s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public void ClearParameters() + public global::CppSharp.Parser.SourceLocation Location { - __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); + get + { + return global::CppSharp.Parser.SourceLocation.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location); + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location = value.__Instance; + } } - public global::CppSharp.Parser.AST.QualifiedType ReturnType + public int LineNumberStart { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType); + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart; } set { - ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart = value; } } - public global::CppSharp.Parser.AST.CallingConvention CallingConvention + public int LineNumberEnd { get { - return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention; + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd; } set { - ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention = value; + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd = value; } } - public global::CppSharp.Parser.AST.ExceptionSpecType ExceptionSpecType + public bool IsIncomplete { get { - return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType; + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete != 0; } set { - ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType = value; + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete = (byte) (value ? 1 : 0); } } - public uint ParametersCount + public bool IsDependent { get { - var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent != 0; } - } - } - public unsafe partial class PointerType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 20)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedPointee; - - [FieldOffset(16)] - public global::CppSharp.Parser.AST.PointerType.TypeModifier modifier; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11PointerTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11PointerTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent = (byte) (value ? 1 : 0); + } } - public enum TypeModifier + public bool IsImplicit { - Value = 0, - Pointer = 1, - LVReference = 2, - RVReference = 3 - } + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit != 0; + } - internal static new global::CppSharp.Parser.AST.PointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new PointerType(native.ToPointer(), skipVTables); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit = (byte) (value ? 1 : 0); + } } - internal static global::CppSharp.Parser.AST.PointerType __CreateInstance(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) + public global::CppSharp.Parser.AST.Declaration CompleteDeclaration { - return new PointerType(native, skipVTables); + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - private static void* __CopyValue(global::CppSharp.Parser.AST.PointerType.__Internal native) + public uint DefinitionOrder { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); - global::CppSharp.Parser.AST.PointerType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder = value; + } } - private PointerType(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public global::System.IntPtr OriginalPtr { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; + } } - protected PointerType(void* native, bool skipVTables = false) - : base((void*) null) + public global::CppSharp.Parser.AST.RawComment Comment { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + get + { + global::CppSharp.Parser.AST.RawComment __result0; + if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.RawComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment)) + __result0 = (global::CppSharp.Parser.AST.RawComment) global::CppSharp.Parser.AST.RawComment.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment]; + else __result0 = global::CppSharp.Parser.AST.RawComment.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public PointerType() - : this((void*) null) + public string Name { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + get + { + var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetName_0((__Instance + __PointerAdjustment), value); + } } - public PointerType(global::CppSharp.Parser.AST.PointerType _0) - : this((void*) null) + public string USR { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + get + { + var __ret = __Internal.USR_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetUSR_0((__Instance + __PointerAdjustment), value); + } } - public global::CppSharp.Parser.AST.QualifiedType QualifiedPointee + public string DebugText { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee); + var __ret = __Internal.DebugText_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + __Internal.SetDebugText_0((__Instance + __PointerAdjustment), value); } } - public global::CppSharp.Parser.AST.PointerType.TypeModifier Modifier + public uint PreprocessedEntitiesCount { get { - return ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier; + var __ret = __Internal.GetPreprocessedEntitiesCount_0((__Instance + __PointerAdjustment)); + return __ret; } + } - set + public uint RedeclarationsCount + { + get { - ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier = value; + var __ret = __Internal.GetRedeclarationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class MemberPointerType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TagType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 16)] + [StructLayout(LayoutKind.Explicit, Size = 12)] public new partial struct __Internal { [FieldOffset(0)] @@ -1241,44 +1197,44 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; + public global::System.IntPtr declaration; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17MemberPointerTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST7TagTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17MemberPointerTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST7TagTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TagType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new MemberPointerType(native.ToPointer(), skipVTables); + return new TagType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TagType __CreateInstance(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) { - return new MemberPointerType(native, skipVTables); + return new TagType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.MemberPointerType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TagType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); - global::CppSharp.Parser.AST.MemberPointerType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); + global::CppSharp.Parser.AST.TagType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) + private TagType(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected MemberPointerType(void* native, bool skipVTables = false) + protected TagType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1287,19 +1243,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public MemberPointerType() + public TagType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType _0) + public TagType(global::CppSharp.Parser.AST.TagType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1308,23 +1264,28 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Pointee + public global::CppSharp.Parser.AST.Declaration Declaration { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee); + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration); + return __result0; } set { - ((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class TypedefType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class ArrayType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 12)] + [StructLayout(LayoutKind.Explicit, Size = 28)] public new partial struct __Internal { [FieldOffset(0)] @@ -1334,44 +1295,61 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr declaration; + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(16)] + public global::CppSharp.Parser.AST.ArrayType.ArraySize sizeType; + + [FieldOffset(20)] + public int size; + + [FieldOffset(24)] + public int elementSize; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9ArrayTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST9ArrayTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public enum ArraySize { - return new TypedefType(native.ToPointer(), skipVTables); + Constant = 0, + Variable = 1, + Dependent = 2, + Incomplete = 3 } - internal static global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypedefType(native, skipVTables); + return new ArrayType(native.ToPointer(), skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefType.__Internal native) + internal static global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); - global::CppSharp.Parser.AST.TypedefType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + return new ArrayType(native, skipVTables); } - private TypedefType(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + private static void* __CopyValue(global::CppSharp.Parser.AST.ArrayType.__Internal native) { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); + global::CppSharp.Parser.AST.ArrayType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - protected TypedefType(void* native, bool skipVTables = false) + private ArrayType(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected ArrayType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1380,19 +1358,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TypedefType() + public ArrayType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypedefType(global::CppSharp.Parser.AST.TypedefType _0) + public ArrayType(global::CppSharp.Parser.AST.ArrayType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1401,190 +1379,174 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.TypedefNameDecl Declaration + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - global::CppSharp.Parser.AST.TypedefNameDecl __result0; - if (((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.TypedefNameDecl) global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap[((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.TypedefNameDecl.__CreateInstance(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - } - - public unsafe partial class AttributedType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal modified; - - [FieldOffset(16)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal equivalent; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14AttributedTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14AttributedTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new AttributedType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) - { - return new AttributedType(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.AttributedType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); - global::CppSharp.Parser.AST.AttributedType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private AttributedType(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected AttributedType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - public AttributedType() - : this((void*) null) + public global::CppSharp.Parser.AST.ArrayType.ArraySize SizeType { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + get + { + return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType; + } - public AttributedType(global::CppSharp.Parser.AST.AttributedType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType = value; + } } - public global::CppSharp.Parser.AST.QualifiedType Modified + public int Size { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified); + return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size; } set { - ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size = value; } } - public global::CppSharp.Parser.AST.QualifiedType Equivalent + public int ElementSize { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent); + return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize; } set { - ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize = value; } } } - public unsafe partial class DecayedType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class Parameter : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] + [StructLayout(LayoutKind.Explicit, Size = 124)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal decayed; + public global::System.IntPtr _namespace; + + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; [FieldOffset(16)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal original; + public int lineNumberStart; + + [FieldOffset(20)] + public int lineNumberEnd; [FieldOffset(24)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; + public global::Std.__1.BasicString.__Internal Name; + + [FieldOffset(36)] + public global::Std.__1.BasicString.__Internal USR; + + [FieldOffset(48)] + public global::Std.__1.BasicString.__Internal DebugText; + + [FieldOffset(60)] + public byte isIncomplete; + + [FieldOffset(61)] + public byte isDependent; + + [FieldOffset(62)] + public byte isImplicit; + + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(68)] + public uint definitionOrder; + + [FieldOffset(72)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; + + [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] + public global::System.IntPtr originalPtr; + + [FieldOffset(100)] + public global::System.IntPtr comment; + + [FieldOffset(104)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(112)] + public byte isIndirect; + + [FieldOffset(113)] + public byte hasDefaultValue; + + [FieldOffset(116)] + public uint index; + + [FieldOffset(120)] + public global::System.IntPtr defaultArgument; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DecayedTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DecayedTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Parameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DecayedType(native.ToPointer(), skipVTables); + return new Parameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Parameter __CreateInstance(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) { - return new DecayedType(native, skipVTables); + return new Parameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DecayedType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Parameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); - global::CppSharp.Parser.AST.DecayedType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); + global::CppSharp.Parser.AST.Parameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DecayedType(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) + private Parameter(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DecayedType(void* native, bool skipVTables = false) + protected Parameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1593,236 +1555,111 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public DecayedType() + public Parameter() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DecayedType(global::CppSharp.Parser.AST.DecayedType _0) + public Parameter(global::CppSharp.Parser.AST.Parameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Decayed + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType Original + public bool IsIndirect { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original); + return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect != 0; } set { - ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.QualifiedType Pointee - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee); - } - - set - { - ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect = (byte) (value ? 1 : 0); } } - } - - public unsafe partial class TemplateArgument : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 20)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal type; - - [FieldOffset(12)] - public global::System.IntPtr declaration; - - [FieldOffset(16)] - public int integral; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16TemplateArgumentC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16TemplateArgumentC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - - public enum ArgumentKind - { - Type = 0, - Declaration = 1, - NullPtr = 2, - Integral = 3, - Template = 4, - TemplateExpansion = 5, - Expression = 6, - Pack = 7 - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new TemplateArgument(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) - { - return new TemplateArgument(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateArgument.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); - *(global::CppSharp.Parser.AST.TemplateArgument.__Internal*) ret = native; - return ret.ToPointer(); - } - - private TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected TemplateArgument(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public TemplateArgument() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.TemplateArgument __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind Kind + public bool HasDefaultValue { get { - return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind; + return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue != 0; } set { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind = value; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.QualifiedType Type + public uint Index { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type); + return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index; } set { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index = value; } } - public global::CppSharp.Parser.AST.Declaration Declaration + public global::CppSharp.Parser.AST.Expression DefaultArgument { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration); + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument); return __result0; } set { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public int Integral - { - get - { - return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral = value; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class TemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class FunctionType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] + [StructLayout(LayoutKind.Explicit, Size = 36)] public new partial struct __Internal { [FieldOffset(0)] @@ -1832,75 +1669,78 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - internal global::Std.__1.Vector.__Internal Arguments; + public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; + + [FieldOffset(16)] + public global::CppSharp.Parser.AST.CallingConvention callingConvention; [FieldOffset(20)] - public global::System.IntPtr _template; + public global::CppSharp.Parser.AST.ExceptionSpecType exceptionSpecType; [FieldOffset(24)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + internal global::Std.__1.Vector.__Internal Parameters; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType12getArgumentsEj")] - internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType13getParametersEj")] + internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType12addArgumentsERNS1_16TemplateArgumentE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType13addParametersERPNS1_9ParameterE")] + internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType15clearParametersEv")] + internal static extern void ClearParameters_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType18getParametersCountEv")] + internal static extern uint GetParametersCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateSpecializationType(native.ToPointer(), skipVTables); + return new FunctionType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) { - return new TemplateSpecializationType(native, skipVTables); + return new FunctionType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); - global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); + global::CppSharp.Parser.AST.FunctionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) + private FunctionType(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateSpecializationType(void* native, bool skipVTables = false) + protected FunctionType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1909,19 +1749,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateSpecializationType() + public FunctionType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType _0) + public FunctionType(global::CppSharp.Parser.AST.FunctionType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1940,70 +1780,82 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) + public global::CppSharp.Parser.AST.Parameter GetParameters(uint i) { - var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); - __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); + var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Parameter __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Parameter.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Parameter) global::CppSharp.Parser.AST.Parameter.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Parameter.__CreateInstance(__ret); + return __result0; } - public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) + public void AddParameters(global::CppSharp.Parser.AST.Parameter s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearArguments() + public void ClearParameters() { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.Template Template + public global::CppSharp.Parser.AST.QualifiedType ReturnType { get { - global::CppSharp.Parser.AST.Template __result0; - if (((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template)) - __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template]; - else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType); } set { - ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.CallingConvention CallingConvention { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared); + return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention; } set { - ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention = value; } } - public uint ArgumentsCount + public global::CppSharp.Parser.AST.ExceptionSpecType ExceptionSpecType { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); + return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType = value; + } + } + + public uint ParametersCount + { + get + { + var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class DependentTemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class PointerType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 28)] + [StructLayout(LayoutKind.Explicit, Size = 20)] public new partial struct __Internal { [FieldOffset(0)] @@ -2013,72 +1865,55 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - internal global::Std.__1.Vector.__Internal Arguments; + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedPointee; - [FieldOffset(20)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + [FieldOffset(16)] + public global::CppSharp.Parser.AST.PointerType.TypeModifier modifier; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11PointerTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType12getArgumentsEj")] - internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType12addArgumentsERNS1_16TemplateArgumentE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11PointerTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + public enum TypeModifier + { + Value = 0, + Pointer = 1, + LVReference = 2, + RVReference = 3 } - internal static new global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.PointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DependentTemplateSpecializationType(native.ToPointer(), skipVTables); + return new PointerType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.PointerType __CreateInstance(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) { - return new DependentTemplateSpecializationType(native, skipVTables); + return new PointerType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.PointerType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); - global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); + global::CppSharp.Parser.AST.PointerType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) + private PointerType(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DependentTemplateSpecializationType(void* native, bool skipVTables = false) + protected PointerType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2087,83 +1922,57 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public DependentTemplateSpecializationType() + public PointerType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType _0) + public PointerType(global::CppSharp.Parser.AST.PointerType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Type __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) - { - var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); - __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); - } - - public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearArguments() - { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.QualifiedType QualifiedPointee { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee); } set { - ((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public uint ArgumentsCount + public global::CppSharp.Parser.AST.PointerType.TypeModifier Modifier { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier; + } + + set + { + ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier = value; } } } - public unsafe partial class TemplateParameterType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class MemberPointerType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] + [StructLayout(LayoutKind.Explicit, Size = 16)] public new partial struct __Internal { [FieldOffset(0)] @@ -2173,58 +1982,44 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr parameter; - - [FieldOffset(12)] - public uint depth; - - [FieldOffset(16)] - public uint index; - - [FieldOffset(20)] - public byte isParameterPack; + public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST17MemberPointerTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST17MemberPointerTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateParameterType(native.ToPointer(), skipVTables); + return new MemberPointerType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) { - return new TemplateParameterType(native, skipVTables); + return new MemberPointerType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.MemberPointerType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); - global::CppSharp.Parser.AST.TemplateParameterType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); + global::CppSharp.Parser.AST.MemberPointerType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) + private MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateParameterType(void* native, bool skipVTables = false) + protected MemberPointerType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2233,148 +2028,144 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateParameterType() + public MemberPointerType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType _0) + public MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Type __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.TypeTemplateParameter Parameter + public global::CppSharp.Parser.AST.QualifiedType Pointee { get { - global::CppSharp.Parser.AST.TypeTemplateParameter __result0; - if (((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter)) - __result0 = (global::CppSharp.Parser.AST.TypeTemplateParameter) global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter]; - else __result0 = global::CppSharp.Parser.AST.TypeTemplateParameter.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee); } set { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } + } - public uint Depth + public unsafe partial class TypedefNameDecl : global::CppSharp.Parser.AST.Declaration, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 112)] + public new partial struct __Internal { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; - set - { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth = value; - } - } + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; - public uint Index - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index; - } + [FieldOffset(8)] + public global::System.IntPtr _namespace; - set - { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index = value; - } - } + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - public bool IsParameterPack - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack != 0; - } + [FieldOffset(16)] + public int lineNumberStart; - set - { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); - } - } - } + [FieldOffset(20)] + public int lineNumberEnd; - public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 20)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + [FieldOffset(24)] + public global::Std.__1.BasicString.__Internal Name; - [FieldOffset(4)] + [FieldOffset(36)] + public global::Std.__1.BasicString.__Internal USR; + + [FieldOffset(48)] + public global::Std.__1.BasicString.__Internal DebugText; + + [FieldOffset(60)] + public byte isIncomplete; + + [FieldOffset(61)] public byte isDependent; - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal replacement; + [FieldOffset(62)] + public byte isImplicit; - [FieldOffset(16)] - public global::System.IntPtr replacedParameter; + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(68)] + public uint definitionOrder; + + [FieldOffset(72)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; + + [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] + public global::System.IntPtr originalPtr; + + [FieldOffset(100)] + public global::System.IntPtr comment; + + [FieldOffset(104)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateParameterSubstitutionType(native.ToPointer(), skipVTables); + return new TypedefNameDecl(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) { - return new TemplateParameterSubstitutionType(native, skipVTables); + return new TypedefNameDecl(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); - global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); + global::CppSharp.Parser.AST.TypedefNameDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) + private TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateParameterSubstitutionType(void* native, bool skipVTables = false) + protected TypedefNameDecl(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2383,62 +2174,59 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateParameterSubstitutionType() + public TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0) + public TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Replacement + public override void Dispose(bool disposing) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement); - } + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - set - { - ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + public static implicit operator global::CppSharp.Parser.AST.TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) + { + return new global::CppSharp.Parser.AST.TypedefNameDecl(kind); } - public global::CppSharp.Parser.AST.TemplateParameterType ReplacedParameter + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - global::CppSharp.Parser.AST.TemplateParameterType __result0; - if (((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter)) - __result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter]; - else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TypedefType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 20)] + [StructLayout(LayoutKind.Explicit, Size = 12)] public new partial struct __Internal { [FieldOffset(0)] @@ -2448,47 +2236,44 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal injectedSpecializationType; - - [FieldOffset(16)] - public global::System.IntPtr _class; + public global::System.IntPtr declaration; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21InjectedClassNameTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21InjectedClassNameTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new InjectedClassNameType(native.ToPointer(), skipVTables); + return new TypedefType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) { - return new InjectedClassNameType(native, skipVTables); + return new TypedefType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); - global::CppSharp.Parser.AST.InjectedClassNameType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); + global::CppSharp.Parser.AST.TypedefType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + private TypedefType(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected InjectedClassNameType(void* native, bool skipVTables = false) + protected TypedefType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2497,19 +2282,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public InjectedClassNameType() + public TypedefType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType _0) + public TypedefType(global::CppSharp.Parser.AST.TypedefType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2518,41 +2303,28 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType InjectedSpecializationType - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType); - } - - set - { - ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.Class Class + public global::CppSharp.Parser.AST.TypedefNameDecl Declaration { get { - global::CppSharp.Parser.AST.Class __result0; - if (((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class); + global::CppSharp.Parser.AST.TypedefNameDecl __result0; + if (((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.TypedefNameDecl) global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap[((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.TypedefNameDecl.__CreateInstance(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration); return __result0; } set { - ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class DependentNameType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class AttributedType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 16)] + [StructLayout(LayoutKind.Explicit, Size = 24)] public new partial struct __Internal { [FieldOffset(0)] @@ -2562,44 +2334,47 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + public global::CppSharp.Parser.AST.QualifiedType.__Internal modified; + + [FieldOffset(16)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal equivalent; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17DependentNameTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST14AttributedTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17DependentNameTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST14AttributedTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DependentNameType(native.ToPointer(), skipVTables); + return new AttributedType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) { - return new DependentNameType(native, skipVTables); + return new AttributedType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DependentNameType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.AttributedType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); - global::CppSharp.Parser.AST.DependentNameType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); + global::CppSharp.Parser.AST.AttributedType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DependentNameType(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + private AttributedType(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DependentNameType(void* native, bool skipVTables = false) + protected AttributedType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2608,19 +2383,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public DependentNameType() + public AttributedType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DependentNameType(global::CppSharp.Parser.AST.DependentNameType _0) + public AttributedType(global::CppSharp.Parser.AST.AttributedType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2629,100 +2404,36 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.QualifiedType Modified { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified); } set { - ((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - } - public unsafe partial class PackExpansionType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 8)] - public new partial struct __Internal + public global::CppSharp.Parser.AST.QualifiedType Equivalent { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent); + } - [FieldOffset(4)] - public byte isDependent; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17PackExpansionTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17PackExpansionTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new PackExpansionType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) - { - return new PackExpansionType(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.PackExpansionType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); - global::CppSharp.Parser.AST.PackExpansionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected PackExpansionType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public PackExpansionType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } } - public unsafe partial class UnaryTransformType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class DecayedType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] + [StructLayout(LayoutKind.Explicit, Size = 32)] public new partial struct __Internal { [FieldOffset(0)] @@ -2732,47 +2443,50 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + public global::CppSharp.Parser.AST.QualifiedType.__Internal decayed; [FieldOffset(16)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal baseType; + public global::CppSharp.Parser.AST.QualifiedType.__Internal original; + + [FieldOffset(24)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18UnaryTransformTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11DecayedTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18UnaryTransformTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST11DecayedTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new UnaryTransformType(native.ToPointer(), skipVTables); + return new DecayedType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) { - return new UnaryTransformType(native, skipVTables); + return new DecayedType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DecayedType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); - global::CppSharp.Parser.AST.UnaryTransformType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); + global::CppSharp.Parser.AST.DecayedType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) + private DecayedType(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected UnaryTransformType(void* native, bool skipVTables = false) + protected DecayedType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2781,19 +2495,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public UnaryTransformType() + public DecayedType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType _0) + public DecayedType(global::CppSharp.Parser.AST.DecayedType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2802,467 +2516,550 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.QualifiedType Decayed { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed); } set { - ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType BaseType + public global::CppSharp.Parser.AST.QualifiedType Original { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original); } set { - ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public global::CppSharp.Parser.AST.QualifiedType Pointee + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee); + } + + set + { + ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class VectorType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TemplateArgument : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 20)] - public new partial struct __Internal + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind kind; [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.QualifiedType.__Internal type; - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal elementType; + [FieldOffset(12)] + public global::System.IntPtr declaration; [FieldOffset(16)] - public uint numElements; + public int integral; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10VectorTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST16TemplateArgumentC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10VectorTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST16TemplateArgumentC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.VectorType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public enum ArgumentKind { - return new VectorType(native.ToPointer(), skipVTables); + Type = 0, + Declaration = 1, + NullPtr = 2, + Integral = 3, + Template = 4, + TemplateExpansion = 5, + Expression = 6, + Pack = 7 } - internal static global::CppSharp.Parser.AST.VectorType __CreateInstance(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VectorType(native, skipVTables); + return new TemplateArgument(native.ToPointer(), skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VectorType.__Internal native) + internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); - global::CppSharp.Parser.AST.VectorType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return new TemplateArgument(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateArgument.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); + *(global::CppSharp.Parser.AST.TemplateArgument.__Internal*) ret = native; return ret.ToPointer(); } - private VectorType(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + private TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VectorType(void* native, bool skipVTables = false) - : base((void*) null) + protected TemplateArgument(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VectorType() - : this((void*) null) + public TemplateArgument() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VectorType(global::CppSharp.Parser.AST.VectorType _0) - : this((void*) null) + public TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) _0.__Instance); } - public global::CppSharp.Parser.AST.QualifiedType ElementType + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.TemplateArgument __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind Kind { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType); + return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind; } set { - ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind = value; } } - public uint NumElements + public global::CppSharp.Parser.AST.QualifiedType Type { get { - return ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type); } set { - ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements = value; + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - } - public unsafe partial class BuiltinType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 12)] - public new partial struct __Internal + public global::CppSharp.Parser.AST.Declaration Declaration { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration); + return __result0; + } - [FieldOffset(8)] - public global::CppSharp.Parser.AST.PrimitiveType type; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11BuiltinTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11BuiltinTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new BuiltinType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) - { - return new BuiltinType(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.BuiltinType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); - global::CppSharp.Parser.AST.BuiltinType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private BuiltinType(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected BuiltinType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public BuiltinType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public BuiltinType(global::CppSharp.Parser.AST.BuiltinType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public global::CppSharp.Parser.AST.PrimitiveType Type + public int Integral { get { - return ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type; + return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral; } set { - ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type = value; + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral = value; } } } - public unsafe partial class VTableComponent : IDisposable + public unsafe partial class Template : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 12)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 120)] + public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.VTableComponentKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public uint offset; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr declaration; + public global::System.IntPtr _namespace; + + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(16)] + public int lineNumberStart; + + [FieldOffset(20)] + public int lineNumberEnd; + + [FieldOffset(24)] + public global::Std.__1.BasicString.__Internal Name; + + [FieldOffset(36)] + public global::Std.__1.BasicString.__Internal USR; + + [FieldOffset(48)] + public global::Std.__1.BasicString.__Internal DebugText; + + [FieldOffset(60)] + public byte isIncomplete; + + [FieldOffset(61)] + public byte isDependent; + + [FieldOffset(62)] + public byte isImplicit; + + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(68)] + public uint definitionOrder; + + [FieldOffset(72)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; + + [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] + public global::System.IntPtr originalPtr; + + [FieldOffset(100)] + public global::System.IntPtr comment; + + [FieldOffset(104)] + public global::System.IntPtr TemplatedDecl; + + [FieldOffset(108)] + internal global::Std.__1.Vector.__Internal Parameters; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15VTableComponentC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15VTableComponentC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } + EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2Ev")] + internal static extern void ctor_1(global::System.IntPtr instance); - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2ERKS2_")] + internal static extern void cctor_3(global::System.IntPtr instance, global::System.IntPtr _0); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Template13getParametersEj")] + internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); - internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Template13addParametersERPNS1_11DeclarationE")] + internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Template15clearParametersEv")] + internal static extern void ClearParameters_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Template18getParametersCountEv")] + internal static extern uint GetParametersCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.Template __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VTableComponent(native.ToPointer(), skipVTables); + return new Template(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Template __CreateInstance(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) { - return new VTableComponent(native, skipVTables); + return new Template(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VTableComponent.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Template.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); - *(global::CppSharp.Parser.AST.VTableComponent.__Internal*) ret = native; + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); + global::CppSharp.Parser.AST.Template.__Internal.cctor_3(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VTableComponent(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + private Template(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VTableComponent(void* native, bool skipVTables = false) + protected Template(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VTableComponent() + public Template(global::CppSharp.Parser.AST.DeclarationKind kind) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public VTableComponent(global::CppSharp.Parser.AST.VTableComponent _0) + public Template() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) _0.__Instance); + __Internal.ctor_1((__Instance + __PointerAdjustment)); } - public void Dispose() + public Template(global::CppSharp.Parser.AST.Template _0) + : this((void*) null) { - Dispose(disposing: true); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_3((__Instance + __PointerAdjustment), __arg0); } - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.VTableComponent __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.VTableComponentKind Kind + public global::CppSharp.Parser.AST.Declaration GetParameters(uint i) { - get - { - return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind; - } + var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Declaration __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(__ret); + return __result0; + } - set - { - ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind = value; - } + public void AddParameters(global::CppSharp.Parser.AST.Declaration s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); } - public uint Offset + public void ClearParameters() { - get - { - return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset; - } + __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); + } - set - { - ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset = value; - } + public static implicit operator global::CppSharp.Parser.AST.Template(global::CppSharp.Parser.AST.DeclarationKind kind) + { + return new global::CppSharp.Parser.AST.Template(kind); } - public global::CppSharp.Parser.AST.Declaration Declaration + public global::CppSharp.Parser.AST.Declaration TemplatedDecl { get { global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration); + if (((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl); return __result0; } set { - ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public uint ParametersCount + { + get + { + var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class VTableLayout : IDisposable + public unsafe partial class TemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 12)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 32)] + public new partial struct __Internal { [FieldOffset(0)] - internal global::Std.__1.Vector.__Internal Components; + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + internal global::Std.__1.Vector.__Internal Arguments; + + [FieldOffset(20)] + public global::System.IntPtr _template; + + [FieldOffset(24)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout13getComponentsEj")] - internal static extern void GetComponents_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType12getArgumentsEj")] + internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout13addComponentsERNS1_15VTableComponentE")] - internal static extern void AddComponents_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType12addArgumentsERNS1_16TemplateArgumentE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout15clearComponentsEv")] - internal static extern void ClearComponents_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout18getComponentsCountEv")] - internal static extern uint GetComponentsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VTableLayout(native.ToPointer(), skipVTables); + return new TemplateSpecializationType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) { - return new VTableLayout(native, skipVTables); + return new TemplateSpecializationType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VTableLayout.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); - global::CppSharp.Parser.AST.VTableLayout.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); + global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VTableLayout(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + private TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VTableLayout(void* native, bool skipVTables = false) + protected TemplateSpecializationType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VTableLayout() + public TemplateSpecializationType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VTableLayout(global::CppSharp.Parser.AST.VTableLayout _0) + public TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -3271,14 +3068,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.VTableLayout __dummy; + global::CppSharp.Parser.AST.Type __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -3286,119 +3078,166 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.VTableComponent GetComponents(uint i) + public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) { - var __ret = new global::CppSharp.Parser.AST.VTableComponent.__Internal(); - __Internal.GetComponents_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.VTableComponent.__CreateInstance(__ret); + var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); + __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); } - public void AddComponents(global::CppSharp.Parser.AST.VTableComponent s) + public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddComponents_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearComponents() + public void ClearArguments() { - __Internal.ClearComponents_0((__Instance + __PointerAdjustment)); + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint ComponentsCount + public global::CppSharp.Parser.AST.Template Template { get { - var __ret = __Internal.GetComponentsCount_0((__Instance + __PointerAdjustment)); + global::CppSharp.Parser.AST.Template __result0; + if (((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template)) + __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template]; + else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public global::CppSharp.Parser.AST.QualifiedType Desugared + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared); + } + + set + { + ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public uint ArgumentsCount + { + get + { + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class VFTableInfo : IDisposable + public unsafe partial class DependentTemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 28)] - public partial struct __Internal + public new partial struct __Internal { [FieldOffset(0)] - public ulong VBTableIndex; + public global::CppSharp.Parser.AST.TypeKind kind; - [FieldOffset(8)] - public uint VFPtrOffset; + [FieldOffset(4)] + public byte isDependent; - [FieldOffset(12)] - public uint VFPtrFullOffset; + [FieldOffset(8)] + internal global::Std.__1.Vector.__Internal Arguments; - [FieldOffset(16)] - public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; + [FieldOffset(20)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); - } - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType12getArgumentsEj")] + internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType12addArgumentsERNS1_16TemplateArgumentE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); - internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VFTableInfo(native.ToPointer(), skipVTables); + return new DependentTemplateSpecializationType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) { - return new VFTableInfo(native, skipVTables); + return new DependentTemplateSpecializationType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VFTableInfo.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); - global::CppSharp.Parser.AST.VFTableInfo.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); + global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + private DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VFTableInfo(void* native, bool skipVTables = false) + protected DependentTemplateSpecializationType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VFTableInfo() + public DependentTemplateSpecializationType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo _0) + public DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -3407,14 +3246,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() + public override void Dispose(bool disposing) { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.VFTableInfo __dummy; + global::CppSharp.Parser.AST.Type __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -3422,168 +3256,193 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public ulong VBTableIndex + public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) { - get - { - return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex; - } - - set - { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex = value; - } + var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); + __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); } - public uint VFPtrOffset + public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) { - get - { - return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + } - set - { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset = value; - } + public void ClearArguments() + { + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint VFPtrFullOffset + public global::CppSharp.Parser.AST.QualifiedType Desugared { get { - return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared); } set { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset = value; + ((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.VTableLayout Layout + public uint ArgumentsCount { get { - return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout); - } - - set - { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class LayoutField : IDisposable + public unsafe partial class TypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 28)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 124)] + public new partial struct __Internal { [FieldOffset(0)] - public uint offset; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public global::Std.__1.BasicString.__Internal Name; + public global::CppSharp.Parser.AST.AccessSpecifier access; + + [FieldOffset(8)] + public global::System.IntPtr _namespace; + + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; [FieldOffset(16)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + public int lineNumberStart; + + [FieldOffset(20)] + public int lineNumberEnd; [FieldOffset(24)] - public global::System.IntPtr fieldPtr; + public global::Std.__1.BasicString.__Internal Name; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(36)] + public global::Std.__1.BasicString.__Internal USR; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr other); + [FieldOffset(48)] + public global::Std.__1.BasicString.__Internal DebugText; + + [FieldOffset(60)] + public byte isIncomplete; + + [FieldOffset(61)] + public byte isDependent; + + [FieldOffset(62)] + public byte isImplicit; + + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(68)] + public uint definitionOrder; + + [FieldOffset(72)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; + + [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] + public global::System.IntPtr originalPtr; + + [FieldOffset(100)] + public global::System.IntPtr comment; + + [FieldOffset(104)] + public uint depth; + + [FieldOffset(108)] + public uint index; + + [FieldOffset(112)] + public byte isParameterPack; + + [FieldOffset(116)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal defaultArgument; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutField7getNameEv")] - internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutField7setNameEPKc")] - internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new LayoutField(native.ToPointer(), skipVTables); + return new TypeTemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) { - return new LayoutField(native, skipVTables); + return new TypeTemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutField.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); - global::CppSharp.Parser.AST.LayoutField.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); + global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private LayoutField(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) + private TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected LayoutField(void* native, bool skipVTables = false) + protected TypeTemplateParameter(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public LayoutField() + public TypeTemplateParameter() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public LayoutField(global::CppSharp.Parser.AST.LayoutField other) + public TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(other, null)) - throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = other.__Instance; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.LayoutField __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -3591,153 +3450,116 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public uint Offset - { - get - { - return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset; - } - - set - { - ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset = value; - } - } - - public global::CppSharp.Parser.AST.QualifiedType QualifiedType - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::System.IntPtr FieldPtr - { - get - { - return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr; - } - - set - { - ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr = (global::System.IntPtr) value; - } - } - - public string Name + public global::CppSharp.Parser.AST.QualifiedType DefaultArgument { get { - var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument); } set { - __Internal.SetName_0((__Instance + __PointerAdjustment), value); + ((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class LayoutBase : IDisposable + public unsafe partial class TemplateParameterType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 8)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 24)] + public new partial struct __Internal { [FieldOffset(0)] - public uint offset; + public global::CppSharp.Parser.AST.TypeKind kind; [FieldOffset(4)] - public global::System.IntPtr _class; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + public byte isDependent; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr other); + [FieldOffset(8)] + public global::System.IntPtr parameter; + + [FieldOffset(12)] + public uint depth; + + [FieldOffset(16)] + public uint index; + + [FieldOffset(20)] + public byte isParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - } - - public global::System.IntPtr __Instance { get; protected set; } + EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + } - internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new LayoutBase(native.ToPointer(), skipVTables); + return new TemplateParameterType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) { - return new LayoutBase(native, skipVTables); + return new TemplateParameterType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutBase.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); - global::CppSharp.Parser.AST.LayoutBase.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); + global::CppSharp.Parser.AST.TemplateParameterType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private LayoutBase(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) + private TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected LayoutBase(void* native, bool skipVTables = false) + protected TemplateParameterType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public LayoutBase() + public TemplateParameterType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public LayoutBase(global::CppSharp.Parser.AST.LayoutBase other) + public TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(other, null)) - throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = other.__Instance; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.LayoutBase __dummy; + global::CppSharp.Parser.AST.Type __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -3745,199 +3567,138 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public uint Offset + public global::CppSharp.Parser.AST.TypeTemplateParameter Parameter { get { - return ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset; + global::CppSharp.Parser.AST.TypeTemplateParameter __result0; + if (((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter)) + __result0 = (global::CppSharp.Parser.AST.TypeTemplateParameter) global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter]; + else __result0 = global::CppSharp.Parser.AST.TypeTemplateParameter.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter); + return __result0; } set { - ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset = value; + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public global::CppSharp.Parser.AST.Class Class + public uint Depth { get { - global::CppSharp.Parser.AST.Class __result0; - if (((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class); - return __result0; + return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth; } set { - ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth = value; } } - } - public unsafe partial class ClassLayout : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 72)] - public partial struct __Internal + public uint Index { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.CppAbi ABI; - - [FieldOffset(4)] - internal global::Std.__1.Vector.__Internal VFTables; - - [FieldOffset(16)] - public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; + get + { + return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index; + } - [FieldOffset(28)] - public byte hasOwnVFPtr; + set + { + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index = value; + } + } - [FieldOffset(32)] - public int VBPtrOffset; + public bool IsParameterPack + { + get + { + return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack != 0; + } - [FieldOffset(36)] - public int alignment; + set + { + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); + } + } + } - [FieldOffset(40)] - public int size; + public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 20)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; - [FieldOffset(44)] - public int dataSize; + [FieldOffset(4)] + public byte isDependent; - [FieldOffset(48)] - internal global::Std.__1.Vector.__Internal Fields; + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal replacement; - [FieldOffset(60)] - internal global::Std.__1.Vector.__Internal Bases; + [FieldOffset(16)] + public global::System.IntPtr replacedParameter; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11getVFTablesEj")] - internal static extern void GetVFTables_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11addVFTablesERNS1_11VFTableInfoE")] - internal static extern void AddVFTables_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout13clearVFTablesEv")] - internal static extern void ClearVFTables_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout9getFieldsEj")] - internal static extern void GetFields_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout9addFieldsERNS1_11LayoutFieldE")] - internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11clearFieldsEv")] - internal static extern void ClearFields_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout8getBasesEj")] - internal static extern void GetBases_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout8addBasesERNS1_10LayoutBaseE")] - internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout10clearBasesEv")] - internal static extern void ClearBases_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout16getVFTablesCountEv")] - internal static extern uint GetVFTablesCount_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout14getFieldsCountEv")] - internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout13getBasesCountEv")] - internal static extern uint GetBasesCount_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassLayout(native.ToPointer(), skipVTables); + return new TemplateParameterSubstitutionType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) { - return new ClassLayout(native, skipVTables); + return new TemplateParameterSubstitutionType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassLayout.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); - global::CppSharp.Parser.AST.ClassLayout.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); + global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassLayout(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) + private TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassLayout(void* native, bool skipVTables = false) + protected TemplateParameterSubstitutionType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public ClassLayout() + public TemplateParameterSubstitutionType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public ClassLayout(global::CppSharp.Parser.AST.ClassLayout _0) + public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -3946,204 +3707,42 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.ClassLayout __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.VFTableInfo GetVFTables(uint i) - { - var __ret = new global::CppSharp.Parser.AST.VFTableInfo.__Internal(); - __Internal.GetVFTables_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.VFTableInfo.__CreateInstance(__ret); - } - - public void AddVFTables(global::CppSharp.Parser.AST.VFTableInfo s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddVFTables_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearVFTables() - { - __Internal.ClearVFTables_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.LayoutField GetFields(uint i) - { - var __ret = new global::CppSharp.Parser.AST.LayoutField.__Internal(); - __Internal.GetFields_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.LayoutField.__CreateInstance(__ret); - } - - public void AddFields(global::CppSharp.Parser.AST.LayoutField s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearFields() - { - __Internal.ClearFields_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.LayoutBase GetBases(uint i) - { - var __ret = new global::CppSharp.Parser.AST.LayoutBase.__Internal(); - __Internal.GetBases_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.LayoutBase.__CreateInstance(__ret); - } - - public void AddBases(global::CppSharp.Parser.AST.LayoutBase s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearBases() - { - __Internal.ClearBases_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.CppAbi ABI - { - get - { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI; - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI = value; - } - } - - public global::CppSharp.Parser.AST.VTableLayout Layout - { - get - { - return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout); - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; - } - } - - public bool HasOwnVFPtr - { - get - { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr != 0; - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr = (byte) (value ? 1 : 0); - } - } - - public int VBPtrOffset - { - get - { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset; - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset = value; - } - } - - public int Alignment - { - get - { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment; - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment = value; - } - } - - public int Size + public global::CppSharp.Parser.AST.QualifiedType Replacement { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement); } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size = value; + ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public int DataSize + public global::CppSharp.Parser.AST.TemplateParameterType ReplacedParameter { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize; + global::CppSharp.Parser.AST.TemplateParameterType __result0; + if (((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter)) + __result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter]; + else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter); + return __result0; } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize = value; - } - } - - public uint VFTablesCount - { - get - { - var __ret = __Internal.GetVFTablesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint FieldsCount - { - get - { - var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint BasesCount - { - get - { - var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class Declaration : IDisposable + public unsafe partial class Class : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 92)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 292)] + public new partial struct __Internal { [FieldOffset(0)] public global::CppSharp.Parser.AST.DeclarationKind kind; @@ -4191,127 +3790,234 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] public global::System.IntPtr originalPtr; - [FieldOffset(88)] + [FieldOffset(100)] public global::System.IntPtr comment; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + [FieldOffset(104)] + internal global::Std.__1.Vector.__Internal Namespaces; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(116)] + internal global::Std.__1.Vector.__Internal Enums; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + [FieldOffset(128)] + internal global::Std.__1.Vector.__Internal Functions; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration23getPreprocessedEntitiesEj")] - internal static extern global::System.IntPtr GetPreprocessedEntities_0(global::System.IntPtr instance, uint i); + [FieldOffset(140)] + internal global::Std.__1.Vector.__Internal Classes; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration23addPreprocessedEntitiesERPNS1_18PreprocessedEntityE")] - internal static extern void AddPreprocessedEntities_0(global::System.IntPtr instance, global::System.IntPtr s); + [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Templates; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration25clearPreprocessedEntitiesEv")] - internal static extern void ClearPreprocessedEntities_0(global::System.IntPtr instance); + [FieldOffset(164)] + internal global::Std.__1.Vector.__Internal Typedefs; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration7getNameEv")] - internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); + [FieldOffset(176)] + internal global::Std.__1.Vector.__Internal TypeAliases; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration7setNameEPKc")] - internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + [FieldOffset(188)] + internal global::Std.__1.Vector.__Internal Variables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration6getUSREv")] - internal static extern global::System.IntPtr USR_0(global::System.IntPtr instance); + [FieldOffset(200)] + internal global::Std.__1.Vector.__Internal Friends; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration6setUSREPKc")] - internal static extern void SetUSR_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + [FieldOffset(212)] + internal global::Std.__1.Map.__Internal anonymous; + + [FieldOffset(224)] + public byte isAnonymous; + + [FieldOffset(228)] + internal global::Std.__1.Vector.__Internal Bases; + + [FieldOffset(240)] + internal global::Std.__1.Vector.__Internal Fields; + + [FieldOffset(252)] + internal global::Std.__1.Vector.__Internal Methods; + + [FieldOffset(264)] + internal global::Std.__1.Vector.__Internal Specifiers; + + [FieldOffset(276)] + public byte isPOD; + + [FieldOffset(277)] + public byte isAbstract; + + [FieldOffset(278)] + public byte isUnion; + + [FieldOffset(279)] + public byte isDynamic; + + [FieldOffset(280)] + public byte isPolymorphic; + + [FieldOffset(281)] + public byte hasNonTrivialDefaultConstructor; + + [FieldOffset(282)] + public byte hasNonTrivialCopyConstructor; + + [FieldOffset(283)] + public byte hasNonTrivialDestructor; + + [FieldOffset(284)] + public byte isExternCContext; + + [FieldOffset(285)] + public byte isInjected; + + [FieldOffset(288)] + public global::System.IntPtr layout; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration12getDebugTextEv")] - internal static extern global::System.IntPtr DebugText_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST5ClassC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration12setDebugTextEPKc")] - internal static extern void SetDebugText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="_ZN8CppSharp9CppParser3AST5ClassC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration28getPreprocessedEntitiesCountEv")] - internal static extern uint GetPreprocessedEntitiesCount_0(global::System.IntPtr instance); - } + EntryPoint="_ZN8CppSharp9CppParser3AST5ClassD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class8getBasesEj")] + internal static extern global::System.IntPtr GetBases_0(global::System.IntPtr instance, uint i); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class8addBasesERPNS1_18BaseClassSpecifierE")] + internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class10clearBasesEv")] + internal static extern void ClearBases_0(global::System.IntPtr instance); - internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class9getFieldsEj")] + internal static extern global::System.IntPtr GetFields_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class9addFieldsERPNS1_5FieldE")] + internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class11clearFieldsEv")] + internal static extern void ClearFields_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class10getMethodsEj")] + internal static extern global::System.IntPtr GetMethods_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class10addMethodsERPNS1_6MethodE")] + internal static extern void AddMethods_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class12clearMethodsEv")] + internal static extern void ClearMethods_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class13getSpecifiersEj")] + internal static extern global::System.IntPtr GetSpecifiers_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class13addSpecifiersERPNS1_19AccessSpecifierDeclE")] + internal static extern void AddSpecifiers_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class15clearSpecifiersEv")] + internal static extern void ClearSpecifiers_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class13getBasesCountEv")] + internal static extern uint GetBasesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class14getFieldsCountEv")] + internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class15getMethodsCountEv")] + internal static extern uint GetMethodsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class18getSpecifiersCountEv")] + internal static extern uint GetSpecifiersCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.Class __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Declaration(native.ToPointer(), skipVTables); + return new Class(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Class __CreateInstance(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) { - return new Declaration(native, skipVTables); + return new Class(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Declaration.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Class.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); - global::CppSharp.Parser.AST.Declaration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); + global::CppSharp.Parser.AST.Class.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Declaration(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) + private Class(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Declaration(void* native, bool skipVTables = false) + protected Class(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) + public Class() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Declaration(global::CppSharp.Parser.AST.Declaration _0) + public Class(global::CppSharp.Parser.AST.Class _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -4320,12 +4026,7 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); @@ -4335,613 +4036,1435 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.PreprocessedEntity GetPreprocessedEntities(uint i) + public global::CppSharp.Parser.AST.BaseClassSpecifier GetBases(uint i) { - var __ret = __Internal.GetPreprocessedEntities_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.PreprocessedEntity __result0; + var __ret = __Internal.GetBases_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.BaseClassSpecifier __result0; if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.PreprocessedEntity) global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.PreprocessedEntity.__CreateInstance(__ret); + else if (global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.BaseClassSpecifier) global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.BaseClassSpecifier.__CreateInstance(__ret); return __result0; } - public void AddPreprocessedEntities(global::CppSharp.Parser.AST.PreprocessedEntity s) + public void AddBases(global::CppSharp.Parser.AST.BaseClassSpecifier s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddPreprocessedEntities_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearPreprocessedEntities() + public void ClearBases() { - __Internal.ClearPreprocessedEntities_0((__Instance + __PointerAdjustment)); + __Internal.ClearBases_0((__Instance + __PointerAdjustment)); } - public static implicit operator global::CppSharp.Parser.AST.Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) + public global::CppSharp.Parser.AST.Field GetFields(uint i) { - return new global::CppSharp.Parser.AST.Declaration(kind); + var __ret = __Internal.GetFields_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Field __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Field.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Field) global::CppSharp.Parser.AST.Field.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Field.__CreateInstance(__ret); + return __result0; } - public global::CppSharp.Parser.AST.DeclarationKind Kind + public void AddFields(global::CppSharp.Parser.AST.Field s) { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); + } - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind = value; - } + public void ClearFields() + { + __Internal.ClearFields_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.AccessSpecifier Access + public global::CppSharp.Parser.AST.Method GetMethods(uint i) { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access; - } + var __ret = __Internal.GetMethods_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Method __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Method.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Method) global::CppSharp.Parser.AST.Method.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Method.__CreateInstance(__ret); + return __result0; + } - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access = value; - } + public void AddMethods(global::CppSharp.Parser.AST.Method s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddMethods_0((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.DeclarationContext Namespace + public void ClearMethods() { - get - { - global::CppSharp.Parser.AST.DeclarationContext __result0; - if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace)) - __result0 = (global::CppSharp.Parser.AST.DeclarationContext) global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace]; - else __result0 = global::CppSharp.Parser.AST.DeclarationContext.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace); - return __result0; - } + __Internal.ClearMethods_0((__Instance + __PointerAdjustment)); + } - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + public global::CppSharp.Parser.AST.AccessSpecifierDecl GetSpecifiers(uint i) + { + var __ret = __Internal.GetSpecifiers_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.AccessSpecifierDecl __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.AccessSpecifierDecl) global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.AccessSpecifierDecl.__CreateInstance(__ret); + return __result0; } - public global::CppSharp.Parser.SourceLocation Location + public void AddSpecifiers(global::CppSharp.Parser.AST.AccessSpecifierDecl s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecifiers_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearSpecifiers() + { + __Internal.ClearSpecifiers_0((__Instance + __PointerAdjustment)); + } + + public bool IsPOD { get { - return global::CppSharp.Parser.SourceLocation.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location); + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location = value.__Instance; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD = (byte) (value ? 1 : 0); } } - public int LineNumberStart + public bool IsAbstract { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract = (byte) (value ? 1 : 0); } } - public int LineNumberEnd + public bool IsUnion { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion = (byte) (value ? 1 : 0); } } - public bool IsIncomplete + public bool IsDynamic { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete != 0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic = (byte) (value ? 1 : 0); } } - public bool IsDependent + public bool IsPolymorphic { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent != 0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic = (byte) (value ? 1 : 0); } } - public bool IsImplicit + public bool HasNonTrivialDefaultConstructor { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit != 0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.Declaration CompleteDeclaration + public bool HasNonTrivialCopyConstructor { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration); - return __result0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor = (byte) (value ? 1 : 0); } } - public uint DefinitionOrder + public bool HasNonTrivialDestructor { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor = (byte) (value ? 1 : 0); } } - public global::System.IntPtr OriginalPtr + public bool IsExternCContext { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.RawComment Comment + public bool IsInjected { get { - global::CppSharp.Parser.AST.RawComment __result0; - if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.RawComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment)) - __result0 = (global::CppSharp.Parser.AST.RawComment) global::CppSharp.Parser.AST.RawComment.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment]; - else __result0 = global::CppSharp.Parser.AST.RawComment.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment); - return __result0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected = (byte) (value ? 1 : 0); } } - public string Name + public global::CppSharp.Parser.AST.ClassLayout Layout { get { - var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + global::CppSharp.Parser.AST.ClassLayout __result0; + if (((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout)) + __result0 = (global::CppSharp.Parser.AST.ClassLayout) global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap[((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout]; + else __result0 = global::CppSharp.Parser.AST.ClassLayout.__CreateInstance(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout); + return __result0; } set { - __Internal.SetName_0((__Instance + __PointerAdjustment), value); + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public string USR + public uint BasesCount { get { - var __ret = __Internal.USR_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetUSR_0((__Instance + __PointerAdjustment), value); + var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); + return __ret; } } - public string DebugText + public uint FieldsCount { get { - var __ret = __Internal.DebugText_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); + return __ret; } + } - set + public uint MethodsCount + { + get { - __Internal.SetDebugText_0((__Instance + __PointerAdjustment), value); + var __ret = __Internal.GetMethodsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } - public uint PreprocessedEntitiesCount + public uint SpecifiersCount { get { - var __ret = __Internal.GetPreprocessedEntitiesCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetSpecifiersCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class DeclarationContext : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 216)] + [StructLayout(LayoutKind.Explicit, Size = 20)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.TypeKind kind; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; + public global::CppSharp.Parser.AST.QualifiedType.__Internal injectedSpecializationType; [FieldOffset(16)] - public int lineNumberStart; - - [FieldOffset(20)] - public int lineNumberEnd; - - [FieldOffset(24)] - public global::Std.__1.BasicString.__Internal Name; - - [FieldOffset(36)] - public global::Std.__1.BasicString.__Internal USR; + public global::System.IntPtr _class; - [FieldOffset(48)] - public global::Std.__1.BasicString.__Internal DebugText; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST21InjectedClassNameTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(60)] - public byte isIncomplete; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST21InjectedClassNameTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } - [FieldOffset(61)] - public byte isDependent; + internal static new global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new InjectedClassNameType(native.ToPointer(), skipVTables); + } - [FieldOffset(62)] - public byte isImplicit; + internal static global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + { + return new InjectedClassNameType(native, skipVTables); + } - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; + private static void* __CopyValue(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + global::CppSharp.Parser.AST.InjectedClassNameType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [FieldOffset(68)] - public uint definitionOrder; + private InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [FieldOffset(72)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; + protected InjectedClassNameType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [FieldOffset(84)] - public global::System.IntPtr originalPtr; + public InjectedClassNameType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(88)] - public global::System.IntPtr comment; + public InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(92)] - internal global::Std.__1.Vector.__Internal Namespaces; + public global::CppSharp.Parser.AST.QualifiedType InjectedSpecializationType + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType); + } - [FieldOffset(104)] - internal global::Std.__1.Vector.__Internal Enums; + set + { + ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } - [FieldOffset(116)] - internal global::Std.__1.Vector.__Internal Functions; + public global::CppSharp.Parser.AST.Class Class + { + get + { + global::CppSharp.Parser.AST.Class __result0; + if (((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + } + + public unsafe partial class DependentNameType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 16)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17DependentNameTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17DependentNameTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } + + internal static new global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new DependentNameType(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + { + return new DependentNameType(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.DependentNameType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + global::CppSharp.Parser.AST.DependentNameType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private DependentNameType(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected DependentNameType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public DependentNameType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public DependentNameType(global::CppSharp.Parser.AST.DependentNameType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } + + public global::CppSharp.Parser.AST.QualifiedType Desugared + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared); + } + + set + { + ((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + } + + public unsafe partial class PackExpansionType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 8)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17PackExpansionTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17PackExpansionTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } + + internal static new global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new PackExpansionType(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) + { + return new PackExpansionType(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.PackExpansionType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + global::CppSharp.Parser.AST.PackExpansionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected PackExpansionType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public PackExpansionType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } + } + + public unsafe partial class UnaryTransformType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 24)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + + [FieldOffset(16)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal baseType; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18UnaryTransformTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18UnaryTransformTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } + + internal static new global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new UnaryTransformType(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) + { + return new UnaryTransformType(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + global::CppSharp.Parser.AST.UnaryTransformType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected UnaryTransformType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public UnaryTransformType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } + + public global::CppSharp.Parser.AST.QualifiedType Desugared + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared); + } + + set + { + ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public global::CppSharp.Parser.AST.QualifiedType BaseType + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType); + } + + set + { + ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + } + + public unsafe partial class VectorType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 20)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal elementType; + + [FieldOffset(16)] + public uint numElements; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10VectorTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10VectorTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } + + internal static new global::CppSharp.Parser.AST.VectorType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new VectorType(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.VectorType __CreateInstance(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + { + return new VectorType(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.VectorType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + global::CppSharp.Parser.AST.VectorType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private VectorType(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected VectorType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public VectorType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public VectorType(global::CppSharp.Parser.AST.VectorType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } + + public global::CppSharp.Parser.AST.QualifiedType ElementType + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType); + } + + set + { + ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public uint NumElements + { + get + { + return ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements; + } + + set + { + ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements = value; + } + } + } + + public unsafe partial class BuiltinType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 12)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + public global::CppSharp.Parser.AST.PrimitiveType type; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11BuiltinTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11BuiltinTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } + + internal static new global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new BuiltinType(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) + { + return new BuiltinType(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.BuiltinType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + global::CppSharp.Parser.AST.BuiltinType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private BuiltinType(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected BuiltinType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public BuiltinType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public BuiltinType(global::CppSharp.Parser.AST.BuiltinType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } + + public global::CppSharp.Parser.AST.PrimitiveType Type + { + get + { + return ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type; + } + + set + { + ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type = value; + } + } + } + + public unsafe partial class VTableComponent : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 12)] + public partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.VTableComponentKind kind; + + [FieldOffset(4)] + public uint offset; + + [FieldOffset(8)] + public global::System.IntPtr declaration; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST15VTableComponentC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST15VTableComponentC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + } + + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new VTableComponent(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + { + return new VTableComponent(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.VTableComponent.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + *(global::CppSharp.Parser.AST.VTableComponent.__Internal*) ret = native; + return ret.ToPointer(); + } + + private VTableComponent(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [FieldOffset(128)] - internal global::Std.__1.Vector.__Internal Classes; + protected VTableComponent(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [FieldOffset(140)] - internal global::Std.__1.Vector.__Internal Templates; + public VTableComponent() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(152)] - internal global::Std.__1.Vector.__Internal Typedefs; + public VTableComponent(global::CppSharp.Parser.AST.VTableComponent _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) _0.__Instance); + } - [FieldOffset(164)] - internal global::Std.__1.Vector.__Internal TypeAliases; + public void Dispose() + { + Dispose(disposing: true); + } - [FieldOffset(176)] - internal global::Std.__1.Vector.__Internal Variables; + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.VTableComponent __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - [FieldOffset(188)] - internal global::Std.__1.Vector.__Internal Friends; + public global::CppSharp.Parser.AST.VTableComponentKind Kind + { + get + { + return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind; + } - [FieldOffset(200)] - internal global::Std.__1.Map.__Internal anonymous; + set + { + ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind = value; + } + } - [FieldOffset(212)] - public byte isAnonymous; + public uint Offset + { + get + { + return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset; + } + + set + { + ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset = value; + } + } + + public global::CppSharp.Parser.AST.Declaration Declaration + { + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + } + + public unsafe partial class VTableLayout : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 12)] + public partial struct __Internal + { + [FieldOffset(0)] + internal global::Std.__1.Vector.__Internal Components; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13getNamespacesEj")] - internal static extern global::System.IntPtr GetNamespaces_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout13getComponentsEj")] + internal static extern void GetComponents_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13addNamespacesERPNS1_9NamespaceE")] - internal static extern void AddNamespaces_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout13addComponentsERNS1_15VTableComponentE")] + internal static extern void AddComponents_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15clearNamespacesEv")] - internal static extern void ClearNamespaces_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout15clearComponentsEv")] + internal static extern void ClearComponents_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext8getEnumsEj")] - internal static extern global::System.IntPtr GetEnums_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout18getComponentsCountEv")] + internal static extern uint GetComponentsCount_0(global::System.IntPtr instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext8addEnumsERPNS1_11EnumerationE")] - internal static extern void AddEnums_0(global::System.IntPtr instance, global::System.IntPtr s); + public global::System.IntPtr __Instance { get; protected set; } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10clearEnumsEv")] - internal static extern void ClearEnums_0(global::System.IntPtr instance); + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getFunctionsEj")] - internal static extern global::System.IntPtr GetFunctions_0(global::System.IntPtr instance, uint i); + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new VTableLayout(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + { + return new VTableLayout(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.VTableLayout.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + global::CppSharp.Parser.AST.VTableLayout.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private VTableLayout(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected VTableLayout(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public VTableLayout() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public VTableLayout(global::CppSharp.Parser.AST.VTableLayout _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.VTableLayout __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.VTableComponent GetComponents(uint i) + { + var __ret = new global::CppSharp.Parser.AST.VTableComponent.__Internal(); + __Internal.GetComponents_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.VTableComponent.__CreateInstance(__ret); + } + + public void AddComponents(global::CppSharp.Parser.AST.VTableComponent s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddComponents_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearComponents() + { + __Internal.ClearComponents_0((__Instance + __PointerAdjustment)); + } + + public uint ComponentsCount + { + get + { + var __ret = __Internal.GetComponentsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + } + + public unsafe partial class VFTableInfo : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 28)] + public partial struct __Internal + { + [FieldOffset(0)] + public ulong VBTableIndex; + + [FieldOffset(8)] + public uint VFPtrOffset; + + [FieldOffset(12)] + public uint VFPtrFullOffset; + + [FieldOffset(16)] + public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addFunctionsERPNS1_8FunctionE")] - internal static extern void AddFunctions_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearFunctionsEv")] - internal static extern void ClearFunctions_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10getClassesEj")] - internal static extern global::System.IntPtr GetClasses_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10addClassesERPNS1_5ClassE")] - internal static extern void AddClasses_0(global::System.IntPtr instance, global::System.IntPtr s); + public global::System.IntPtr __Instance { get; protected set; } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12clearClassesEv")] - internal static extern void ClearClasses_0(global::System.IntPtr instance); + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getTemplatesEj")] - internal static extern global::System.IntPtr GetTemplates_0(global::System.IntPtr instance, uint i); + protected bool __ownsNativeInstance; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addTemplatesERPNS1_8TemplateE")] - internal static extern void AddTemplates_0(global::System.IntPtr instance, global::System.IntPtr s); + internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new VFTableInfo(native.ToPointer(), skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearTemplatesEv")] - internal static extern void ClearTemplates_0(global::System.IntPtr instance); + internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + { + return new VFTableInfo(native, skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext11getTypedefsEj")] - internal static extern global::System.IntPtr GetTypedefs_0(global::System.IntPtr instance, uint i); + private static void* __CopyValue(global::CppSharp.Parser.AST.VFTableInfo.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + global::CppSharp.Parser.AST.VFTableInfo.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext11addTypedefsERPNS1_11TypedefDeclE")] - internal static extern void AddTypedefs_0(global::System.IntPtr instance, global::System.IntPtr s); + private VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13clearTypedefsEv")] - internal static extern void ClearTypedefs_0(global::System.IntPtr instance); + protected VFTableInfo(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14getTypeAliasesEj")] - internal static extern global::System.IntPtr GetTypeAliases_0(global::System.IntPtr instance, uint i); + public VFTableInfo() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14addTypeAliasesERPNS1_9TypeAliasE")] - internal static extern void AddTypeAliases_0(global::System.IntPtr instance, global::System.IntPtr s); + public VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext16clearTypeAliasesEv")] - internal static extern void ClearTypeAliases_0(global::System.IntPtr instance); + public void Dispose() + { + Dispose(disposing: true); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getVariablesEj")] - internal static extern global::System.IntPtr GetVariables_0(global::System.IntPtr instance, uint i); + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.VFTableInfo __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addVariablesERPNS1_8VariableE")] - internal static extern void AddVariables_0(global::System.IntPtr instance, global::System.IntPtr s); + public ulong VBTableIndex + { + get + { + return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearVariablesEv")] - internal static extern void ClearVariables_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10getFriendsEj")] - internal static extern global::System.IntPtr GetFriends_0(global::System.IntPtr instance, uint i); + public uint VFPtrOffset + { + get + { + return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10addFriendsERPNS1_6FriendE")] - internal static extern void AddFriends_0(global::System.IntPtr instance, global::System.IntPtr s); + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12clearFriendsEv")] - internal static extern void ClearFriends_0(global::System.IntPtr instance); + public uint VFPtrFullOffset + { + get + { + return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext18getNamespacesCountEv")] - internal static extern uint GetNamespacesCount_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13getEnumsCountEv")] - internal static extern uint GetEnumsCount_0(global::System.IntPtr instance); + public global::CppSharp.Parser.AST.VTableLayout Layout + { + get + { + return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getFunctionsCountEv")] - internal static extern uint GetFunctionsCount_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; + } + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15getClassesCountEv")] - internal static extern uint GetClassesCount_0(global::System.IntPtr instance); + public unsafe partial class LayoutField : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 28)] + public partial struct __Internal + { + [FieldOffset(0)] + public uint offset; + + [FieldOffset(4)] + public global::Std.__1.BasicString.__Internal Name; + + [FieldOffset(16)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(24)] + public global::System.IntPtr fieldPtr; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getTemplatesCountEv")] - internal static extern uint GetTemplatesCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext16getTypedefsCountEv")] - internal static extern uint GetTypedefsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr other); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext19getTypeAliasesCountEv")] - internal static extern uint GetTypeAliasesCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getVariablesCountEv")] - internal static extern uint GetVariablesCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutField7getNameEv")] + internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15getFriendsCountEv")] - internal static extern uint GetFriendsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutField7setNameEPKc")] + internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - internal static new global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DeclarationContext(native.ToPointer(), skipVTables); + return new LayoutField(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) { - return new DeclarationContext(native, skipVTables); + return new LayoutField(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DeclarationContext.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutField.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); - global::CppSharp.Parser.AST.DeclarationContext.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + global::CppSharp.Parser.AST.LayoutField.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) + private LayoutField(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DeclarationContext(void* native, bool skipVTables = false) - : base((void*) null) + protected LayoutField(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) - : this((void*) null) + public LayoutField() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext _0) - : this((void*) null) + public LayoutField(global::CppSharp.Parser.AST.LayoutField other) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + if (ReferenceEquals(other, null)) + throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = other.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.LayoutField __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -4949,454 +5472,369 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Namespace GetNamespaces(uint i) - { - var __ret = __Internal.GetNamespaces_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Namespace __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Namespace.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Namespace) global::CppSharp.Parser.AST.Namespace.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Namespace.__CreateInstance(__ret); - return __result0; - } - - public void AddNamespaces(global::CppSharp.Parser.AST.Namespace s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddNamespaces_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearNamespaces() - { - __Internal.ClearNamespaces_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.Enumeration GetEnums(uint i) - { - var __ret = __Internal.GetEnums_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Enumeration __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Enumeration) global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Enumeration.__CreateInstance(__ret); - return __result0; - } - - public void AddEnums(global::CppSharp.Parser.AST.Enumeration s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddEnums_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearEnums() - { - __Internal.ClearEnums_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.Function GetFunctions(uint i) - { - var __ret = __Internal.GetFunctions_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Function __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(__ret); - return __result0; - } - - public void AddFunctions(global::CppSharp.Parser.AST.Function s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFunctions_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearFunctions() - { - __Internal.ClearFunctions_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.Class GetClasses(uint i) + public uint Offset { - var __ret = __Internal.GetClasses_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Class __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(__ret); - return __result0; - } + get + { + return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset; + } - public void AddClasses(global::CppSharp.Parser.AST.Class s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddClasses_0((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset = value; + } } - public void ClearClasses() + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { - __Internal.ClearClasses_0((__Instance + __PointerAdjustment)); - } + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType); + } - public global::CppSharp.Parser.AST.Template GetTemplates(uint i) - { - var __ret = __Internal.GetTemplates_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Template __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(__ret); - return __result0; + set + { + ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } - public void AddTemplates(global::CppSharp.Parser.AST.Template s) + public global::System.IntPtr FieldPtr { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddTemplates_0((__Instance + __PointerAdjustment), __arg0); - } + get + { + return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr; + } - public void ClearTemplates() - { - __Internal.ClearTemplates_0((__Instance + __PointerAdjustment)); + set + { + ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr = (global::System.IntPtr) value; + } } - public global::CppSharp.Parser.AST.TypedefDecl GetTypedefs(uint i) + public string Name { - var __ret = __Internal.GetTypedefs_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.TypedefDecl __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.TypedefDecl) global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.TypedefDecl.__CreateInstance(__ret); - return __result0; - } + get + { + var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } - public void AddTypedefs(global::CppSharp.Parser.AST.TypedefDecl s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddTypedefs_0((__Instance + __PointerAdjustment), __arg0); + set + { + __Internal.SetName_0((__Instance + __PointerAdjustment), value); + } } + } - public void ClearTypedefs() + public unsafe partial class LayoutBase : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 8)] + public partial struct __Internal { - __Internal.ClearTypedefs_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(0)] + public uint offset; - public global::CppSharp.Parser.AST.TypeAlias GetTypeAliases(uint i) - { - var __ret = __Internal.GetTypeAliases_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.TypeAlias __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.TypeAlias) global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.TypeAlias.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(4)] + public global::System.IntPtr _class; - public void AddTypeAliases(global::CppSharp.Parser.AST.TypeAlias s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddTypeAliases_0((__Instance + __PointerAdjustment), __arg0); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - public void ClearTypeAliases() - { - __Internal.ClearTypeAliases_0((__Instance + __PointerAdjustment)); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr other); - public global::CppSharp.Parser.AST.Variable GetVariables(uint i) - { - var __ret = __Internal.GetVariables_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Variable __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Variable.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Variable) global::CppSharp.Parser.AST.Variable.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Variable.__CreateInstance(__ret); - return __result0; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - public void AddVariables(global::CppSharp.Parser.AST.Variable s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddVariables_0((__Instance + __PointerAdjustment), __arg0); - } + public global::System.IntPtr __Instance { get; protected set; } - public void ClearVariables() - { - __Internal.ClearVariables_0((__Instance + __PointerAdjustment)); - } + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - public global::CppSharp.Parser.AST.Friend GetFriends(uint i) - { - var __ret = __Internal.GetFriends_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Friend __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Friend.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Friend) global::CppSharp.Parser.AST.Friend.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Friend.__CreateInstance(__ret); - return __result0; - } + protected bool __ownsNativeInstance; - public void AddFriends(global::CppSharp.Parser.AST.Friend s) + internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFriends_0((__Instance + __PointerAdjustment), __arg0); + return new LayoutBase(native.ToPointer(), skipVTables); } - public void ClearFriends() + internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) { - __Internal.ClearFriends_0((__Instance + __PointerAdjustment)); + return new LayoutBase(native, skipVTables); } - public static implicit operator global::CppSharp.Parser.AST.DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) + private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutBase.__Internal native) { - return new global::CppSharp.Parser.AST.DeclarationContext(kind); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + global::CppSharp.Parser.AST.LayoutBase.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public bool IsAnonymous + private LayoutBase(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - get - { - return ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous != 0; - } - - set - { - ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous = (byte) (value ? 1 : 0); - } + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public uint NamespacesCount + protected LayoutBase(void* native, bool skipVTables = false) { - get - { - var __ret = __Internal.GetNamespacesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public uint EnumsCount + public LayoutBase() { - get - { - var __ret = __Internal.GetEnumsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public uint FunctionsCount + public LayoutBase(global::CppSharp.Parser.AST.LayoutBase other) { - get - { - var __ret = __Internal.GetFunctionsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(other, null)) + throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = other.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public uint ClassesCount + public void Dispose() { - get - { - var __ret = __Internal.GetClassesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + Dispose(disposing: true); } - public uint TemplatesCount + public virtual void Dispose(bool disposing) { - get - { - var __ret = __Internal.GetTemplatesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + global::CppSharp.Parser.AST.LayoutBase __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public uint TypedefsCount + public uint Offset { get { - var __ret = __Internal.GetTypedefsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset; } - } - public uint TypeAliasesCount - { - get + set { - var __ret = __Internal.GetTypeAliasesCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset = value; } } - public uint VariablesCount + public global::CppSharp.Parser.AST.Class Class { get { - var __ret = __Internal.GetVariablesCount_0((__Instance + __PointerAdjustment)); - return __ret; + global::CppSharp.Parser.AST.Class __result0; + if (((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class); + return __result0; } - } - public uint FriendsCount - { - get + set { - var __ret = __Internal.GetFriendsCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class TypedefNameDecl : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class ClassLayout : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 100)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 72)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.CppAbi ABI; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; + internal global::Std.__1.Vector.__Internal VFTables; [FieldOffset(16)] - public int lineNumberStart; + public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; - [FieldOffset(20)] - public int lineNumberEnd; + [FieldOffset(28)] + public byte hasOwnVFPtr; - [FieldOffset(24)] - public global::Std.__1.BasicString.__Internal Name; + [FieldOffset(32)] + public int VBPtrOffset; [FieldOffset(36)] - public global::Std.__1.BasicString.__Internal USR; + public int alignment; + + [FieldOffset(40)] + public int size; + + [FieldOffset(44)] + public int dataSize; [FieldOffset(48)] - public global::Std.__1.BasicString.__Internal DebugText; + internal global::Std.__1.Vector.__Internal Fields; [FieldOffset(60)] - public byte isIncomplete; + internal global::Std.__1.Vector.__Internal Bases; - [FieldOffset(61)] - public byte isDependent; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(62)] - public byte isImplicit; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - [FieldOffset(68)] - public uint definitionOrder; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11getVFTablesEj")] + internal static extern void GetVFTables_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - [FieldOffset(72)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11addVFTablesERNS1_11VFTableInfoE")] + internal static extern void AddVFTables_0(global::System.IntPtr instance, global::System.IntPtr s); - [FieldOffset(84)] - public global::System.IntPtr originalPtr; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout13clearVFTablesEv")] + internal static extern void ClearVFTables_0(global::System.IntPtr instance); - [FieldOffset(88)] - public global::System.IntPtr comment; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout9getFieldsEj")] + internal static extern void GetFields_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - [FieldOffset(92)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout9addFieldsERNS1_11LayoutFieldE")] + internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11clearFieldsEv")] + internal static extern void ClearFields_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout8getBasesEj")] + internal static extern void GetBases_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout8addBasesERNS1_10LayoutBaseE")] + internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout10clearBasesEv")] + internal static extern void ClearBases_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout16getVFTablesCountEv")] + internal static extern uint GetVFTablesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout14getFieldsCountEv")] + internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout13getBasesCountEv")] + internal static extern uint GetBasesCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypedefNameDecl(native.ToPointer(), skipVTables); + return new ClassLayout(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) { - return new TypedefNameDecl(native, skipVTables); + return new ClassLayout(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassLayout.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); - global::CppSharp.Parser.AST.TypedefNameDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + global::CppSharp.Parser.AST.ClassLayout.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) + private ClassLayout(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypedefNameDecl(void* native, bool skipVTables = false) - : base((void*) null) + protected ClassLayout(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) - : this((void*) null) + public ClassLayout() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl _0) - : this((void*) null) + public ClassLayout(global::CppSharp.Parser.AST.ClassLayout _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.ClassLayout __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -5404,168 +5842,188 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public static implicit operator global::CppSharp.Parser.AST.TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) + public global::CppSharp.Parser.AST.VFTableInfo GetVFTables(uint i) { - return new global::CppSharp.Parser.AST.TypedefNameDecl(kind); + var __ret = new global::CppSharp.Parser.AST.VFTableInfo.__Internal(); + __Internal.GetVFTables_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.VFTableInfo.__CreateInstance(__ret); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public void AddVFTables(global::CppSharp.Parser.AST.VFTableInfo s) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddVFTables_0((__Instance + __PointerAdjustment), __arg0); } - } - public unsafe partial class TypedefDecl : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 100)] - public new partial struct __Internal + public void ClearVFTables() { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(16)] - public int lineNumberStart; - - [FieldOffset(20)] - public int lineNumberEnd; - - [FieldOffset(24)] - public global::Std.__1.BasicString.__Internal Name; - - [FieldOffset(36)] - public global::Std.__1.BasicString.__Internal USR; - - [FieldOffset(48)] - public global::Std.__1.BasicString.__Internal DebugText; - - [FieldOffset(60)] - public byte isIncomplete; - - [FieldOffset(61)] - public byte isDependent; + __Internal.ClearVFTables_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(62)] - public byte isImplicit; + public global::CppSharp.Parser.AST.LayoutField GetFields(uint i) + { + var __ret = new global::CppSharp.Parser.AST.LayoutField.__Internal(); + __Internal.GetFields_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.LayoutField.__CreateInstance(__ret); + } - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; + public void AddFields(global::CppSharp.Parser.AST.LayoutField s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(68)] - public uint definitionOrder; + public void ClearFields() + { + __Internal.ClearFields_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(72)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; + public global::CppSharp.Parser.AST.LayoutBase GetBases(uint i) + { + var __ret = new global::CppSharp.Parser.AST.LayoutBase.__Internal(); + __Internal.GetBases_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.LayoutBase.__CreateInstance(__ret); + } - [FieldOffset(84)] - public global::System.IntPtr originalPtr; + public void AddBases(global::CppSharp.Parser.AST.LayoutBase s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(88)] - public global::System.IntPtr comment; + public void ClearBases() + { + __Internal.ClearBases_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(92)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + public global::CppSharp.Parser.AST.CppAbi ABI + { + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public global::CppSharp.Parser.AST.VTableLayout Layout + { + get + { + return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; + } } - internal static new global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public bool HasOwnVFPtr { - return new TypedefDecl(native.ToPointer(), skipVTables); + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr != 0; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr = (byte) (value ? 1 : 0); + } } - internal static global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) + public int VBPtrOffset { - return new TypedefDecl(native, skipVTables); + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset = value; + } } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefDecl.__Internal native) + public int Alignment { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); - global::CppSharp.Parser.AST.TypedefDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment = value; + } } - private TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public int Size { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size = value; + } } - protected TypedefDecl(void* native, bool skipVTables = false) - : base((void*) null) + public int DataSize { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize = value; + } } - public TypedefDecl() - : this((void*) null) + public uint VFTablesCount { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + get + { + var __ret = __Internal.GetVFTablesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - public TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl _0) - : this((void*) null) + public uint FieldsCount { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + get + { + var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - public override void Dispose(bool disposing) + public uint BasesCount { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + get + { + var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } } - public unsafe partial class TypeAlias : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable + public unsafe partial class DeclarationContext : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 104)] + [StructLayout(LayoutKind.Explicit, Size = 228)] public new partial struct __Internal { [FieldOffset(0)] @@ -5614,58 +6072,268 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] public global::System.IntPtr originalPtr; - [FieldOffset(88)] + [FieldOffset(100)] public global::System.IntPtr comment; - [FieldOffset(92)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(104)] + internal global::Std.__1.Vector.__Internal Namespaces; + + [FieldOffset(116)] + internal global::Std.__1.Vector.__Internal Enums; + + [FieldOffset(128)] + internal global::Std.__1.Vector.__Internal Functions; + + [FieldOffset(140)] + internal global::Std.__1.Vector.__Internal Classes; + + [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Templates; + + [FieldOffset(164)] + internal global::Std.__1.Vector.__Internal Typedefs; + + [FieldOffset(176)] + internal global::Std.__1.Vector.__Internal TypeAliases; + + [FieldOffset(188)] + internal global::Std.__1.Vector.__Internal Variables; + + [FieldOffset(200)] + internal global::Std.__1.Vector.__Internal Friends; + + [FieldOffset(212)] + internal global::Std.__1.Map.__Internal anonymous; + + [FieldOffset(224)] + public byte isAnonymous; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13getNamespacesEj")] + internal static extern global::System.IntPtr GetNamespaces_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13addNamespacesERPNS1_9NamespaceE")] + internal static extern void AddNamespaces_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15clearNamespacesEv")] + internal static extern void ClearNamespaces_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext8getEnumsEj")] + internal static extern global::System.IntPtr GetEnums_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext8addEnumsERPNS1_11EnumerationE")] + internal static extern void AddEnums_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10clearEnumsEv")] + internal static extern void ClearEnums_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getFunctionsEj")] + internal static extern global::System.IntPtr GetFunctions_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addFunctionsERPNS1_8FunctionE")] + internal static extern void AddFunctions_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearFunctionsEv")] + internal static extern void ClearFunctions_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10getClassesEj")] + internal static extern global::System.IntPtr GetClasses_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10addClassesERPNS1_5ClassE")] + internal static extern void AddClasses_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12clearClassesEv")] + internal static extern void ClearClasses_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getTemplatesEj")] + internal static extern global::System.IntPtr GetTemplates_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addTemplatesERPNS1_8TemplateE")] + internal static extern void AddTemplates_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearTemplatesEv")] + internal static extern void ClearTemplates_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext11getTypedefsEj")] + internal static extern global::System.IntPtr GetTypedefs_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext11addTypedefsERPNS1_11TypedefDeclE")] + internal static extern void AddTypedefs_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13clearTypedefsEv")] + internal static extern void ClearTypedefs_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14getTypeAliasesEj")] + internal static extern global::System.IntPtr GetTypeAliases_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14addTypeAliasesERPNS1_9TypeAliasE")] + internal static extern void AddTypeAliases_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext16clearTypeAliasesEv")] + internal static extern void ClearTypeAliases_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getVariablesEj")] + internal static extern global::System.IntPtr GetVariables_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addVariablesERPNS1_8VariableE")] + internal static extern void AddVariables_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearVariablesEv")] + internal static extern void ClearVariables_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10getFriendsEj")] + internal static extern global::System.IntPtr GetFriends_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10addFriendsERPNS1_6FriendE")] + internal static extern void AddFriends_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12clearFriendsEv")] + internal static extern void ClearFriends_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext18getNamespacesCountEv")] + internal static extern uint GetNamespacesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13getEnumsCountEv")] + internal static extern uint GetEnumsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getFunctionsCountEv")] + internal static extern uint GetFunctionsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15getClassesCountEv")] + internal static extern uint GetClassesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getTemplatesCountEv")] + internal static extern uint GetTemplatesCount_0(global::System.IntPtr instance); - [FieldOffset(100)] - public global::System.IntPtr describedAliasTemplate; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext16getTypedefsCountEv")] + internal static extern uint GetTypedefsCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext19getTypeAliasesCountEv")] + internal static extern uint GetTypeAliasesCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getVariablesCountEv")] + internal static extern uint GetVariablesCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15getFriendsCountEv")] + internal static extern uint GetFriendsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypeAlias(native.ToPointer(), skipVTables); + return new DeclarationContext(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) { - return new TypeAlias(native, skipVTables); + return new DeclarationContext(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAlias.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DeclarationContext.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); - global::CppSharp.Parser.AST.TypeAlias.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + global::CppSharp.Parser.AST.DeclarationContext.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypeAlias(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) + private DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypeAlias(void* native, bool skipVTables = false) + protected DeclarationContext(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -5674,25 +6342,25 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TypeAlias() + public DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public TypeAlias(global::CppSharp.Parser.AST.TypeAlias _0) + public DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } public override void Dispose(bool disposing) @@ -5705,491 +6373,425 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.TypeAliasTemplate DescribedAliasTemplate + public global::CppSharp.Parser.AST.Namespace GetNamespaces(uint i) { - get - { - global::CppSharp.Parser.AST.TypeAliasTemplate __result0; - if (((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate)) - __result0 = (global::CppSharp.Parser.AST.TypeAliasTemplate) global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate]; - else __result0 = global::CppSharp.Parser.AST.TypeAliasTemplate.__CreateInstance(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + var __ret = __Internal.GetNamespaces_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Namespace __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Namespace.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Namespace) global::CppSharp.Parser.AST.Namespace.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Namespace.__CreateInstance(__ret); + return __result0; } - } - public unsafe partial class Friend : global::CppSharp.Parser.AST.Declaration, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 96)] - public new partial struct __Internal + public void AddNamespaces(global::CppSharp.Parser.AST.Namespace s) { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(16)] - public int lineNumberStart; - - [FieldOffset(20)] - public int lineNumberEnd; - - [FieldOffset(24)] - public global::Std.__1.BasicString.__Internal Name; - - [FieldOffset(36)] - public global::Std.__1.BasicString.__Internal USR; - - [FieldOffset(48)] - public global::Std.__1.BasicString.__Internal DebugText; - - [FieldOffset(60)] - public byte isIncomplete; - - [FieldOffset(61)] - public byte isDependent; - - [FieldOffset(62)] - public byte isImplicit; - - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(68)] - public uint definitionOrder; + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddNamespaces_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(72)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; + public void ClearNamespaces() + { + __Internal.ClearNamespaces_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(84)] - public global::System.IntPtr originalPtr; + public global::CppSharp.Parser.AST.Enumeration GetEnums(uint i) + { + var __ret = __Internal.GetEnums_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Enumeration __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Enumeration) global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Enumeration.__CreateInstance(__ret); + return __result0; + } - [FieldOffset(88)] - public global::System.IntPtr comment; + public void AddEnums(global::CppSharp.Parser.AST.Enumeration s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddEnums_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(92)] - public global::System.IntPtr declaration; + public void ClearEnums() + { + __Internal.ClearEnums_0((__Instance + __PointerAdjustment)); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6FriendC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + public global::CppSharp.Parser.AST.Function GetFunctions(uint i) + { + var __ret = __Internal.GetFunctions_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Function __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(__ret); + return __result0; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6FriendC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public void AddFunctions(global::CppSharp.Parser.AST.Function s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFunctions_0((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6FriendD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + public void ClearFunctions() + { + __Internal.ClearFunctions_0((__Instance + __PointerAdjustment)); } - internal static new global::CppSharp.Parser.AST.Friend __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public global::CppSharp.Parser.AST.Class GetClasses(uint i) { - return new Friend(native.ToPointer(), skipVTables); + var __ret = __Internal.GetClasses_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Class __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(__ret); + return __result0; } - internal static global::CppSharp.Parser.AST.Friend __CreateInstance(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) + public void AddClasses(global::CppSharp.Parser.AST.Class s) { - return new Friend(native, skipVTables); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddClasses_0((__Instance + __PointerAdjustment), __arg0); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Friend.__Internal native) + public void ClearClasses() { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); - global::CppSharp.Parser.AST.Friend.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + __Internal.ClearClasses_0((__Instance + __PointerAdjustment)); } - private Friend(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public global::CppSharp.Parser.AST.Template GetTemplates(uint i) { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + var __ret = __Internal.GetTemplates_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Template __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(__ret); + return __result0; } - protected Friend(void* native, bool skipVTables = false) - : base((void*) null) + public void AddTemplates(global::CppSharp.Parser.AST.Template s) { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddTemplates_0((__Instance + __PointerAdjustment), __arg0); } - public Friend() - : this((void*) null) + public void ClearTemplates() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ClearTemplates_0((__Instance + __PointerAdjustment)); } - public Friend(global::CppSharp.Parser.AST.Friend _0) - : this((void*) null) + public global::CppSharp.Parser.AST.TypedefDecl GetTypedefs(uint i) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + var __ret = __Internal.GetTypedefs_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.TypedefDecl __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.TypedefDecl) global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.TypedefDecl.__CreateInstance(__ret); + return __result0; } - public override void Dispose(bool disposing) + public void AddTypedefs(global::CppSharp.Parser.AST.TypedefDecl s) { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddTypedefs_0((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.Declaration Declaration + public void ClearTypedefs() { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + __Internal.ClearTypedefs_0((__Instance + __PointerAdjustment)); } - } - public unsafe partial class Statement : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 20)] - public partial struct __Internal + public global::CppSharp.Parser.AST.TypeAlias GetTypeAliases(uint i) { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; - - [FieldOffset(4)] - public global::System.IntPtr decl; - - [FieldOffset(8)] - public global::Std.__1.BasicString.__Internal String; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9StatementC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9StatementD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9Statement9getStringEv")] - internal static extern global::System.IntPtr String_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9Statement9setStringEPKc")] - internal static extern void SetString_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + var __ret = __Internal.GetTypeAliases_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.TypeAlias __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.TypeAlias) global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.TypeAlias.__CreateInstance(__ret); + return __result0; } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; + public void AddTypeAliases(global::CppSharp.Parser.AST.TypeAlias s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddTypeAliases_0((__Instance + __PointerAdjustment), __arg0); + } - internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public void ClearTypeAliases() { - return new Statement(native.ToPointer(), skipVTables); + __Internal.ClearTypeAliases_0((__Instance + __PointerAdjustment)); } - internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + public global::CppSharp.Parser.AST.Variable GetVariables(uint i) { - return new Statement(native, skipVTables); + var __ret = __Internal.GetVariables_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Variable __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Variable.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Variable) global::CppSharp.Parser.AST.Variable.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Variable.__CreateInstance(__ret); + return __result0; } - private static void* __CopyValue(global::CppSharp.Parser.AST.Statement.__Internal native) + public void AddVariables(global::CppSharp.Parser.AST.Variable s) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); - global::CppSharp.Parser.AST.Statement.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddVariables_0((__Instance + __PointerAdjustment), __arg0); } - private Statement(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public void ClearVariables() { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + __Internal.ClearVariables_0((__Instance + __PointerAdjustment)); } - protected Statement(void* native, bool skipVTables = false) + public global::CppSharp.Parser.AST.Friend GetFriends(uint i) { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + var __ret = __Internal.GetFriends_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Friend __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Friend.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Friend) global::CppSharp.Parser.AST.Friend.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Friend.__CreateInstance(__ret); + return __result0; } - public Statement(global::CppSharp.Parser.AST.Statement _0) + public void AddFriends(global::CppSharp.Parser.AST.Friend s) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFriends_0((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() + public void ClearFriends() { - Dispose(disposing: true); + __Internal.ClearFriends_0((__Instance + __PointerAdjustment)); } - public virtual void Dispose(bool disposing) + public static implicit operator global::CppSharp.Parser.AST.DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) { - global::CppSharp.Parser.AST.Statement __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + return new global::CppSharp.Parser.AST.DeclarationContext(kind); } - public global::CppSharp.Parser.AST.StatementClass Class + public bool IsAnonymous { get { - return ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class; + return ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous != 0; } set { - ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class = value; + ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.Declaration Decl + public uint NamespacesCount { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + var __ret = __Internal.GetNamespacesCount_0((__Instance + __PointerAdjustment)); + return __ret; } } - public string String + public uint EnumsCount { get { - var __ret = __Internal.String_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetString_0((__Instance + __PointerAdjustment), value); + var __ret = __Internal.GetEnumsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } - } - - public unsafe partial class Expression : global::CppSharp.Parser.AST.Statement, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 20)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; - - [FieldOffset(4)] - public global::System.IntPtr decl; - - [FieldOffset(8)] - public global::Std.__1.BasicString.__Internal String; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10ExpressionC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10ExpressionD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - } - internal static new global::CppSharp.Parser.AST.Expression __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public uint FunctionsCount { - return new Expression(native.ToPointer(), skipVTables); + get + { + var __ret = __Internal.GetFunctionsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - internal static global::CppSharp.Parser.AST.Expression __CreateInstance(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) + public uint ClassesCount { - return new Expression(native, skipVTables); + get + { + var __ret = __Internal.GetClassesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - private static void* __CopyValue(global::CppSharp.Parser.AST.Expression.__Internal native) + public uint TemplatesCount { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); - global::CppSharp.Parser.AST.Expression.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + get + { + var __ret = __Internal.GetTemplatesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - private Expression(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public uint TypedefsCount { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + get + { + var __ret = __Internal.GetTypedefsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - - protected Expression(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + + public uint TypeAliasesCount + { + get + { + var __ret = __Internal.GetTypeAliasesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - public Expression(global::CppSharp.Parser.AST.Expression _0) - : this((void*) null) + public uint VariablesCount { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + get + { + var __ret = __Internal.GetVariablesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - public override void Dispose(bool disposing) + public uint FriendsCount { - global::CppSharp.Parser.AST.Statement __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + get + { + var __ret = __Internal.GetFriendsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } } - public unsafe partial class BinaryOperator : global::CppSharp.Parser.AST.Expression, IDisposable + public unsafe partial class RawComment : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 40)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 32)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + public global::CppSharp.Parser.AST.RawCommentKind kind; [FieldOffset(4)] - public global::System.IntPtr decl; - - [FieldOffset(8)] - public global::Std.__1.BasicString.__Internal String; - - [FieldOffset(20)] - public global::System.IntPtr LHS; + public global::Std.__1.BasicString.__Internal Text; - [FieldOffset(24)] - public global::System.IntPtr RHS; + [FieldOffset(16)] + public global::Std.__1.BasicString.__Internal BriefText; [FieldOffset(28)] - public global::Std.__1.BasicString.__Internal OpcodeStr; + public global::System.IntPtr fullCommentBlock; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperatorC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperatorD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperator12getOpcodeStrEv")] - internal static extern global::System.IntPtr OpcodeStr_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment7getTextEv")] + internal static extern global::System.IntPtr Text_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperator12setOpcodeStrEPKc")] - internal static extern void SetOpcodeStr_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment7setTextEPKc")] + internal static extern void SetText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment12getBriefTextEv")] + internal static extern global::System.IntPtr BriefText_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment12setBriefTextEPKc")] + internal static extern void SetBriefText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - internal static new global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new BinaryOperator(native.ToPointer(), skipVTables); + return new RawComment(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) { - return new BinaryOperator(native, skipVTables); + return new RawComment(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.BinaryOperator.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.RawComment.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); - global::CppSharp.Parser.AST.BinaryOperator.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); + global::CppSharp.Parser.AST.RawComment.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) + private RawComment(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected BinaryOperator(void* native, bool skipVTables = false) - : base((void*) null) + protected RawComment(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator _0) - : this((void*) null) + public RawComment() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public RawComment(global::CppSharp.Parser.AST.RawComment _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -6198,9 +6800,14 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Statement __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.RawComment __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -6208,443 +6815,555 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Expression LHS + public global::CppSharp.Parser.AST.RawCommentKind Kind { get { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS); - return __result0; + return ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind; } set { - ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind = value; } } - public global::CppSharp.Parser.AST.Expression RHS + public global::CppSharp.Parser.AST.FullComment FullCommentBlock { get { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS); + global::CppSharp.Parser.AST.FullComment __result0; + if (((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FullComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock)) + __result0 = (global::CppSharp.Parser.AST.FullComment) global::CppSharp.Parser.AST.FullComment.NativeToManagedMap[((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock]; + else __result0 = global::CppSharp.Parser.AST.FullComment.__CreateInstance(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock); return __result0; } set { - ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public string OpcodeStr + public string Text { get { - var __ret = __Internal.OpcodeStr_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.Text_0((__Instance + __PointerAdjustment)); return Marshal.PtrToStringAnsi(__ret); } set { - __Internal.SetOpcodeStr_0((__Instance + __PointerAdjustment), value); + __Internal.SetText_0((__Instance + __PointerAdjustment), value); + } + } + + public string BriefText + { + get + { + var __ret = __Internal.BriefText_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetBriefText_0((__Instance + __PointerAdjustment), value); } } } - public unsafe partial class CallExpr : global::CppSharp.Parser.AST.Expression, IDisposable + public unsafe partial class PreprocessedEntity : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 12)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + public global::CppSharp.Parser.AST.MacroLocation macroLocation; [FieldOffset(4)] - public global::System.IntPtr decl; + public global::System.IntPtr originalPtr; [FieldOffset(8)] - public global::Std.__1.BasicString.__Internal String; - - [FieldOffset(20)] - internal global::Std.__1.Vector.__Internal Arguments; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExprC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public global::CppSharp.Parser.AST.DeclarationKind kind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExprD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST18PreprocessedEntityC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr12getArgumentsEj")] - internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST18PreprocessedEntityC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr12addArgumentsERPNS1_10ExpressionE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + public global::System.IntPtr __Instance { get; protected set; } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); - } + protected bool __ownsNativeInstance; - internal static new global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new CallExpr(native.ToPointer(), skipVTables); + return new PreprocessedEntity(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) { - return new CallExpr(native, skipVTables); + return new PreprocessedEntity(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.CallExpr.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); - global::CppSharp.Parser.AST.CallExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); + *(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) ret = native; return ret.ToPointer(); } - private CallExpr(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) + private PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected CallExpr(void* native, bool skipVTables = false) - : base((void*) null) + protected PreprocessedEntity(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public CallExpr(global::CppSharp.Parser.AST.CallExpr _0) - : this((void*) null) + public PreprocessedEntity() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) _0.__Instance); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Statement __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.PreprocessedEntity __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Expression GetArguments(uint i) + public global::CppSharp.Parser.AST.MacroLocation MacroLocation { - var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Expression __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); - return __result0; - } + get + { + return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation; + } - public void AddArguments(global::CppSharp.Parser.AST.Expression s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation = value; + } } - public void ClearArguments() + public global::System.IntPtr OriginalPtr { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + get + { + return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr; + } + + set + { + ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; + } } - public uint ArgumentsCount + public global::CppSharp.Parser.AST.DeclarationKind Kind { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind; + } + + set + { + ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind = value; } } } - public unsafe partial class CXXConstructExpr : global::CppSharp.Parser.AST.Expression, IDisposable + public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] + [StructLayout(LayoutKind.Explicit, Size = 252)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public global::System.IntPtr decl; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::Std.__1.BasicString.__Internal String; + public global::System.IntPtr _namespace; + + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(16)] + public int lineNumberStart; [FieldOffset(20)] - internal global::Std.__1.Vector.__Internal Arguments; + public int lineNumberEnd; + + [FieldOffset(24)] + public global::Std.__1.BasicString.__Internal Name; + + [FieldOffset(36)] + public global::Std.__1.BasicString.__Internal USR; + + [FieldOffset(48)] + public global::Std.__1.BasicString.__Internal DebugText; + + [FieldOffset(60)] + public byte isIncomplete; + + [FieldOffset(61)] + public byte isDependent; + + [FieldOffset(62)] + public byte isImplicit; + + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(68)] + public uint definitionOrder; + + [FieldOffset(72)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; + + [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] + public global::System.IntPtr originalPtr; + + [FieldOffset(100)] + public global::System.IntPtr comment; + + [FieldOffset(104)] + internal global::Std.__1.Vector.__Internal Namespaces; + + [FieldOffset(116)] + internal global::Std.__1.Vector.__Internal Enums; + + [FieldOffset(128)] + internal global::Std.__1.Vector.__Internal Functions; + + [FieldOffset(140)] + internal global::Std.__1.Vector.__Internal Classes; + + [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Templates; + + [FieldOffset(164)] + internal global::Std.__1.Vector.__Internal Typedefs; + + [FieldOffset(176)] + internal global::Std.__1.Vector.__Internal TypeAliases; + + [FieldOffset(188)] + internal global::Std.__1.Vector.__Internal Variables; + + [FieldOffset(200)] + internal global::Std.__1.Vector.__Internal Friends; + + [FieldOffset(212)] + internal global::Std.__1.Map.__Internal anonymous; + + [FieldOffset(224)] + public byte isAnonymous; + + [FieldOffset(228)] + public global::CppSharp.Parser.AST.Enumeration.EnumModifiers modifiers; + + [FieldOffset(232)] + public global::System.IntPtr type; + + [FieldOffset(236)] + public global::System.IntPtr builtinType; + + [FieldOffset(240)] + internal global::Std.__1.Vector.__Internal Items; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExprC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExprD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr12getArgumentsEj")] - internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration8getItemsEj")] + internal static extern global::System.IntPtr GetItems_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr12addArgumentsERPNS1_10ExpressionE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration8addItemsERPNS2_4ItemE")] + internal static extern void AddItems_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration10clearItemsEv")] + internal static extern void ClearItems_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration13getItemsCountEv")] + internal static extern uint GetItemsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [Flags] + public enum EnumModifiers { - return new CXXConstructExpr(native.ToPointer(), skipVTables); + Anonymous = 1, + Scoped = 2, + Flags = 4 } - internal static global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) + public unsafe partial class Item : global::CppSharp.Parser.AST.Declaration, IDisposable { - return new CXXConstructExpr(native, skipVTables); - } + [StructLayout(LayoutKind.Explicit, Size = 124)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; - private static void* __CopyValue(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); - global::CppSharp.Parser.AST.CXXConstructExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; - private CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [FieldOffset(8)] + public global::System.IntPtr _namespace; - protected CXXConstructExpr(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - public CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(16)] + public int lineNumberStart; - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Statement __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } + [FieldOffset(20)] + public int lineNumberEnd; + + [FieldOffset(24)] + public global::Std.__1.BasicString.__Internal Name; + + [FieldOffset(36)] + public global::Std.__1.BasicString.__Internal USR; - public global::CppSharp.Parser.AST.Expression GetArguments(uint i) - { - var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Expression __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(48)] + public global::Std.__1.BasicString.__Internal DebugText; - public void AddArguments(global::CppSharp.Parser.AST.Expression s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(60)] + public byte isIncomplete; - public void ClearArguments() - { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(61)] + public byte isDependent; - public uint ArgumentsCount - { - get - { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - } + [FieldOffset(62)] + public byte isImplicit; - public unsafe partial class Parameter : global::CppSharp.Parser.AST.Declaration, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 112)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + [FieldOffset(68)] + public uint definitionOrder; - [FieldOffset(8)] - public global::System.IntPtr _namespace; + [FieldOffset(72)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; + [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; - [FieldOffset(16)] - public int lineNumberStart; + [FieldOffset(96)] + public global::System.IntPtr originalPtr; - [FieldOffset(20)] - public int lineNumberEnd; + [FieldOffset(100)] + public global::System.IntPtr comment; - [FieldOffset(24)] - public global::Std.__1.BasicString.__Internal Name; + [FieldOffset(104)] + public global::Std.__1.BasicString.__Internal Expression; - [FieldOffset(36)] - public global::Std.__1.BasicString.__Internal USR; + [FieldOffset(116)] + public ulong value; - [FieldOffset(48)] - public global::Std.__1.BasicString.__Internal DebugText; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(60)] - public byte isIncomplete; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemC2ERKS3_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(61)] - public byte isDependent; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - [FieldOffset(62)] - public byte isImplicit; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4Item13getExpressionEv")] + internal static extern global::System.IntPtr Expression_0(global::System.IntPtr instance); - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4Item13setExpressionEPKc")] + internal static extern void SetExpression_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + } - [FieldOffset(68)] - public uint definitionOrder; + internal static new global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Item(native.ToPointer(), skipVTables); + } - [FieldOffset(72)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; + internal static global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) + { + return new Item(native, skipVTables); + } - [FieldOffset(84)] - public global::System.IntPtr originalPtr; + private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); + global::CppSharp.Parser.AST.Enumeration.Item.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [FieldOffset(88)] - public global::System.IntPtr comment; + private Item(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [FieldOffset(92)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + protected Item(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [FieldOffset(100)] - public byte isIndirect; + public Item() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(101)] - public byte hasDefaultValue; + public Item(global::CppSharp.Parser.AST.Enumeration.Item _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(104)] - public uint index; + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - [FieldOffset(108)] - public global::System.IntPtr defaultArgument; + public ulong Value + { + get + { + return ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public string Expression + { + get + { + var __ret = __Internal.Expression_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + set + { + __Internal.SetExpression_0((__Instance + __PointerAdjustment), value); + } + } } - internal static new global::CppSharp.Parser.AST.Parameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Parameter(native.ToPointer(), skipVTables); + return new Enumeration(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Parameter __CreateInstance(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) { - return new Parameter(native, skipVTables); + return new Enumeration(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Parameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); - global::CppSharp.Parser.AST.Parameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + global::CppSharp.Parser.AST.Enumeration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Parameter(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) + private Enumeration(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Parameter(void* native, bool skipVTables = false) + protected Enumeration(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -6653,19 +7372,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Parameter() + public Enumeration() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Parameter(global::CppSharp.Parser.AST.Parameter _0) + public Enumeration(global::CppSharp.Parser.AST.Enumeration _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -6684,80 +7403,92 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public global::CppSharp.Parser.AST.Enumeration.Item GetItems(uint i) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType); - } + var __ret = __Internal.GetItems_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Enumeration.Item __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Enumeration.Item) global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Enumeration.Item.__CreateInstance(__ret); + return __result0; + } + + public void AddItems(global::CppSharp.Parser.AST.Enumeration.Item s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddItems_0((__Instance + __PointerAdjustment), __arg0); + } - set - { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + public void ClearItems() + { + __Internal.ClearItems_0((__Instance + __PointerAdjustment)); } - public bool IsIndirect + public global::CppSharp.Parser.AST.Enumeration.EnumModifiers Modifiers { get { - return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect != 0; + return ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers; } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers = value; } } - public bool HasDefaultValue + public global::CppSharp.Parser.AST.Type Type { get { - return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue != 0; + global::CppSharp.Parser.AST.Type __result0; + if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type)) + __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type]; + else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type); + return __result0; } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public uint Index + public global::CppSharp.Parser.AST.BuiltinType BuiltinType { get { - return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index; + global::CppSharp.Parser.AST.BuiltinType __result0; + if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType)) + __result0 = (global::CppSharp.Parser.AST.BuiltinType) global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType]; + else __result0 = global::CppSharp.Parser.AST.BuiltinType.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType); + return __result0; } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index = value; + ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public global::CppSharp.Parser.AST.Expression DefaultArgument + public uint ItemsCount { get { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + var __ret = __Internal.GetItemsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } public unsafe partial class Function : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 184)] + [StructLayout(LayoutKind.Explicit, Size = 196)] public new partial struct __Internal { [FieldOffset(0)] @@ -6806,63 +7537,66 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] public global::System.IntPtr originalPtr; - [FieldOffset(88)] + [FieldOffset(100)] public global::System.IntPtr comment; - [FieldOffset(92)] + [FieldOffset(104)] public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(100)] + [FieldOffset(112)] public byte isReturnIndirect; - [FieldOffset(101)] + [FieldOffset(113)] public byte hasThisReturn; - [FieldOffset(102)] + [FieldOffset(114)] public byte isConstExpr; - [FieldOffset(103)] + [FieldOffset(115)] public byte isVariadic; - [FieldOffset(104)] + [FieldOffset(116)] public byte isInline; - [FieldOffset(105)] + [FieldOffset(117)] public byte isPure; - [FieldOffset(106)] + [FieldOffset(118)] public byte isDeleted; - [FieldOffset(108)] + [FieldOffset(120)] public global::CppSharp.Parser.AST.FriendKind friendKind; - [FieldOffset(112)] + [FieldOffset(124)] public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - [FieldOffset(116)] + [FieldOffset(128)] public global::Std.__1.BasicString.__Internal Mangled; - [FieldOffset(128)] + [FieldOffset(140)] public global::Std.__1.BasicString.__Internal Signature; - [FieldOffset(140)] + [FieldOffset(152)] public global::Std.__1.BasicString.__Internal Body; - [FieldOffset(152)] + [FieldOffset(164)] public global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(156)] + [FieldOffset(168)] internal global::Std.__1.Vector.__Internal Parameters; - [FieldOffset(168)] + [FieldOffset(180)] public global::System.IntPtr specializationInfo; - [FieldOffset(172)] + [FieldOffset(184)] public global::System.IntPtr instantiatedFrom; - [FieldOffset(176)] + [FieldOffset(188)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] @@ -7263,9 +7997,9 @@ namespace CppSharp } } - public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable + public unsafe partial class TypedefDecl : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 212)] + [StructLayout(LayoutKind.Explicit, Size = 112)] public new partial struct __Internal { [FieldOffset(0)] @@ -7314,139 +8048,204 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] public global::System.IntPtr originalPtr; - [FieldOffset(88)] + [FieldOffset(100)] public global::System.IntPtr comment; - [FieldOffset(92)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; + [FieldOffset(104)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(100)] - public byte isReturnIndirect; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(101)] - public byte hasThisReturn; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(102)] - public byte isConstExpr; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + } - [FieldOffset(103)] - public byte isVariadic; + internal static new global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new TypedefDecl(native.ToPointer(), skipVTables); + } - [FieldOffset(104)] - public byte isInline; + internal static global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) + { + return new TypedefDecl(native, skipVTables); + } - [FieldOffset(105)] - public byte isPure; + private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefDecl.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + global::CppSharp.Parser.AST.TypedefDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [FieldOffset(106)] - public byte isDeleted; + private TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [FieldOffset(108)] - public global::CppSharp.Parser.AST.FriendKind friendKind; + protected TypedefDecl(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [FieldOffset(112)] - public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; + public TypedefDecl() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(116)] - public global::Std.__1.BasicString.__Internal Mangled; + public TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(128)] - public global::Std.__1.BasicString.__Internal Signature; + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + } - [FieldOffset(140)] - public global::Std.__1.BasicString.__Internal Body; + public unsafe partial class TypeAlias : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 116)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; - [FieldOffset(152)] - public global::CppSharp.Parser.AST.CallingConvention callingConvention; + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; - [FieldOffset(156)] - internal global::Std.__1.Vector.__Internal Parameters; + [FieldOffset(8)] + public global::System.IntPtr _namespace; - [FieldOffset(168)] - public global::System.IntPtr specializationInfo; + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - [FieldOffset(172)] - public global::System.IntPtr instantiatedFrom; + [FieldOffset(16)] + public int lineNumberStart; - [FieldOffset(176)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(20)] + public int lineNumberEnd; - [FieldOffset(184)] - public byte isVirtual; + [FieldOffset(24)] + public global::Std.__1.BasicString.__Internal Name; - [FieldOffset(185)] - public byte isStatic; + [FieldOffset(36)] + public global::Std.__1.BasicString.__Internal USR; - [FieldOffset(186)] - public byte isConst; + [FieldOffset(48)] + public global::Std.__1.BasicString.__Internal DebugText; - [FieldOffset(187)] - public byte isExplicit; + [FieldOffset(60)] + public byte isIncomplete; - [FieldOffset(188)] - public byte isOverride; + [FieldOffset(61)] + public byte isDependent; - [FieldOffset(192)] - public global::CppSharp.Parser.AST.CXXMethodKind methodKind; + [FieldOffset(62)] + public byte isImplicit; - [FieldOffset(196)] - public byte isDefaultConstructor; + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; - [FieldOffset(197)] - public byte isCopyConstructor; + [FieldOffset(68)] + public uint definitionOrder; - [FieldOffset(198)] - public byte isMoveConstructor; + [FieldOffset(72)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; - [FieldOffset(200)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; + [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; - [FieldOffset(208)] - public global::CppSharp.Parser.AST.RefQualifierKind refQualifier; + [FieldOffset(96)] + public global::System.IntPtr originalPtr; + + [FieldOffset(100)] + public global::System.IntPtr comment; + + [FieldOffset(104)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(112)] + public global::System.IntPtr describedAliasTemplate; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6MethodD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Method(native.ToPointer(), skipVTables); + return new TypeAlias(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Method __CreateInstance(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) { - return new Method(native, skipVTables); + return new TypeAlias(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Method.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAlias.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); - global::CppSharp.Parser.AST.Method.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); + global::CppSharp.Parser.AST.TypeAlias.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Method(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) + private TypeAlias(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Method(void* native, bool skipVTables = false) + protected TypeAlias(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -7455,19 +8254,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Method() + public TypeAlias() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Method(global::CppSharp.Parser.AST.Method _0) + public TypeAlias(global::CppSharp.Parser.AST.TypeAlias _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -7486,153 +8285,28 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public bool IsVirtual - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); - } - } - - public bool IsStatic - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic = (byte) (value ? 1 : 0); - } - } - - public bool IsConst - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst = (byte) (value ? 1 : 0); - } - } - - public bool IsExplicit - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit = (byte) (value ? 1 : 0); - } - } - - public bool IsOverride - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride = (byte) (value ? 1 : 0); - } - } - - public global::CppSharp.Parser.AST.CXXMethodKind MethodKind - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind = value; - } - } - - public bool IsDefaultConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor = (byte) (value ? 1 : 0); - } - } - - public bool IsCopyConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor = (byte) (value ? 1 : 0); - } - } - - public bool IsMoveConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor = (byte) (value ? 1 : 0); - } - } - - public global::CppSharp.Parser.AST.QualifiedType ConversionType - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType); - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.RefQualifierKind RefQualifier + public global::CppSharp.Parser.AST.TypeAliasTemplate DescribedAliasTemplate { get { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier; + global::CppSharp.Parser.AST.TypeAliasTemplate __result0; + if (((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate)) + __result0 = (global::CppSharp.Parser.AST.TypeAliasTemplate) global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate]; + else __result0 = global::CppSharp.Parser.AST.TypeAliasTemplate.__CreateInstance(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate); + return __result0; } set { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value; + ((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + public unsafe partial class Namespace : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 240)] + [StructLayout(LayoutKind.Explicit, Size = 228)] public new partial struct __Internal { [FieldOffset(0)] @@ -7681,305 +8355,250 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] public global::System.IntPtr originalPtr; - [FieldOffset(88)] + [FieldOffset(100)] public global::System.IntPtr comment; - [FieldOffset(92)] - internal global::Std.__1.Vector.__Internal Namespaces; - [FieldOffset(104)] - internal global::Std.__1.Vector.__Internal Enums; + internal global::Std.__1.Vector.__Internal Namespaces; [FieldOffset(116)] - internal global::Std.__1.Vector.__Internal Functions; + internal global::Std.__1.Vector.__Internal Enums; [FieldOffset(128)] - internal global::Std.__1.Vector.__Internal Classes; + internal global::Std.__1.Vector.__Internal Functions; [FieldOffset(140)] - internal global::Std.__1.Vector.__Internal Templates; + internal global::Std.__1.Vector.__Internal Classes; [FieldOffset(152)] - internal global::Std.__1.Vector.__Internal Typedefs; + internal global::Std.__1.Vector.__Internal Templates; [FieldOffset(164)] - internal global::Std.__1.Vector.__Internal TypeAliases; + internal global::Std.__1.Vector.__Internal Typedefs; [FieldOffset(176)] - internal global::Std.__1.Vector.__Internal Variables; + internal global::Std.__1.Vector.__Internal TypeAliases; [FieldOffset(188)] - internal global::Std.__1.Vector.__Internal Friends; + internal global::Std.__1.Vector.__Internal Variables; [FieldOffset(200)] - internal global::Std.__1.Map.__Internal anonymous; + internal global::Std.__1.Vector.__Internal Friends; [FieldOffset(212)] - public byte isAnonymous; - - [FieldOffset(216)] - public global::CppSharp.Parser.AST.Enumeration.EnumModifiers modifiers; - - [FieldOffset(220)] - public global::System.IntPtr type; + internal global::Std.__1.Map.__Internal anonymous; [FieldOffset(224)] - public global::System.IntPtr builtinType; + public byte isAnonymous; - [FieldOffset(228)] - internal global::Std.__1.Vector.__Internal Items; + [FieldOffset(225)] + public byte isInline; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration8getItemsEj")] - internal static extern global::System.IntPtr GetItems_0(global::System.IntPtr instance, uint i); + internal static new global::CppSharp.Parser.AST.Namespace __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Namespace(native.ToPointer(), skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration8addItemsERPNS2_4ItemE")] - internal static extern void AddItems_0(global::System.IntPtr instance, global::System.IntPtr s); + internal static global::CppSharp.Parser.AST.Namespace __CreateInstance(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + { + return new Namespace(native, skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration10clearItemsEv")] - internal static extern void ClearItems_0(global::System.IntPtr instance); + private static void* __CopyValue(global::CppSharp.Parser.AST.Namespace.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + global::CppSharp.Parser.AST.Namespace.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private Namespace(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected Namespace(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public Namespace() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration13getItemsCountEv")] - internal static extern uint GetItemsCount_0(global::System.IntPtr instance); + public Namespace(global::CppSharp.Parser.AST.Namespace _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - [Flags] - public enum EnumModifiers + public override void Dispose(bool disposing) { - Anonymous = 1, - Scoped = 2, - Flags = 4 + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public unsafe partial class Item : global::CppSharp.Parser.AST.Declaration, IDisposable + public bool IsInline { - [StructLayout(LayoutKind.Explicit, Size = 112)] - public new partial struct __Internal + get { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(16)] - public int lineNumberStart; - - [FieldOffset(20)] - public int lineNumberEnd; - - [FieldOffset(24)] - public global::Std.__1.BasicString.__Internal Name; - - [FieldOffset(36)] - public global::Std.__1.BasicString.__Internal USR; - - [FieldOffset(48)] - public global::Std.__1.BasicString.__Internal DebugText; - - [FieldOffset(60)] - public byte isIncomplete; - - [FieldOffset(61)] - public byte isDependent; - - [FieldOffset(62)] - public byte isImplicit; + return ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline != 0; + } - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; + set + { + ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline = (byte) (value ? 1 : 0); + } + } + } - [FieldOffset(68)] - public uint definitionOrder; + public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Template, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 120)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; - [FieldOffset(72)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; - [FieldOffset(84)] - public global::System.IntPtr originalPtr; + [FieldOffset(8)] + public global::System.IntPtr _namespace; - [FieldOffset(88)] - public global::System.IntPtr comment; + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - [FieldOffset(92)] - public global::Std.__1.BasicString.__Internal Expression; + [FieldOffset(16)] + public int lineNumberStart; - [FieldOffset(104)] - public ulong value; + [FieldOffset(20)] + public int lineNumberEnd; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(24)] + public global::Std.__1.BasicString.__Internal Name; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemC2ERKS3_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(36)] + public global::Std.__1.BasicString.__Internal USR; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + [FieldOffset(48)] + public global::Std.__1.BasicString.__Internal DebugText; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4Item13getExpressionEv")] - internal static extern global::System.IntPtr Expression_0(global::System.IntPtr instance); + [FieldOffset(60)] + public byte isIncomplete; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4Item13setExpressionEPKc")] - internal static extern void SetExpression_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - } + [FieldOffset(61)] + public byte isDependent; - internal static new global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new Item(native.ToPointer(), skipVTables); - } + [FieldOffset(62)] + public byte isImplicit; - internal static global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) - { - return new Item(native, skipVTables); - } + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; - private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); - global::CppSharp.Parser.AST.Enumeration.Item.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [FieldOffset(68)] + public uint definitionOrder; - private Item(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [FieldOffset(72)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; - protected Item(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; - public Item() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(96)] + public global::System.IntPtr originalPtr; - public Item(global::CppSharp.Parser.AST.Enumeration.Item _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(100)] + public global::System.IntPtr comment; - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } + [FieldOffset(104)] + public global::System.IntPtr TemplatedDecl; - public ulong Value - { - get - { - return ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value; - } + [FieldOffset(108)] + internal global::Std.__1.Vector.__Internal Parameters; - set - { - ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value = value; - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - public string Expression - { - get - { - var __ret = __Internal.Expression_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - set - { - __Internal.SetExpression_0((__Instance + __PointerAdjustment), value); - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Enumeration(native.ToPointer(), skipVTables); + return new TypeAliasTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) { - return new Enumeration(native, skipVTables); + return new TypeAliasTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); - global::CppSharp.Parser.AST.Enumeration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); + global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Enumeration(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) + private TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Enumeration(void* native, bool skipVTables = false) + protected TypeAliasTemplate(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -7988,19 +8607,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Enumeration() + public TypeAliasTemplate() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Enumeration(global::CppSharp.Parser.AST.Enumeration _0) + public TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8018,93 +8637,11 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - - public global::CppSharp.Parser.AST.Enumeration.Item GetItems(uint i) - { - var __ret = __Internal.GetItems_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Enumeration.Item __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Enumeration.Item) global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Enumeration.Item.__CreateInstance(__ret); - return __result0; - } - - public void AddItems(global::CppSharp.Parser.AST.Enumeration.Item s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddItems_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearItems() - { - __Internal.ClearItems_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.Enumeration.EnumModifiers Modifiers - { - get - { - return ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers; - } - - set - { - ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers = value; - } - } - - public global::CppSharp.Parser.AST.Type Type - { - get - { - global::CppSharp.Parser.AST.Type __result0; - if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type)) - __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type]; - else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public global::CppSharp.Parser.AST.BuiltinType BuiltinType - { - get - { - global::CppSharp.Parser.AST.BuiltinType __result0; - if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType)) - __result0 = (global::CppSharp.Parser.AST.BuiltinType) global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType]; - else __result0 = global::CppSharp.Parser.AST.BuiltinType.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public uint ItemsCount - { - get - { - var __ret = __Internal.GetItemsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } } - public unsafe partial class Variable : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class ClassTemplate : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 112)] + [StructLayout(LayoutKind.Explicit, Size = 132)] public new partial struct __Internal { [FieldOffset(0)] @@ -8153,68 +8690,84 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] public global::System.IntPtr originalPtr; - [FieldOffset(88)] + [FieldOffset(100)] public global::System.IntPtr comment; - [FieldOffset(92)] - public global::Std.__1.BasicString.__Internal Mangled; - [FieldOffset(104)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + public global::System.IntPtr TemplatedDecl; + + [FieldOffset(108)] + internal global::Std.__1.Vector.__Internal Parameters; + + [FieldOffset(120)] + internal global::Std.__1.Vector.__Internal Specializations; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8VariableC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8VariableC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8VariableD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Variable10getMangledEv")] - internal static extern global::System.IntPtr Mangled_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate18getSpecializationsEj")] + internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Variable10setMangledEPKc")] - internal static extern void SetMangled_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate18addSpecializationsERPNS1_27ClassTemplateSpecializationE")] + internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate20clearSpecializationsEv")] + internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate23getSpecializationsCountEv")] + internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Variable __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Variable(native.ToPointer(), skipVTables); + return new ClassTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Variable __CreateInstance(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) { - return new Variable(native, skipVTables); + return new ClassTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Variable.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); - global::CppSharp.Parser.AST.Variable.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); + global::CppSharp.Parser.AST.ClassTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Variable(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) + private ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Variable(void* native, bool skipVTables = false) + protected ClassTemplate(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -8223,19 +8776,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Variable() + public ClassTemplate() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Variable(global::CppSharp.Parser.AST.Variable _0) + public ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8254,191 +8807,245 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public global::CppSharp.Parser.AST.ClassTemplateSpecialization GetSpecializations(uint i) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType); - } + var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.ClassTemplateSpecialization __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.ClassTemplateSpecialization) global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.ClassTemplateSpecialization.__CreateInstance(__ret); + return __result0; + } - set - { - ((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + public void AddSpecializations(global::CppSharp.Parser.AST.ClassTemplateSpecialization s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); } - public string Mangled + public void ClearSpecializations() { - get - { - var __ret = __Internal.Mangled_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } + __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); + } - set + public uint SpecializationsCount + { + get { - __Internal.SetMangled_0((__Instance + __PointerAdjustment), value); + var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class BaseClassSpecifier : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 16)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public unsafe partial class FunctionTemplate : global::CppSharp.Parser.AST.Template, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 132)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; + + [FieldOffset(8)] + public global::System.IntPtr _namespace; + + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(16)] + public int lineNumberStart; + + [FieldOffset(20)] + public int lineNumberEnd; + + [FieldOffset(24)] + public global::Std.__1.BasicString.__Internal Name; + + [FieldOffset(36)] + public global::Std.__1.BasicString.__Internal USR; + + [FieldOffset(48)] + public global::Std.__1.BasicString.__Internal DebugText; + + [FieldOffset(60)] + public byte isIncomplete; + + [FieldOffset(61)] + public byte isDependent; + + [FieldOffset(62)] + public byte isImplicit; + + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(68)] + public uint definitionOrder; + + [FieldOffset(72)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; + + [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] + public global::System.IntPtr originalPtr; + + [FieldOffset(100)] + public global::System.IntPtr comment; - [FieldOffset(4)] - public byte isVirtual; + [FieldOffset(104)] + public global::System.IntPtr TemplatedDecl; - [FieldOffset(8)] - public global::System.IntPtr type; + [FieldOffset(108)] + internal global::Std.__1.Vector.__Internal Parameters; - [FieldOffset(12)] - public int offset; + [FieldOffset(120)] + internal global::Std.__1.Vector.__Internal Specializations; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18BaseClassSpecifierC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18BaseClassSpecifierC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate18getSpecializationsEj")] + internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate18addSpecializationsERPNS1_30FunctionTemplateSpecializationE")] + internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); - internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate20clearSpecializationsEv")] + internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate23getSpecializationsCountEv")] + internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new BaseClassSpecifier(native.ToPointer(), skipVTables); + return new FunctionTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) { - return new BaseClassSpecifier(native, skipVTables); + return new FunctionTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); - *(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) ret = native; + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); + global::CppSharp.Parser.AST.FunctionTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) + private FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected BaseClassSpecifier(void* native, bool skipVTables = false) + protected FunctionTemplate(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public BaseClassSpecifier() + public FunctionTemplate() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier _0) + public FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.BaseClassSpecifier __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.AccessSpecifier Access + public global::CppSharp.Parser.AST.FunctionTemplateSpecialization GetSpecializations(uint i) { - get - { - return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access = value; - } + var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.FunctionTemplateSpecialization __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.FunctionTemplateSpecialization) global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__CreateInstance(__ret); + return __result0; } - public bool IsVirtual + public void AddSpecializations(global::CppSharp.Parser.AST.FunctionTemplateSpecialization s) { - get - { - return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual != 0; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.Type Type + public void ClearSpecializations() { - get - { - global::CppSharp.Parser.AST.Type __result0; - if (((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type)) - __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type]; - else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); } - public int Offset + public uint SpecializationsCount { get { - return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset = value; + var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class Field : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class Variable : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 112)] + [StructLayout(LayoutKind.Explicit, Size = 124)] public new partial struct __Internal { [FieldOffset(0)] @@ -8487,64 +9094,71 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] - public global::System.IntPtr originalPtr; + internal global::Std.__1.Vector.__Internal Redeclarations; - [FieldOffset(88)] - public global::System.IntPtr comment; - - [FieldOffset(92)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(96)] + public global::System.IntPtr originalPtr; [FieldOffset(100)] - public global::System.IntPtr _class; + public global::System.IntPtr comment; [FieldOffset(104)] - public byte isBitField; + public global::Std.__1.BasicString.__Internal Mangled; - [FieldOffset(108)] - public uint bitWidth; + [FieldOffset(116)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5FieldC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST8VariableC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5FieldC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST8VariableC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5FieldD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST8VariableD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Variable10getMangledEv")] + internal static extern global::System.IntPtr Mangled_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Variable10setMangledEPKc")] + internal static extern void SetMangled_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - internal static new global::CppSharp.Parser.AST.Field __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Variable __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Field(native.ToPointer(), skipVTables); + return new Variable(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Field __CreateInstance(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Variable __CreateInstance(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) { - return new Field(native, skipVTables); + return new Variable(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Field.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Variable.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); - global::CppSharp.Parser.AST.Field.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); + global::CppSharp.Parser.AST.Variable.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Field(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) + private Variable(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Field(void* native, bool skipVTables = false) + protected Variable(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -8553,19 +9167,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Field() + public Variable() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Field(global::CppSharp.Parser.AST.Field _0) + public Variable(global::CppSharp.Parser.AST.Variable _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8576,75 +9190,45 @@ namespace CppSharp public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.QualifiedType QualifiedType - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.Class Class - { - get - { - global::CppSharp.Parser.AST.Class __result0; - if (((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public bool IsBitField + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField != 0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public uint BitWidth + public string Mangled { get { - return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth; + var __ret = __Internal.Mangled_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth = value; + __Internal.SetMangled_0((__Instance + __PointerAdjustment), value); } } } - public unsafe partial class AccessSpecifierDecl : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class Friend : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 92)] + [StructLayout(LayoutKind.Explicit, Size = 108)] public new partial struct __Internal { [FieldOffset(0)] @@ -8693,52 +9277,58 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] public global::System.IntPtr originalPtr; - [FieldOffset(88)] + [FieldOffset(100)] public global::System.IntPtr comment; + [FieldOffset(104)] + public global::System.IntPtr declaration; + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST6FriendC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST6FriendC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST6FriendD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Friend __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new AccessSpecifierDecl(native.ToPointer(), skipVTables); + return new Friend(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Friend __CreateInstance(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) { - return new AccessSpecifierDecl(native, skipVTables); + return new Friend(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Friend.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); - global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); + global::CppSharp.Parser.AST.Friend.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) + private Friend(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected AccessSpecifierDecl(void* native, bool skipVTables = false) + protected Friend(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -8747,19 +9337,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public AccessSpecifierDecl() + public Friend() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl _0) + public Friend(global::CppSharp.Parser.AST.Friend _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8777,263 +9367,222 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + + public global::CppSharp.Parser.AST.Declaration Declaration + { + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } } - public unsafe partial class Class : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + public unsafe partial class Statement : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 280)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 20)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.StatementClass _class; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::System.IntPtr decl; [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(16)] - public int lineNumberStart; - - [FieldOffset(20)] - public int lineNumberEnd; - - [FieldOffset(24)] - public global::Std.__1.BasicString.__Internal Name; - - [FieldOffset(36)] - public global::Std.__1.BasicString.__Internal USR; - - [FieldOffset(48)] - public global::Std.__1.BasicString.__Internal DebugText; - - [FieldOffset(60)] - public byte isIncomplete; - - [FieldOffset(61)] - public byte isDependent; - - [FieldOffset(62)] - public byte isImplicit; - - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(68)] - public uint definitionOrder; - - [FieldOffset(72)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; - - [FieldOffset(84)] - public global::System.IntPtr originalPtr; - - [FieldOffset(88)] - public global::System.IntPtr comment; - - [FieldOffset(92)] - internal global::Std.__1.Vector.__Internal Namespaces; - - [FieldOffset(104)] - internal global::Std.__1.Vector.__Internal Enums; - - [FieldOffset(116)] - internal global::Std.__1.Vector.__Internal Functions; - - [FieldOffset(128)] - internal global::Std.__1.Vector.__Internal Classes; - - [FieldOffset(140)] - internal global::Std.__1.Vector.__Internal Templates; - - [FieldOffset(152)] - internal global::Std.__1.Vector.__Internal Typedefs; - - [FieldOffset(164)] - internal global::Std.__1.Vector.__Internal TypeAliases; - - [FieldOffset(176)] - internal global::Std.__1.Vector.__Internal Variables; - - [FieldOffset(188)] - internal global::Std.__1.Vector.__Internal Friends; - - [FieldOffset(200)] - internal global::Std.__1.Map.__Internal anonymous; - - [FieldOffset(212)] - public byte isAnonymous; - - [FieldOffset(216)] - internal global::Std.__1.Vector.__Internal Bases; - - [FieldOffset(228)] - internal global::Std.__1.Vector.__Internal Fields; - - [FieldOffset(240)] - internal global::Std.__1.Vector.__Internal Methods; - - [FieldOffset(252)] - internal global::Std.__1.Vector.__Internal Specifiers; - - [FieldOffset(264)] - public byte isPOD; - - [FieldOffset(265)] - public byte isAbstract; - - [FieldOffset(266)] - public byte isUnion; - - [FieldOffset(267)] - public byte isDynamic; - - [FieldOffset(268)] - public byte isPolymorphic; - - [FieldOffset(269)] - public byte hasNonTrivialDefaultConstructor; - - [FieldOffset(270)] - public byte hasNonTrivialCopyConstructor; - - [FieldOffset(271)] - public byte hasNonTrivialDestructor; - - [FieldOffset(272)] - public byte isExternCContext; - - [FieldOffset(273)] - public byte isInjected; - - [FieldOffset(276)] - public global::System.IntPtr layout; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5ClassC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + public global::Std.__1.BasicString.__Internal String; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5ClassC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST9StatementC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5ClassD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9StatementD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class8getBasesEj")] - internal static extern global::System.IntPtr GetBases_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST9Statement9getStringEv")] + internal static extern global::System.IntPtr String_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class8addBasesERPNS1_18BaseClassSpecifierE")] - internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST9Statement9setStringEPKc")] + internal static extern void SetString_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + } + + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Statement(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + { + return new Statement(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.Statement.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); + global::CppSharp.Parser.AST.Statement.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private Statement(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected Statement(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class10clearBasesEv")] - internal static extern void ClearBases_0(global::System.IntPtr instance); + public Statement(global::CppSharp.Parser.AST.Statement _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class9getFieldsEj")] - internal static extern global::System.IntPtr GetFields_0(global::System.IntPtr instance, uint i); + public void Dispose() + { + Dispose(disposing: true); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class9addFieldsERPNS1_5FieldE")] - internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Statement __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class11clearFieldsEv")] - internal static extern void ClearFields_0(global::System.IntPtr instance); + public global::CppSharp.Parser.AST.StatementClass Class + { + get + { + return ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class10getMethodsEj")] - internal static extern global::System.IntPtr GetMethods_0(global::System.IntPtr instance, uint i); + set + { + ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class10addMethodsERPNS1_6MethodE")] - internal static extern void AddMethods_0(global::System.IntPtr instance, global::System.IntPtr s); + public global::CppSharp.Parser.AST.Declaration Decl + { + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl); + return __result0; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class12clearMethodsEv")] - internal static extern void ClearMethods_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class13getSpecifiersEj")] - internal static extern global::System.IntPtr GetSpecifiers_0(global::System.IntPtr instance, uint i); + public string String + { + get + { + var __ret = __Internal.String_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class13addSpecifiersERPNS1_19AccessSpecifierDeclE")] - internal static extern void AddSpecifiers_0(global::System.IntPtr instance, global::System.IntPtr s); + set + { + __Internal.SetString_0((__Instance + __PointerAdjustment), value); + } + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class15clearSpecifiersEv")] - internal static extern void ClearSpecifiers_0(global::System.IntPtr instance); + public unsafe partial class Expression : global::CppSharp.Parser.AST.Statement, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 20)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class13getBasesCountEv")] - internal static extern uint GetBasesCount_0(global::System.IntPtr instance); + [FieldOffset(4)] + public global::System.IntPtr decl; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class14getFieldsCountEv")] - internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); + [FieldOffset(8)] + public global::Std.__1.BasicString.__Internal String; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class15getMethodsCountEv")] - internal static extern uint GetMethodsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST10ExpressionC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class18getSpecifiersCountEv")] - internal static extern uint GetSpecifiersCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST10ExpressionD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Class __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Expression __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Class(native.ToPointer(), skipVTables); + return new Expression(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Class __CreateInstance(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Expression __CreateInstance(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) { - return new Class(native, skipVTables); + return new Expression(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Class.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Expression.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); - global::CppSharp.Parser.AST.Class.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); + global::CppSharp.Parser.AST.Expression.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Class(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) + private Expression(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Class(void* native, bool skipVTables = false) + protected Expression(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -9042,19 +9591,10 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Class() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public Class(global::CppSharp.Parser.AST.Class _0) + public Expression(global::CppSharp.Parser.AST.Expression _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -9065,423 +9605,375 @@ namespace CppSharp public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Declaration __dummy; + global::CppSharp.Parser.AST.Statement __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + } - public global::CppSharp.Parser.AST.BaseClassSpecifier GetBases(uint i) + public unsafe partial class BinaryOperator : global::CppSharp.Parser.AST.Expression, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 40)] + public new partial struct __Internal { - var __ret = __Internal.GetBases_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.BaseClassSpecifier __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.BaseClassSpecifier) global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.BaseClassSpecifier.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; - public void AddBases(global::CppSharp.Parser.AST.BaseClassSpecifier s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(4)] + public global::System.IntPtr decl; - public void ClearBases() - { - __Internal.ClearBases_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(8)] + public global::Std.__1.BasicString.__Internal String; - public global::CppSharp.Parser.AST.Field GetFields(uint i) - { - var __ret = __Internal.GetFields_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Field __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Field.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Field) global::CppSharp.Parser.AST.Field.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Field.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(20)] + public global::System.IntPtr LHS; - public void AddFields(global::CppSharp.Parser.AST.Field s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(24)] + public global::System.IntPtr RHS; - public void ClearFields() - { - __Internal.ClearFields_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(28)] + public global::Std.__1.BasicString.__Internal OpcodeStr; - public global::CppSharp.Parser.AST.Method GetMethods(uint i) - { - var __ret = __Internal.GetMethods_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Method __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Method.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Method) global::CppSharp.Parser.AST.Method.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Method.__CreateInstance(__ret); - return __result0; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperatorC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperatorD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperator12getOpcodeStrEv")] + internal static extern global::System.IntPtr OpcodeStr_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperator12setOpcodeStrEPKc")] + internal static extern void SetOpcodeStr_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - public void AddMethods(global::CppSharp.Parser.AST.Method s) + internal static new global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddMethods_0((__Instance + __PointerAdjustment), __arg0); + return new BinaryOperator(native.ToPointer(), skipVTables); } - public void ClearMethods() + internal static global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) { - __Internal.ClearMethods_0((__Instance + __PointerAdjustment)); + return new BinaryOperator(native, skipVTables); } - public global::CppSharp.Parser.AST.AccessSpecifierDecl GetSpecifiers(uint i) + private static void* __CopyValue(global::CppSharp.Parser.AST.BinaryOperator.__Internal native) { - var __ret = __Internal.GetSpecifiers_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.AccessSpecifierDecl __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.AccessSpecifierDecl) global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.AccessSpecifierDecl.__CreateInstance(__ret); - return __result0; + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); + global::CppSharp.Parser.AST.BinaryOperator.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public void AddSpecifiers(global::CppSharp.Parser.AST.AccessSpecifierDecl s) + private BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecifiers_0((__Instance + __PointerAdjustment), __arg0); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public void ClearSpecifiers() + protected BinaryOperator(void* native, bool skipVTables = false) + : base((void*) null) { - __Internal.ClearSpecifiers_0((__Instance + __PointerAdjustment)); + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public bool IsPOD + public BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator _0) + : this((void*) null) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD = (byte) (value ? 1 : 0); - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public bool IsAbstract + public override void Dispose(bool disposing) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract = (byte) (value ? 1 : 0); - } + global::CppSharp.Parser.AST.Statement __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public bool IsUnion + public global::CppSharp.Parser.AST.Expression LHS { get { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion != 0; + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS); + return __result0; } set { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsDynamic + public global::CppSharp.Parser.AST.Expression RHS { get { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic != 0; + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS); + return __result0; } set { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsPolymorphic + public string OpcodeStr { get { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic != 0; + var __ret = __Internal.OpcodeStr_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic = (byte) (value ? 1 : 0); + __Internal.SetOpcodeStr_0((__Instance + __PointerAdjustment), value); } } + } - public bool HasNonTrivialDefaultConstructor + public unsafe partial class CallExpr : global::CppSharp.Parser.AST.Expression, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 32)] + public new partial struct __Internal { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor != 0; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor = (byte) (value ? 1 : 0); - } - } + [FieldOffset(4)] + public global::System.IntPtr decl; - public bool HasNonTrivialCopyConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor != 0; - } + [FieldOffset(8)] + public global::Std.__1.BasicString.__Internal String; - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor = (byte) (value ? 1 : 0); - } + [FieldOffset(20)] + internal global::Std.__1.Vector.__Internal Arguments; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExprC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExprD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr12getArgumentsEj")] + internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr12addArgumentsERPNS1_10ExpressionE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - public bool HasNonTrivialDestructor + internal static new global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor = (byte) (value ? 1 : 0); - } + return new CallExpr(native.ToPointer(), skipVTables); } - public bool IsExternCContext + internal static global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext != 0; - } + return new CallExpr(native, skipVTables); + } - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext = (byte) (value ? 1 : 0); - } + private static void* __CopyValue(global::CppSharp.Parser.AST.CallExpr.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); + global::CppSharp.Parser.AST.CallExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public bool IsInjected + private CallExpr(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected != 0; - } + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected = (byte) (value ? 1 : 0); - } + protected CallExpr(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public global::CppSharp.Parser.AST.ClassLayout Layout + public CallExpr(global::CppSharp.Parser.AST.CallExpr _0) + : this((void*) null) { - get - { - global::CppSharp.Parser.AST.ClassLayout __result0; - if (((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout)) - __result0 = (global::CppSharp.Parser.AST.ClassLayout) global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap[((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout]; - else __result0 = global::CppSharp.Parser.AST.ClassLayout.__CreateInstance(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout); - return __result0; - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Statement __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public uint BasesCount + public global::CppSharp.Parser.AST.Expression GetArguments(uint i) { - get - { - var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Expression __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); + return __result0; } - public uint FieldsCount + public void AddArguments(global::CppSharp.Parser.AST.Expression s) { - get - { - var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); } - public uint MethodsCount + public void ClearArguments() { - get - { - var __ret = __Internal.GetMethodsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint SpecifiersCount + public uint ArgumentsCount { get { - var __ret = __Internal.GetSpecifiersCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class Template : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class CXXConstructExpr : global::CppSharp.Parser.AST.Expression, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 108)] + [StructLayout(LayoutKind.Explicit, Size = 32)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.StatementClass _class; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::System.IntPtr decl; [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(16)] - public int lineNumberStart; + public global::Std.__1.BasicString.__Internal String; [FieldOffset(20)] - public int lineNumberEnd; - - [FieldOffset(24)] - public global::Std.__1.BasicString.__Internal Name; - - [FieldOffset(36)] - public global::Std.__1.BasicString.__Internal USR; - - [FieldOffset(48)] - public global::Std.__1.BasicString.__Internal DebugText; - - [FieldOffset(60)] - public byte isIncomplete; - - [FieldOffset(61)] - public byte isDependent; - - [FieldOffset(62)] - public byte isImplicit; - - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(68)] - public uint definitionOrder; - - [FieldOffset(72)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; - - [FieldOffset(84)] - public global::System.IntPtr originalPtr; - - [FieldOffset(88)] - public global::System.IntPtr comment; - - [FieldOffset(92)] - public global::System.IntPtr TemplatedDecl; - - [FieldOffset(96)] - internal global::Std.__1.Vector.__Internal Parameters; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2Ev")] - internal static extern void ctor_1(global::System.IntPtr instance); + internal global::Std.__1.Vector.__Internal Arguments; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2ERKS2_")] - internal static extern void cctor_3(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExprC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExprD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Template13getParametersEj")] - internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr12getArgumentsEj")] + internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Template13addParametersERPNS1_11DeclarationE")] - internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr12addArgumentsERPNS1_10ExpressionE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Template15clearParametersEv")] - internal static extern void ClearParameters_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Template18getParametersCountEv")] - internal static extern uint GetParametersCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Template __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Template(native.ToPointer(), skipVTables); + return new CXXConstructExpr(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Template __CreateInstance(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) { - return new Template(native, skipVTables); + return new CXXConstructExpr(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Template.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); - global::CppSharp.Parser.AST.Template.__Internal.cctor_3(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); + global::CppSharp.Parser.AST.CXXConstructExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Template(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) + private CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Template(void* native, bool skipVTables = false) + protected CXXConstructExpr(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -9490,39 +9982,21 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Template(global::CppSharp.Parser.AST.DeclarationKind kind) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); - } - - public Template() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_1((__Instance + __PointerAdjustment)); - } - - public Template(global::CppSharp.Parser.AST.Template _0) + public CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_3((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Declaration __dummy; + global::CppSharp.Parser.AST.Statement __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -9530,187 +10004,143 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Declaration GetParameters(uint i) + public global::CppSharp.Parser.AST.Expression GetArguments(uint i) { - var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Declaration __result0; + var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Expression __result0; if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(__ret); + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); return __result0; } - public void AddParameters(global::CppSharp.Parser.AST.Declaration s) + public void AddArguments(global::CppSharp.Parser.AST.Expression s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearParameters() - { - __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); - } - - public static implicit operator global::CppSharp.Parser.AST.Template(global::CppSharp.Parser.AST.DeclarationKind kind) - { - return new global::CppSharp.Parser.AST.Template(kind); + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.Declaration TemplatedDecl + public void ClearArguments() { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint ParametersCount + public uint ArgumentsCount { get { - var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class FunctionTemplateSpecialization : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 108)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 24)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(16)] - public int lineNumberStart; - - [FieldOffset(20)] - public int lineNumberEnd; - - [FieldOffset(24)] - public global::Std.__1.BasicString.__Internal Name; - - [FieldOffset(36)] - public global::Std.__1.BasicString.__Internal USR; - - [FieldOffset(48)] - public global::Std.__1.BasicString.__Internal DebugText; - - [FieldOffset(60)] - public byte isIncomplete; - - [FieldOffset(61)] - public byte isDependent; - - [FieldOffset(62)] - public byte isImplicit; - - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(68)] - public uint definitionOrder; - - [FieldOffset(72)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; - - [FieldOffset(84)] - public global::System.IntPtr originalPtr; + public global::System.IntPtr _template; - [FieldOffset(88)] - public global::System.IntPtr comment; + [FieldOffset(4)] + internal global::Std.__1.Vector.__Internal Arguments; - [FieldOffset(92)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(16)] + public global::System.IntPtr specializedFunction; - [FieldOffset(96)] - internal global::Std.__1.Vector.__Internal Parameters; + [FieldOffset(20)] + public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization12getArgumentsEj")] + internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypeAliasTemplate(native.ToPointer(), skipVTables); + return new FunctionTemplateSpecialization(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) { - return new TypeAliasTemplate(native, skipVTables); + return new FunctionTemplateSpecialization(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); - global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); + global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) + private FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypeAliasTemplate(void* native, bool skipVTables = false) - : base((void*) null) + protected FunctionTemplateSpecialization(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public TypeAliasTemplate() - : this((void*) null) + public FunctionTemplateSpecialization() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate _0) - : this((void*) null) + public FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -9719,18 +10149,101 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.FunctionTemplateSpecialization __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + + public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) + { + var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); + __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); + } + + public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearArguments() + { + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.FunctionTemplate Template + { + get + { + global::CppSharp.Parser.AST.FunctionTemplate __result0; + if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template)) + __result0 = (global::CppSharp.Parser.AST.FunctionTemplate) global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template]; + else __result0 = global::CppSharp.Parser.AST.FunctionTemplate.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public global::CppSharp.Parser.AST.Function SpecializedFunction + { + get + { + global::CppSharp.Parser.AST.Function __result0; + if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction)) + __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction]; + else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public global::CppSharp.Parser.AST.TemplateSpecializationKind SpecializationKind + { + get + { + return ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; + } + } + + public uint ArgumentsCount + { + get + { + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } } - public unsafe partial class TemplateParameter : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class AccessSpecifierDecl : global::CppSharp.Parser.AST.Declaration, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 104)] public new partial struct __Internal @@ -9781,61 +10294,55 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] - public global::System.IntPtr originalPtr; - - [FieldOffset(88)] - public global::System.IntPtr comment; - - [FieldOffset(92)] - public uint depth; + internal global::Std.__1.Vector.__Internal Redeclarations; [FieldOffset(96)] - public uint index; + public global::System.IntPtr originalPtr; [FieldOffset(100)] - public byte isParameterPack; + public global::System.IntPtr comment; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateParameter(native.ToPointer(), skipVTables); + return new AccessSpecifierDecl(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) { - return new TemplateParameter(native, skipVTables); + return new AccessSpecifierDecl(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); - global::CppSharp.Parser.AST.TemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) + private AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateParameter(void* native, bool skipVTables = false) + protected AccessSpecifierDecl(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -9844,85 +10351,41 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); - } - - public TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter _0) + public AccessSpecifierDecl() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public static implicit operator global::CppSharp.Parser.AST.TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) - { - return new global::CppSharp.Parser.AST.TemplateParameter(kind); - } - - public uint Depth - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth = value; - } - } - - public uint Index - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index = value; - } + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public bool IsParameterPack + public AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl _0) + : this((void*) null) { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack != 0; - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - set - { - ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); - } + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } } - public unsafe partial class TemplateTemplateParameter : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 112)] + [StructLayout(LayoutKind.Explicit, Size = 224)] public new partial struct __Internal { [FieldOffset(0)] @@ -9971,67 +10434,142 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] public global::System.IntPtr originalPtr; - [FieldOffset(88)] + [FieldOffset(100)] public global::System.IntPtr comment; - [FieldOffset(92)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(104)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(96)] + [FieldOffset(112)] + public byte isReturnIndirect; + + [FieldOffset(113)] + public byte hasThisReturn; + + [FieldOffset(114)] + public byte isConstExpr; + + [FieldOffset(115)] + public byte isVariadic; + + [FieldOffset(116)] + public byte isInline; + + [FieldOffset(117)] + public byte isPure; + + [FieldOffset(118)] + public byte isDeleted; + + [FieldOffset(120)] + public global::CppSharp.Parser.AST.FriendKind friendKind; + + [FieldOffset(124)] + public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; + + [FieldOffset(128)] + public global::Std.__1.BasicString.__Internal Mangled; + + [FieldOffset(140)] + public global::Std.__1.BasicString.__Internal Signature; + + [FieldOffset(152)] + public global::Std.__1.BasicString.__Internal Body; + + [FieldOffset(164)] + public global::CppSharp.Parser.AST.CallingConvention callingConvention; + + [FieldOffset(168)] internal global::Std.__1.Vector.__Internal Parameters; - [FieldOffset(108)] - public byte isParameterPack; + [FieldOffset(180)] + public global::System.IntPtr specializationInfo; - [FieldOffset(109)] - public byte isPackExpansion; + [FieldOffset(184)] + public global::System.IntPtr instantiatedFrom; - [FieldOffset(110)] - public byte isExpandedParameterPack; + [FieldOffset(188)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(196)] + public byte isVirtual; + + [FieldOffset(197)] + public byte isStatic; + + [FieldOffset(198)] + public byte isConst; + + [FieldOffset(199)] + public byte isExplicit; + + [FieldOffset(200)] + public byte isOverride; + + [FieldOffset(204)] + public global::CppSharp.Parser.AST.CXXMethodKind methodKind; + + [FieldOffset(208)] + public byte isDefaultConstructor; + + [FieldOffset(209)] + public byte isCopyConstructor; + + [FieldOffset(210)] + public byte isMoveConstructor; + + [FieldOffset(212)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; + + [FieldOffset(220)] + public global::CppSharp.Parser.AST.RefQualifierKind refQualifier; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST6MethodD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateTemplateParameter(native.ToPointer(), skipVTables); + return new Method(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Method __CreateInstance(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) { - return new TemplateTemplateParameter(native, skipVTables); + return new Method(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Method.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); - global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); + global::CppSharp.Parser.AST.Method.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) + private Method(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateTemplateParameter(void* native, bool skipVTables = false) + protected Method(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10040,19 +10578,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateTemplateParameter() + public Method() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter _0) + public Method(global::CppSharp.Parser.AST.Method _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10071,426 +10609,307 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public bool IsParameterPack + public bool IsVirtual { get { - return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack != 0; + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual != 0; } set { - ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); } } - public bool IsPackExpansion + public bool IsStatic { get { - return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic != 0; } set { - ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic = (byte) (value ? 1 : 0); } } - public bool IsExpandedParameterPack + public bool IsConst { get { - return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst != 0; } set { - ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst = (byte) (value ? 1 : 0); } } - } - public unsafe partial class TypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 112)] - public new partial struct __Internal + public bool IsExplicit { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(16)] - public int lineNumberStart; - - [FieldOffset(20)] - public int lineNumberEnd; - - [FieldOffset(24)] - public global::Std.__1.BasicString.__Internal Name; - - [FieldOffset(36)] - public global::Std.__1.BasicString.__Internal USR; - - [FieldOffset(48)] - public global::Std.__1.BasicString.__Internal DebugText; - - [FieldOffset(60)] - public byte isIncomplete; - - [FieldOffset(61)] - public byte isDependent; - - [FieldOffset(62)] - public byte isImplicit; - - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(68)] - public uint definitionOrder; - - [FieldOffset(72)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; - - [FieldOffset(84)] - public global::System.IntPtr originalPtr; - - [FieldOffset(88)] - public global::System.IntPtr comment; - - [FieldOffset(92)] - public uint depth; - - [FieldOffset(96)] - public uint index; - - [FieldOffset(100)] - public byte isParameterPack; - - [FieldOffset(104)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal defaultArgument; + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit != 0; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit = (byte) (value ? 1 : 0); + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public bool IsOverride + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride != 0; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride = (byte) (value ? 1 : 0); + } } - internal static new global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public global::CppSharp.Parser.AST.CXXMethodKind MethodKind { - return new TypeTemplateParameter(native.ToPointer(), skipVTables); - } + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind; + } - internal static global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) - { - return new TypeTemplateParameter(native, skipVTables); + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind = value; + } } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native) + public bool IsDefaultConstructor { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); - global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor != 0; + } - private TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor = (byte) (value ? 1 : 0); + } } - protected TypeTemplateParameter(void* native, bool skipVTables = false) - : base((void*) null) + public bool IsCopyConstructor { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor != 0; + } - public TypeTemplateParameter() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor = (byte) (value ? 1 : 0); + } } - public TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter _0) - : this((void*) null) + public bool IsMoveConstructor { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor = (byte) (value ? 1 : 0); + } } - public override void Dispose(bool disposing) + public global::CppSharp.Parser.AST.QualifiedType ConversionType { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType); + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } - public global::CppSharp.Parser.AST.QualifiedType DefaultArgument + public global::CppSharp.Parser.AST.RefQualifierKind RefQualifier { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument); + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier; } set { - ((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value; } } } - public unsafe partial class NonTypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable + public unsafe partial class BaseClassSpecifier : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 116)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 16)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public byte isVirtual; [FieldOffset(8)] - public global::System.IntPtr _namespace; + public global::System.IntPtr type; [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(16)] - public int lineNumberStart; - - [FieldOffset(20)] - public int lineNumberEnd; - - [FieldOffset(24)] - public global::Std.__1.BasicString.__Internal Name; - - [FieldOffset(36)] - public global::Std.__1.BasicString.__Internal USR; - - [FieldOffset(48)] - public global::Std.__1.BasicString.__Internal DebugText; - - [FieldOffset(60)] - public byte isIncomplete; - - [FieldOffset(61)] - public byte isDependent; - - [FieldOffset(62)] - public byte isImplicit; - - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(68)] - public uint definitionOrder; - - [FieldOffset(72)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; - - [FieldOffset(84)] - public global::System.IntPtr originalPtr; - - [FieldOffset(88)] - public global::System.IntPtr comment; - - [FieldOffset(92)] - public uint depth; - - [FieldOffset(96)] - public uint index; - - [FieldOffset(100)] - public byte isParameterPack; - - [FieldOffset(104)] - public global::System.IntPtr defaultArgument; - - [FieldOffset(108)] - public uint position; - - [FieldOffset(112)] - public byte isPackExpansion; - - [FieldOffset(113)] - public byte isExpandedParameterPack; + public int offset; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST18BaseClassSpecifierC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST18BaseClassSpecifierC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new NonTypeTemplateParameter(native.ToPointer(), skipVTables); + return new BaseClassSpecifier(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) { - return new NonTypeTemplateParameter(native, skipVTables); + return new BaseClassSpecifier(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); - global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); + *(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) ret = native; return ret.ToPointer(); } - private NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) + private BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected NonTypeTemplateParameter(void* native, bool skipVTables = false) - : base((void*) null) + protected BaseClassSpecifier(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public NonTypeTemplateParameter() - : this((void*) null) + public BaseClassSpecifier() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter _0) - : this((void*) null) + public BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) _0.__Instance); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.BaseClassSpecifier __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Expression DefaultArgument + public global::CppSharp.Parser.AST.AccessSpecifier Access { get { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument); - return __result0; + return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access = value; } } - public uint Position + public bool IsVirtual { get { - return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position; + return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual != 0; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position = value; + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); } } - public bool IsPackExpansion + public global::CppSharp.Parser.AST.Type Type { get { - return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + global::CppSharp.Parser.AST.Type __result0; + if (((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type)) + __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type]; + else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type); + return __result0; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsExpandedParameterPack + public int Offset { get { - return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset = value; } } } - public unsafe partial class ClassTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class Field : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 120)] + [StructLayout(LayoutKind.Explicit, Size = 124)] public new partial struct __Internal { [FieldOffset(0)] @@ -10539,81 +10958,67 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] public global::System.IntPtr originalPtr; - [FieldOffset(88)] + [FieldOffset(100)] public global::System.IntPtr comment; - [FieldOffset(92)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(104)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(96)] - internal global::Std.__1.Vector.__Internal Parameters; + [FieldOffset(112)] + public global::System.IntPtr _class; - [FieldOffset(108)] - internal global::Std.__1.Vector.__Internal Specializations; + [FieldOffset(116)] + public byte isBitField; + + [FieldOffset(120)] + public uint bitWidth; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST5FieldC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST5FieldC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST5FieldD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate18getSpecializationsEj")] - internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate18addSpecializationsERPNS1_27ClassTemplateSpecializationE")] - internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate20clearSpecializationsEv")] - internal static extern void ClearSpecializations_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate23getSpecializationsCountEv")] - internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Field __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassTemplate(native.ToPointer(), skipVTables); + return new Field(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Field __CreateInstance(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) { - return new ClassTemplate(native, skipVTables); + return new Field(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Field.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); - global::CppSharp.Parser.AST.ClassTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); + global::CppSharp.Parser.AST.Field.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) + private Field(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassTemplate(void* native, bool skipVTables = false) + protected Field(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10622,19 +11027,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public ClassTemplate() + public Field() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate _0) + public Field(global::CppSharp.Parser.AST.Field _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10653,43 +11058,67 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.ClassTemplateSpecialization GetSpecializations(uint i) + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { - var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.ClassTemplateSpecialization __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.ClassTemplateSpecialization) global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.ClassTemplateSpecialization.__CreateInstance(__ret); - return __result0; + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType); + } + + set + { + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } - public void AddSpecializations(global::CppSharp.Parser.AST.ClassTemplateSpecialization s) + public global::CppSharp.Parser.AST.Class Class { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); + get + { + global::CppSharp.Parser.AST.Class __result0; + if (((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public void ClearSpecializations() + public bool IsBitField { - __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); + get + { + return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField = (byte) (value ? 1 : 0); + } } - public uint SpecializationsCount + public uint BitWidth { get { - var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth; + } + + set + { + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth = value; } } } - public unsafe partial class ClassTemplateSpecialization : global::CppSharp.Parser.AST.Class, IDisposable + public unsafe partial class TemplateParameter : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 300)] + [StructLayout(LayoutKind.Explicit, Size = 116)] public new partial struct __Internal { [FieldOffset(0)] @@ -10738,159 +11167,64 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] public global::System.IntPtr originalPtr; - [FieldOffset(88)] + [FieldOffset(100)] public global::System.IntPtr comment; - [FieldOffset(92)] - internal global::Std.__1.Vector.__Internal Namespaces; - [FieldOffset(104)] - internal global::Std.__1.Vector.__Internal Enums; - - [FieldOffset(116)] - internal global::Std.__1.Vector.__Internal Functions; - - [FieldOffset(128)] - internal global::Std.__1.Vector.__Internal Classes; - - [FieldOffset(140)] - internal global::Std.__1.Vector.__Internal Templates; - - [FieldOffset(152)] - internal global::Std.__1.Vector.__Internal Typedefs; - - [FieldOffset(164)] - internal global::Std.__1.Vector.__Internal TypeAliases; - - [FieldOffset(176)] - internal global::Std.__1.Vector.__Internal Variables; - - [FieldOffset(188)] - internal global::Std.__1.Vector.__Internal Friends; - - [FieldOffset(200)] - internal global::Std.__1.Map.__Internal anonymous; - - [FieldOffset(212)] - public byte isAnonymous; - - [FieldOffset(216)] - internal global::Std.__1.Vector.__Internal Bases; - - [FieldOffset(228)] - internal global::Std.__1.Vector.__Internal Fields; - - [FieldOffset(240)] - internal global::Std.__1.Vector.__Internal Methods; - - [FieldOffset(252)] - internal global::Std.__1.Vector.__Internal Specifiers; - - [FieldOffset(264)] - public byte isPOD; - - [FieldOffset(265)] - public byte isAbstract; - - [FieldOffset(266)] - public byte isUnion; - - [FieldOffset(267)] - public byte isDynamic; - - [FieldOffset(268)] - public byte isPolymorphic; - - [FieldOffset(269)] - public byte hasNonTrivialDefaultConstructor; - - [FieldOffset(270)] - public byte hasNonTrivialCopyConstructor; - - [FieldOffset(271)] - public byte hasNonTrivialDestructor; - - [FieldOffset(272)] - public byte isExternCContext; - - [FieldOffset(273)] - public byte isInjected; - - [FieldOffset(276)] - public global::System.IntPtr layout; - - [FieldOffset(280)] - public global::System.IntPtr templatedDecl; + public uint depth; - [FieldOffset(284)] - internal global::Std.__1.Vector.__Internal Arguments; + [FieldOffset(108)] + public uint index; - [FieldOffset(296)] - public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; + [FieldOffset(112)] + public byte isParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization12getArgumentsEj")] - internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassTemplateSpecialization(native.ToPointer(), skipVTables); + return new TemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) { - return new ClassTemplateSpecialization(native, skipVTables); + return new TemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); - global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); + global::CppSharp.Parser.AST.TemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) + private TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassTemplateSpecialization(void* native, bool skipVTables = false) + protected TemplateParameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10899,19 +11233,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public ClassTemplateSpecialization() + public TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization _0) + public TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10930,70 +11264,54 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) - { - var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); - __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); - } - - public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearArguments() + public static implicit operator global::CppSharp.Parser.AST.TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + return new global::CppSharp.Parser.AST.TemplateParameter(kind); } - public global::CppSharp.Parser.AST.ClassTemplate TemplatedDecl + public uint Depth { get { - global::CppSharp.Parser.AST.ClassTemplate __result0; - if (((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl)) - __result0 = (global::CppSharp.Parser.AST.ClassTemplate) global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl]; - else __result0 = global::CppSharp.Parser.AST.ClassTemplate.__CreateInstance(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl); - return __result0; + return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth; } set { - ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth = value; } } - public global::CppSharp.Parser.AST.TemplateSpecializationKind SpecializationKind + public uint Index { get { - return ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind; + return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index; } set { - ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; + ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index = value; } } - public uint ArgumentsCount + public bool IsParameterPack { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); } } } - public unsafe partial class ClassTemplatePartialSpecialization : global::CppSharp.Parser.AST.ClassTemplateSpecialization, IDisposable + public unsafe partial class TemplateTemplateParameter : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 300)] + [StructLayout(LayoutKind.Explicit, Size = 124)] public new partial struct __Internal { [FieldOffset(0)] @@ -11042,139 +11360,70 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] public global::System.IntPtr originalPtr; - [FieldOffset(88)] + [FieldOffset(100)] public global::System.IntPtr comment; - [FieldOffset(92)] - internal global::Std.__1.Vector.__Internal Namespaces; - [FieldOffset(104)] - internal global::Std.__1.Vector.__Internal Enums; - - [FieldOffset(116)] - internal global::Std.__1.Vector.__Internal Functions; - - [FieldOffset(128)] - internal global::Std.__1.Vector.__Internal Classes; - - [FieldOffset(140)] - internal global::Std.__1.Vector.__Internal Templates; - - [FieldOffset(152)] - internal global::Std.__1.Vector.__Internal Typedefs; - - [FieldOffset(164)] - internal global::Std.__1.Vector.__Internal TypeAliases; - - [FieldOffset(176)] - internal global::Std.__1.Vector.__Internal Variables; - - [FieldOffset(188)] - internal global::Std.__1.Vector.__Internal Friends; - - [FieldOffset(200)] - internal global::Std.__1.Map.__Internal anonymous; - - [FieldOffset(212)] - public byte isAnonymous; - - [FieldOffset(216)] - internal global::Std.__1.Vector.__Internal Bases; - - [FieldOffset(228)] - internal global::Std.__1.Vector.__Internal Fields; - - [FieldOffset(240)] - internal global::Std.__1.Vector.__Internal Methods; - - [FieldOffset(252)] - internal global::Std.__1.Vector.__Internal Specifiers; - - [FieldOffset(264)] - public byte isPOD; - - [FieldOffset(265)] - public byte isAbstract; - - [FieldOffset(266)] - public byte isUnion; - - [FieldOffset(267)] - public byte isDynamic; - - [FieldOffset(268)] - public byte isPolymorphic; - - [FieldOffset(269)] - public byte hasNonTrivialDefaultConstructor; - - [FieldOffset(270)] - public byte hasNonTrivialCopyConstructor; - - [FieldOffset(271)] - public byte hasNonTrivialDestructor; - - [FieldOffset(272)] - public byte isExternCContext; - - [FieldOffset(273)] - public byte isInjected; + public global::System.IntPtr TemplatedDecl; - [FieldOffset(276)] - public global::System.IntPtr layout; + [FieldOffset(108)] + internal global::Std.__1.Vector.__Internal Parameters; - [FieldOffset(280)] - public global::System.IntPtr templatedDecl; + [FieldOffset(120)] + public byte isParameterPack; - [FieldOffset(284)] - internal global::Std.__1.Vector.__Internal Arguments; + [FieldOffset(121)] + public byte isPackExpansion; - [FieldOffset(296)] - public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; + [FieldOffset(122)] + public byte isExpandedParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassTemplatePartialSpecialization(native.ToPointer(), skipVTables); + return new TemplateTemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) { - return new ClassTemplatePartialSpecialization(native, skipVTables); + return new TemplateTemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); - global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); + global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) + private TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassTemplatePartialSpecialization(void* native, bool skipVTables = false) + protected TemplateTemplateParameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -11183,19 +11432,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public ClassTemplatePartialSpecialization() + public TemplateTemplateParameter() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization _0) + public TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -11213,11 +11462,50 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + + public bool IsParameterPack + { + get + { + return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); + } + } + + public bool IsPackExpansion + { + get + { + return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + } + } + + public bool IsExpandedParameterPack + { + get + { + return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); + } + } } - public unsafe partial class FunctionTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class NonTypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 120)] + [StructLayout(LayoutKind.Explicit, Size = 128)] public new partial struct __Internal { [FieldOffset(0)] @@ -11266,81 +11554,76 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] public global::System.IntPtr originalPtr; - [FieldOffset(88)] + [FieldOffset(100)] public global::System.IntPtr comment; - [FieldOffset(92)] - public global::System.IntPtr TemplatedDecl; - - [FieldOffset(96)] - internal global::Std.__1.Vector.__Internal Parameters; + [FieldOffset(104)] + public uint depth; [FieldOffset(108)] - internal global::Std.__1.Vector.__Internal Specializations; + public uint index; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(112)] + public byte isParameterPack; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(116)] + public global::System.IntPtr defaultArgument; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + [FieldOffset(120)] + public uint position; + + [FieldOffset(124)] + public byte isPackExpansion; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate18getSpecializationsEj")] - internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); + [FieldOffset(125)] + public byte isExpandedParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate18addSpecializationsERPNS1_30FunctionTemplateSpecializationE")] - internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate20clearSpecializationsEv")] - internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate23getSpecializationsCountEv")] - internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new FunctionTemplate(native.ToPointer(), skipVTables); + return new NonTypeTemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) { - return new FunctionTemplate(native, skipVTables); + return new NonTypeTemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); - global::CppSharp.Parser.AST.FunctionTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) + private NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected FunctionTemplate(void* native, bool skipVTables = false) + protected NonTypeTemplateParameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -11349,19 +11632,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public FunctionTemplate() + public NonTypeTemplateParameter() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate _0) + public NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -11380,143 +11663,292 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.FunctionTemplateSpecialization GetSpecializations(uint i) + public global::CppSharp.Parser.AST.Expression DefaultArgument { - var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.FunctionTemplateSpecialization __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.FunctionTemplateSpecialization) global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__CreateInstance(__ret); - return __result0; + get + { + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public void AddSpecializations(global::CppSharp.Parser.AST.FunctionTemplateSpecialization s) + public uint Position { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); + get + { + return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position = value; + } } - public void ClearSpecializations() + public bool IsPackExpansion { - __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); + get + { + return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + } } - public uint SpecializationsCount + public bool IsExpandedParameterPack { get { - var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); } } } - public unsafe partial class FunctionTemplateSpecialization : IDisposable + public unsafe partial class ClassTemplateSpecialization : global::CppSharp.Parser.AST.Class, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 312)] + public new partial struct __Internal { [FieldOffset(0)] - public global::System.IntPtr _template; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - internal global::Std.__1.Vector.__Internal Arguments; + public global::CppSharp.Parser.AST.AccessSpecifier access; + + [FieldOffset(8)] + public global::System.IntPtr _namespace; + + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; [FieldOffset(16)] - public global::System.IntPtr specializedFunction; + public int lineNumberStart; [FieldOffset(20)] + public int lineNumberEnd; + + [FieldOffset(24)] + public global::Std.__1.BasicString.__Internal Name; + + [FieldOffset(36)] + public global::Std.__1.BasicString.__Internal USR; + + [FieldOffset(48)] + public global::Std.__1.BasicString.__Internal DebugText; + + [FieldOffset(60)] + public byte isIncomplete; + + [FieldOffset(61)] + public byte isDependent; + + [FieldOffset(62)] + public byte isImplicit; + + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(68)] + public uint definitionOrder; + + [FieldOffset(72)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; + + [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] + public global::System.IntPtr originalPtr; + + [FieldOffset(100)] + public global::System.IntPtr comment; + + [FieldOffset(104)] + internal global::Std.__1.Vector.__Internal Namespaces; + + [FieldOffset(116)] + internal global::Std.__1.Vector.__Internal Enums; + + [FieldOffset(128)] + internal global::Std.__1.Vector.__Internal Functions; + + [FieldOffset(140)] + internal global::Std.__1.Vector.__Internal Classes; + + [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Templates; + + [FieldOffset(164)] + internal global::Std.__1.Vector.__Internal Typedefs; + + [FieldOffset(176)] + internal global::Std.__1.Vector.__Internal TypeAliases; + + [FieldOffset(188)] + internal global::Std.__1.Vector.__Internal Variables; + + [FieldOffset(200)] + internal global::Std.__1.Vector.__Internal Friends; + + [FieldOffset(212)] + internal global::Std.__1.Map.__Internal anonymous; + + [FieldOffset(224)] + public byte isAnonymous; + + [FieldOffset(228)] + internal global::Std.__1.Vector.__Internal Bases; + + [FieldOffset(240)] + internal global::Std.__1.Vector.__Internal Fields; + + [FieldOffset(252)] + internal global::Std.__1.Vector.__Internal Methods; + + [FieldOffset(264)] + internal global::Std.__1.Vector.__Internal Specifiers; + + [FieldOffset(276)] + public byte isPOD; + + [FieldOffset(277)] + public byte isAbstract; + + [FieldOffset(278)] + public byte isUnion; + + [FieldOffset(279)] + public byte isDynamic; + + [FieldOffset(280)] + public byte isPolymorphic; + + [FieldOffset(281)] + public byte hasNonTrivialDefaultConstructor; + + [FieldOffset(282)] + public byte hasNonTrivialCopyConstructor; + + [FieldOffset(283)] + public byte hasNonTrivialDestructor; + + [FieldOffset(284)] + public byte isExternCContext; + + [FieldOffset(285)] + public byte isInjected; + + [FieldOffset(288)] + public global::System.IntPtr layout; + + [FieldOffset(292)] + public global::System.IntPtr templatedDecl; + + [FieldOffset(296)] + internal global::Std.__1.Vector.__Internal Arguments; + + [FieldOffset(308)] public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization12getArgumentsEj")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization12getArgumentsEj")] internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE")] internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization14clearArgumentsEv")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization14clearArgumentsEv")] internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization17getArgumentsCountEv")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization17getArgumentsCountEv")] internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new FunctionTemplateSpecialization(native.ToPointer(), skipVTables); + return new ClassTemplateSpecialization(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) { - return new FunctionTemplateSpecialization(native, skipVTables); + return new ClassTemplateSpecialization(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); - global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); + global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) + private ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected FunctionTemplateSpecialization(void* native, bool skipVTables = false) + protected ClassTemplateSpecialization(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public FunctionTemplateSpecialization() + public ClassTemplateSpecialization() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization _0) + public ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -11525,14 +11957,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.FunctionTemplateSpecialization __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -11560,39 +11987,21 @@ namespace CppSharp __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.FunctionTemplate Template - { - get - { - global::CppSharp.Parser.AST.FunctionTemplate __result0; - if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template)) - __result0 = (global::CppSharp.Parser.AST.FunctionTemplate) global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template]; - else __result0 = global::CppSharp.Parser.AST.FunctionTemplate.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public global::CppSharp.Parser.AST.Function SpecializedFunction + public global::CppSharp.Parser.AST.ClassTemplate TemplatedDecl { get { - global::CppSharp.Parser.AST.Function __result0; - if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction)) - __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction]; - else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction); + global::CppSharp.Parser.AST.ClassTemplate __result0; + if (((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl)) + __result0 = (global::CppSharp.Parser.AST.ClassTemplate) global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl]; + else __result0 = global::CppSharp.Parser.AST.ClassTemplate.__CreateInstance(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl); return __result0; } set { - ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } @@ -11600,12 +12009,12 @@ namespace CppSharp { get { - return ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind; + return ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind; } set { - ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; + ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; } } @@ -11619,9 +12028,9 @@ namespace CppSharp } } - public unsafe partial class VarTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class ClassTemplatePartialSpecialization : global::CppSharp.Parser.AST.ClassTemplateSpecialization, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 120)] + [StructLayout(LayoutKind.Explicit, Size = 312)] public new partial struct __Internal { [FieldOffset(0)] @@ -11670,81 +12079,142 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] public global::System.IntPtr originalPtr; - [FieldOffset(88)] + [FieldOffset(100)] public global::System.IntPtr comment; - [FieldOffset(92)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(104)] + internal global::Std.__1.Vector.__Internal Namespaces; - [FieldOffset(96)] - internal global::Std.__1.Vector.__Internal Parameters; + [FieldOffset(116)] + internal global::Std.__1.Vector.__Internal Enums; - [FieldOffset(108)] - internal global::Std.__1.Vector.__Internal Specializations; + [FieldOffset(128)] + internal global::Std.__1.Vector.__Internal Functions; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(140)] + internal global::Std.__1.Vector.__Internal Classes; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Templates; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + [FieldOffset(164)] + internal global::Std.__1.Vector.__Internal Typedefs; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate18getSpecializationsEj")] - internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); + [FieldOffset(176)] + internal global::Std.__1.Vector.__Internal TypeAliases; + + [FieldOffset(188)] + internal global::Std.__1.Vector.__Internal Variables; + + [FieldOffset(200)] + internal global::Std.__1.Vector.__Internal Friends; + + [FieldOffset(212)] + internal global::Std.__1.Map.__Internal anonymous; + + [FieldOffset(224)] + public byte isAnonymous; + + [FieldOffset(228)] + internal global::Std.__1.Vector.__Internal Bases; + + [FieldOffset(240)] + internal global::Std.__1.Vector.__Internal Fields; + + [FieldOffset(252)] + internal global::Std.__1.Vector.__Internal Methods; + + [FieldOffset(264)] + internal global::Std.__1.Vector.__Internal Specifiers; + + [FieldOffset(276)] + public byte isPOD; + + [FieldOffset(277)] + public byte isAbstract; + + [FieldOffset(278)] + public byte isUnion; + + [FieldOffset(279)] + public byte isDynamic; + + [FieldOffset(280)] + public byte isPolymorphic; + + [FieldOffset(281)] + public byte hasNonTrivialDefaultConstructor; + + [FieldOffset(282)] + public byte hasNonTrivialCopyConstructor; + + [FieldOffset(283)] + public byte hasNonTrivialDestructor; + + [FieldOffset(284)] + public byte isExternCContext; + + [FieldOffset(285)] + public byte isInjected; + + [FieldOffset(288)] + public global::System.IntPtr layout; + + [FieldOffset(292)] + public global::System.IntPtr templatedDecl; + + [FieldOffset(296)] + internal global::Std.__1.Vector.__Internal Arguments; + + [FieldOffset(308)] + public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate18addSpecializationsERPNS1_25VarTemplateSpecializationE")] - internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate20clearSpecializationsEv")] - internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate23getSpecializationsCountEv")] - internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VarTemplate(native.ToPointer(), skipVTables); + return new ClassTemplatePartialSpecialization(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) { - return new VarTemplate(native, skipVTables); + return new ClassTemplatePartialSpecialization(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VarTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); - global::CppSharp.Parser.AST.VarTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); + global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VarTemplate(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) + private ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VarTemplate(void* native, bool skipVTables = false) + protected ClassTemplatePartialSpecialization(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -11753,19 +12223,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public VarTemplate() + public ClassTemplatePartialSpecialization() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VarTemplate(global::CppSharp.Parser.AST.VarTemplate _0) + public ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -11783,44 +12253,11 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - - public global::CppSharp.Parser.AST.VarTemplateSpecialization GetSpecializations(uint i) - { - var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.VarTemplateSpecialization __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.VarTemplateSpecialization) global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.VarTemplateSpecialization.__CreateInstance(__ret); - return __result0; - } - - public void AddSpecializations(global::CppSharp.Parser.AST.VarTemplateSpecialization s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearSpecializations() - { - __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); - } - - public uint SpecializationsCount - { - get - { - var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } } public unsafe partial class VarTemplateSpecialization : global::CppSharp.Parser.AST.Variable, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 132)] + [StructLayout(LayoutKind.Explicit, Size = 144)] public new partial struct __Internal { [FieldOffset(0)] @@ -11869,24 +12306,27 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] public global::System.IntPtr originalPtr; - [FieldOffset(88)] + [FieldOffset(100)] public global::System.IntPtr comment; - [FieldOffset(92)] + [FieldOffset(104)] public global::Std.__1.BasicString.__Internal Mangled; - [FieldOffset(104)] + [FieldOffset(116)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(112)] + [FieldOffset(124)] public global::System.IntPtr templatedDecl; - [FieldOffset(116)] + [FieldOffset(128)] internal global::Std.__1.Vector.__Internal Arguments; - [FieldOffset(128)] + [FieldOffset(140)] public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] @@ -12052,7 +12492,7 @@ namespace CppSharp public unsafe partial class VarTemplatePartialSpecialization : global::CppSharp.Parser.AST.VarTemplateSpecialization, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 132)] + [StructLayout(LayoutKind.Explicit, Size = 144)] public new partial struct __Internal { [FieldOffset(0)] @@ -12101,24 +12541,27 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] public global::System.IntPtr originalPtr; - [FieldOffset(88)] + [FieldOffset(100)] public global::System.IntPtr comment; - [FieldOffset(92)] + [FieldOffset(104)] public global::Std.__1.BasicString.__Internal Mangled; - [FieldOffset(104)] + [FieldOffset(116)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(112)] + [FieldOffset(124)] public global::System.IntPtr templatedDecl; - [FieldOffset(116)] + [FieldOffset(128)] internal global::Std.__1.Vector.__Internal Arguments; - [FieldOffset(128)] + [FieldOffset(140)] public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] @@ -12202,9 +12645,9 @@ namespace CppSharp } } - public unsafe partial class Namespace : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + public unsafe partial class VarTemplate : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 216)] + [StructLayout(LayoutKind.Explicit, Size = 132)] public new partial struct __Internal { [FieldOffset(0)] @@ -12253,88 +12696,84 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] public global::System.IntPtr originalPtr; - [FieldOffset(88)] + [FieldOffset(100)] public global::System.IntPtr comment; - [FieldOffset(92)] - internal global::Std.__1.Vector.__Internal Namespaces; - [FieldOffset(104)] - internal global::Std.__1.Vector.__Internal Enums; - - [FieldOffset(116)] - internal global::Std.__1.Vector.__Internal Functions; - - [FieldOffset(128)] - internal global::Std.__1.Vector.__Internal Classes; - - [FieldOffset(140)] - internal global::Std.__1.Vector.__Internal Templates; - - [FieldOffset(152)] - internal global::Std.__1.Vector.__Internal Typedefs; + public global::System.IntPtr TemplatedDecl; - [FieldOffset(164)] - internal global::Std.__1.Vector.__Internal TypeAliases; + [FieldOffset(108)] + internal global::Std.__1.Vector.__Internal Parameters; - [FieldOffset(176)] - internal global::Std.__1.Vector.__Internal Variables; + [FieldOffset(120)] + internal global::Std.__1.Vector.__Internal Specializations; - [FieldOffset(188)] - internal global::Std.__1.Vector.__Internal Friends; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(200)] - internal global::Std.__1.Map.__Internal anonymous; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(212)] - public byte isAnonymous; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - [FieldOffset(213)] - public byte isInline; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate18getSpecializationsEj")] + internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate18addSpecializationsERPNS1_25VarTemplateSpecializationE")] + internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate20clearSpecializationsEv")] + internal static extern void ClearSpecializations_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate23getSpecializationsCountEv")] + internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Namespace __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Namespace(native.ToPointer(), skipVTables); + return new VarTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Namespace __CreateInstance(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) { - return new Namespace(native, skipVTables); + return new VarTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Namespace.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.VarTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); - global::CppSharp.Parser.AST.Namespace.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); + global::CppSharp.Parser.AST.VarTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Namespace(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + private VarTemplate(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Namespace(void* native, bool skipVTables = false) + protected VarTemplate(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -12343,19 +12782,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Namespace() + public VarTemplate() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Namespace(global::CppSharp.Parser.AST.Namespace _0) + public VarTemplate(global::CppSharp.Parser.AST.VarTemplate _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -12374,149 +12813,36 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public bool IsInline - { - get - { - return ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline = (byte) (value ? 1 : 0); - } - } - } - - public unsafe partial class PreprocessedEntity : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 12)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.MacroLocation macroLocation; - - [FieldOffset(4)] - public global::System.IntPtr originalPtr; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18PreprocessedEntityC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18PreprocessedEntityC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new PreprocessedEntity(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) - { - return new PreprocessedEntity(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); - *(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) ret = native; - return ret.ToPointer(); - } - - private PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected PreprocessedEntity(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public PreprocessedEntity() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public global::CppSharp.Parser.AST.VarTemplateSpecialization GetSpecializations(uint i) { - global::CppSharp.Parser.AST.PreprocessedEntity __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.VarTemplateSpecialization __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.VarTemplateSpecialization) global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.VarTemplateSpecialization.__CreateInstance(__ret); + return __result0; } - public global::CppSharp.Parser.AST.MacroLocation MacroLocation + public void AddSpecializations(global::CppSharp.Parser.AST.VarTemplateSpecialization s) { - get - { - return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation; - } - - set - { - ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation = value; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); } - public global::System.IntPtr OriginalPtr + public void ClearSpecializations() { - get - { - return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr; - } - - set - { - ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; - } + __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.DeclarationKind Kind + public uint SpecializationsCount { get { - return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind = value; + var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } @@ -12874,7 +13200,7 @@ namespace CppSharp public unsafe partial class TranslationUnit : global::CppSharp.Parser.AST.Namespace, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 244)] + [StructLayout(LayoutKind.Explicit, Size = 256)] public new partial struct __Internal { [FieldOffset(0)] @@ -12923,54 +13249,57 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(84)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(96)] public global::System.IntPtr originalPtr; - [FieldOffset(88)] + [FieldOffset(100)] public global::System.IntPtr comment; - [FieldOffset(92)] - internal global::Std.__1.Vector.__Internal Namespaces; - [FieldOffset(104)] - internal global::Std.__1.Vector.__Internal Enums; + internal global::Std.__1.Vector.__Internal Namespaces; [FieldOffset(116)] - internal global::Std.__1.Vector.__Internal Functions; + internal global::Std.__1.Vector.__Internal Enums; [FieldOffset(128)] - internal global::Std.__1.Vector.__Internal Classes; + internal global::Std.__1.Vector.__Internal Functions; [FieldOffset(140)] - internal global::Std.__1.Vector.__Internal Templates; + internal global::Std.__1.Vector.__Internal Classes; [FieldOffset(152)] - internal global::Std.__1.Vector.__Internal Typedefs; + internal global::Std.__1.Vector.__Internal Templates; [FieldOffset(164)] - internal global::Std.__1.Vector.__Internal TypeAliases; + internal global::Std.__1.Vector.__Internal Typedefs; [FieldOffset(176)] - internal global::Std.__1.Vector.__Internal Variables; + internal global::Std.__1.Vector.__Internal TypeAliases; [FieldOffset(188)] - internal global::Std.__1.Vector.__Internal Friends; + internal global::Std.__1.Vector.__Internal Variables; [FieldOffset(200)] - internal global::Std.__1.Map.__Internal anonymous; + internal global::Std.__1.Vector.__Internal Friends; [FieldOffset(212)] + internal global::Std.__1.Map.__Internal anonymous; + + [FieldOffset(224)] public byte isAnonymous; - [FieldOffset(213)] + [FieldOffset(225)] public byte isInline; - [FieldOffset(216)] + [FieldOffset(228)] public global::Std.__1.BasicString.__Internal FileName; - [FieldOffset(228)] + [FieldOffset(240)] public byte isSystemHeader; - [FieldOffset(232)] + [FieldOffset(244)] internal global::Std.__1.Vector.__Internal Macros; [SuppressUnmanagedCodeSecurity] @@ -16094,192 +16423,6 @@ namespace CppSharp } } } - - public unsafe partial class RawComment : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 32)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.RawCommentKind kind; - - [FieldOffset(4)] - public global::Std.__1.BasicString.__Internal Text; - - [FieldOffset(16)] - public global::Std.__1.BasicString.__Internal BriefText; - - [FieldOffset(28)] - public global::System.IntPtr fullCommentBlock; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment7getTextEv")] - internal static extern global::System.IntPtr Text_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment7setTextEPKc")] - internal static extern void SetText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment12getBriefTextEv")] - internal static extern global::System.IntPtr BriefText_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment12setBriefTextEPKc")] - internal static extern void SetBriefText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new RawComment(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) - { - return new RawComment(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.RawComment.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); - global::CppSharp.Parser.AST.RawComment.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private RawComment(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected RawComment(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public RawComment() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public RawComment(global::CppSharp.Parser.AST.RawComment _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.RawComment __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.RawCommentKind Kind - { - get - { - return ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind = value; - } - } - - public global::CppSharp.Parser.AST.FullComment FullCommentBlock - { - get - { - global::CppSharp.Parser.AST.FullComment __result0; - if (((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FullComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock)) - __result0 = (global::CppSharp.Parser.AST.FullComment) global::CppSharp.Parser.AST.FullComment.NativeToManagedMap[((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock]; - else __result0 = global::CppSharp.Parser.AST.FullComment.__CreateInstance(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public string Text - { - get - { - var __ret = __Internal.Text_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetText_0((__Instance + __PointerAdjustment), value); - } - } - - public string BriefText - { - get - { - var __ret = __Internal.BriefText_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetBriefText_0((__Instance + __PointerAdjustment), value); - } - } - } } } } @@ -17173,6 +17316,53 @@ namespace CppSharp User = 4 } + public unsafe partial class Parser + { + [StructLayout(LayoutKind.Explicit, Size = 0)] + public partial struct __Internal + { + } + + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.Parser __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Parser(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.Parser __CreateInstance(global::CppSharp.Parser.Parser.__Internal native, bool skipVTables = false) + { + return new Parser(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.Parser.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.Parser.__Internal)); + *(global::CppSharp.Parser.Parser.__Internal*) ret = native; + return ret.ToPointer(); + } + + private Parser(global::CppSharp.Parser.Parser.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected Parser(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + } + public unsafe partial class CppParserOptions : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 132)] @@ -18207,6 +18397,24 @@ namespace CppSharp } } + public global::CppSharp.Parser.Parser CodeParser + { + get + { + global::CppSharp.Parser.Parser __result0; + if (((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.Parser.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser)) + __result0 = (global::CppSharp.Parser.Parser) global::CppSharp.Parser.Parser.NativeToManagedMap[((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser]; + else __result0 = global::CppSharp.Parser.Parser.__CreateInstance(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser); + return __result0; + } + + set + { + ((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + public uint DiagnosticsCount { get 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 36f353bc..e7122c7e 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 @@ -153,7 +153,7 @@ namespace Std public unsafe partial struct __Internal { [SuppressUnmanagedCodeSecurity] - [DllImport("Std-templates", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + [DllImport("Std-symbols", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, EntryPoint="_ZNSt3__19allocatorIcEC2Ev")] internal static extern void ctorc__N_std_N___1_S_allocator__C_0(global::System.IntPtr instance); } @@ -1266,7 +1266,7 @@ namespace Std public unsafe partial struct __Internal { [SuppressUnmanagedCodeSecurity] - [DllImport("Std-templates", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + [DllImport("Std-symbols", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, EntryPoint="_ZNSt3__111char_traitsIcE3eofEv")] internal static extern int Eofc__N_std_N___1_S_char_traits__C_0(); } @@ -1346,12 +1346,12 @@ namespace Std internal global::Std.__1.CompressedPair.__Internal __r_; [SuppressUnmanagedCodeSecurity] - [DllImport("Std-templates", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + [DllImport("Std-symbols", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, EntryPoint="_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev")] internal static extern void dtorc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] - [DllImport("Std-templates", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + [DllImport("Std-symbols", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, EntryPoint="_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5c_strEv")] internal static extern global::System.IntPtr CStrc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C_0(global::System.IntPtr instance); } 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 ee891633..f4844c22 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 @@ -669,192 +669,201 @@ namespace CppSharp } } - public unsafe partial class TagType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class Declaration : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 12)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 140)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr declaration; + public global::System.IntPtr _namespace; + + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(16)] + public int lineNumberStart; + + [FieldOffset(20)] + public int lineNumberEnd; + + [FieldOffset(24)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(48)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(72)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(96)] + public byte isIncomplete; + + [FieldOffset(97)] + public byte isDependent; + + [FieldOffset(98)] + public byte isImplicit; + + [FieldOffset(100)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(104)] + public uint definitionOrder; + + [FieldOffset(108)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] + public global::System.IntPtr originalPtr; + + [FieldOffset(136)] + public global::System.IntPtr comment; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TagType@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + EntryPoint="??0Declaration@AST@CppParser@CppSharp@@QAE@W4DeclarationKind@123@@Z")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TagType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0Declaration@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.TagType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new TagType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.TagType __CreateInstance(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) - { - return new TagType(native, skipVTables); - } - private static void* __CopyValue(global::CppSharp.Parser.AST.TagType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); - global::CppSharp.Parser.AST.TagType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??1Declaration@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); - private TagType(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getPreprocessedEntities@Declaration@AST@CppParser@CppSharp@@QAEPAVPreprocessedEntity@234@I@Z")] + internal static extern global::System.IntPtr GetPreprocessedEntities_0(global::System.IntPtr instance, uint i); - protected TagType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addPreprocessedEntities@Declaration@AST@CppParser@CppSharp@@QAEXAAPAVPreprocessedEntity@234@@Z")] + internal static extern void AddPreprocessedEntities_0(global::System.IntPtr instance, global::System.IntPtr s); - public TagType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearPreprocessedEntities@Declaration@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearPreprocessedEntities_0(global::System.IntPtr instance); - public TagType(global::CppSharp.Parser.AST.TagType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getRedeclarations@Declaration@AST@CppParser@CppSharp@@QAEPAV1234@I@Z")] + internal static extern global::System.IntPtr GetRedeclarations_0(global::System.IntPtr instance, uint i); - public global::CppSharp.Parser.AST.Declaration Declaration - { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration); - return __result0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addRedeclarations@Declaration@AST@CppParser@CppSharp@@QAEXAAPAV1234@@Z")] + internal static extern void AddRedeclarations_0(global::System.IntPtr instance, global::System.IntPtr s); - set - { - ((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearRedeclarations@Declaration@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearRedeclarations_0(global::System.IntPtr instance); - public unsafe partial class ArrayType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 28)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getName@Declaration@AST@CppParser@CppSharp@@QAEPBDXZ")] + internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); - [FieldOffset(4)] - public byte isDependent; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?setName@Declaration@AST@CppParser@CppSharp@@QAEXPBD@Z")] + internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getUSR@Declaration@AST@CppParser@CppSharp@@QAEPBDXZ")] + internal static extern global::System.IntPtr USR_0(global::System.IntPtr instance); - [FieldOffset(16)] - public global::CppSharp.Parser.AST.ArrayType.ArraySize sizeType; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?setUSR@Declaration@AST@CppParser@CppSharp@@QAEXPBD@Z")] + internal static extern void SetUSR_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - [FieldOffset(20)] - public int size; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getDebugText@Declaration@AST@CppParser@CppSharp@@QAEPBDXZ")] + internal static extern global::System.IntPtr DebugText_0(global::System.IntPtr instance); - [FieldOffset(24)] - public int elementSize; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?setDebugText@Declaration@AST@CppParser@CppSharp@@QAEXPBD@Z")] + internal static extern void SetDebugText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0ArrayType@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + EntryPoint="?getPreprocessedEntitiesCount@Declaration@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetPreprocessedEntitiesCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0ArrayType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="?getRedeclarationsCount@Declaration@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetRedeclarationsCount_0(global::System.IntPtr instance); } - public enum ArraySize - { - Constant = 0, - Variable = 1, - Dependent = 2, - Incomplete = 3 - } + public global::System.IntPtr __Instance { get; protected set; } - internal static new global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ArrayType(native.ToPointer(), skipVTables); + return new Declaration(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) { - return new ArrayType(native, skipVTables); + return new Declaration(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ArrayType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Declaration.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); - global::CppSharp.Parser.AST.ArrayType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); + global::CppSharp.Parser.AST.Declaration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ArrayType(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) + private Declaration(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ArrayType(void* native, bool skipVTables = false) - : base((void*) null) + protected Declaration(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public ArrayType() - : this((void*) null) + public Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public ArrayType(global::CppSharp.Parser.AST.ArrayType _0) - : this((void*) null) + public Declaration(global::CppSharp.Parser.AST.Declaration _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -863,375 +872,322 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public void Dispose() { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + Dispose(disposing: true); } - public global::CppSharp.Parser.AST.ArrayType.ArraySize SizeType + public virtual void Dispose(bool disposing) { - get - { - return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType; - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType = value; - } + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public int Size + public global::CppSharp.Parser.AST.PreprocessedEntity GetPreprocessedEntities(uint i) { - get - { - return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size; - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size = value; - } + var __ret = __Internal.GetPreprocessedEntities_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.PreprocessedEntity __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.PreprocessedEntity) global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.PreprocessedEntity.__CreateInstance(__ret); + return __result0; } - public int ElementSize + public void AddPreprocessedEntities(global::CppSharp.Parser.AST.PreprocessedEntity s) { - get - { - return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize; - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize = value; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddPreprocessedEntities_0((__Instance + __PointerAdjustment), __arg0); } - } - public unsafe partial class FunctionType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 36)] - public new partial struct __Internal + public void ClearPreprocessedEntities() { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - - [FieldOffset(16)] - public global::CppSharp.Parser.AST.CallingConvention callingConvention; - - [FieldOffset(20)] - public global::CppSharp.Parser.AST.ExceptionSpecType exceptionSpecType; - - [FieldOffset(24)] - internal global::Std.Vector.__Internal Parameters; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0FunctionType@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0FunctionType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1FunctionType@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getParameters@FunctionType@AST@CppParser@CppSharp@@QAEPAVParameter@234@I@Z")] - internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addParameters@FunctionType@AST@CppParser@CppSharp@@QAEXAAPAVParameter@234@@Z")] - internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearParameters@FunctionType@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearParameters_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getParametersCount@FunctionType@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetParametersCount_0(global::System.IntPtr instance); + __Internal.ClearPreprocessedEntities_0((__Instance + __PointerAdjustment)); } - internal static new global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public global::CppSharp.Parser.AST.Declaration GetRedeclarations(uint i) { - return new FunctionType(native.ToPointer(), skipVTables); + var __ret = __Internal.GetRedeclarations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Declaration __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(__ret); + return __result0; } - internal static global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) + public void AddRedeclarations(global::CppSharp.Parser.AST.Declaration s) { - return new FunctionType(native, skipVTables); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddRedeclarations_0((__Instance + __PointerAdjustment), __arg0); } - private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionType.__Internal native) + public void ClearRedeclarations() { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); - global::CppSharp.Parser.AST.FunctionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + __Internal.ClearRedeclarations_0((__Instance + __PointerAdjustment)); } - private FunctionType(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public static implicit operator global::CppSharp.Parser.AST.Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + return new global::CppSharp.Parser.AST.Declaration(kind); } - protected FunctionType(void* native, bool skipVTables = false) - : base((void*) null) + public global::CppSharp.Parser.AST.DeclarationKind Kind { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind; + } - public FunctionType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind = value; + } } - public FunctionType(global::CppSharp.Parser.AST.FunctionType _0) - : this((void*) null) + public global::CppSharp.Parser.AST.AccessSpecifier Access { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access; + } - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Type __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access = value; + } } - public global::CppSharp.Parser.AST.Parameter GetParameters(uint i) + public global::CppSharp.Parser.AST.DeclarationContext Namespace { - var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Parameter __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Parameter.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Parameter) global::CppSharp.Parser.AST.Parameter.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Parameter.__CreateInstance(__ret); - return __result0; - } + get + { + global::CppSharp.Parser.AST.DeclarationContext __result0; + if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace)) + __result0 = (global::CppSharp.Parser.AST.DeclarationContext) global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace]; + else __result0 = global::CppSharp.Parser.AST.DeclarationContext.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace); + return __result0; + } - public void AddParameters(global::CppSharp.Parser.AST.Parameter s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public void ClearParameters() + public global::CppSharp.Parser.SourceLocation Location { - __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); + get + { + return global::CppSharp.Parser.SourceLocation.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location); + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location = value.__Instance; + } } - public global::CppSharp.Parser.AST.QualifiedType ReturnType + public int LineNumberStart { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType); + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart; } set { - ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart = value; } } - public global::CppSharp.Parser.AST.CallingConvention CallingConvention + public int LineNumberEnd { get { - return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention; + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd; } set { - ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention = value; + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd = value; } } - public global::CppSharp.Parser.AST.ExceptionSpecType ExceptionSpecType + public bool IsIncomplete { get { - return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType; + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete != 0; } set { - ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType = value; + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete = (byte) (value ? 1 : 0); } } - public uint ParametersCount + public bool IsDependent { get { - var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent = (byte) (value ? 1 : 0); } } - } - public unsafe partial class PointerType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 20)] - public new partial struct __Internal + public bool IsImplicit { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedPointee; - - [FieldOffset(16)] - public global::CppSharp.Parser.AST.PointerType.TypeModifier modifier; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0PointerType@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit != 0; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0PointerType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit = (byte) (value ? 1 : 0); + } } - public enum TypeModifier + public global::CppSharp.Parser.AST.Declaration CompleteDeclaration { - Value = 0, - Pointer = 1, - LVReference = 2, - RVReference = 3 - } + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration); + return __result0; + } - internal static new global::CppSharp.Parser.AST.PointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new PointerType(native.ToPointer(), skipVTables); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - internal static global::CppSharp.Parser.AST.PointerType __CreateInstance(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) + public uint DefinitionOrder { - return new PointerType(native, skipVTables); - } + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder; + } - private static void* __CopyValue(global::CppSharp.Parser.AST.PointerType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); - global::CppSharp.Parser.AST.PointerType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder = value; + } } - private PointerType(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public global::System.IntPtr OriginalPtr { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; + } } - protected PointerType(void* native, bool skipVTables = false) - : base((void*) null) + public global::CppSharp.Parser.AST.RawComment Comment { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + get + { + global::CppSharp.Parser.AST.RawComment __result0; + if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.RawComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment)) + __result0 = (global::CppSharp.Parser.AST.RawComment) global::CppSharp.Parser.AST.RawComment.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment]; + else __result0 = global::CppSharp.Parser.AST.RawComment.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public PointerType() - : this((void*) null) + public string Name { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + get + { + var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetName_0((__Instance + __PointerAdjustment), value); + } } - public PointerType(global::CppSharp.Parser.AST.PointerType _0) - : this((void*) null) + public string USR { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + get + { + var __ret = __Internal.USR_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetUSR_0((__Instance + __PointerAdjustment), value); + } } - public global::CppSharp.Parser.AST.QualifiedType QualifiedPointee + public string DebugText { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee); + var __ret = __Internal.DebugText_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + __Internal.SetDebugText_0((__Instance + __PointerAdjustment), value); } } - public global::CppSharp.Parser.AST.PointerType.TypeModifier Modifier + public uint PreprocessedEntitiesCount { get { - return ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier; + var __ret = __Internal.GetPreprocessedEntitiesCount_0((__Instance + __PointerAdjustment)); + return __ret; } + } - set + public uint RedeclarationsCount + { + get { - ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier = value; + var __ret = __Internal.GetRedeclarationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class MemberPointerType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TagType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 16)] + [StructLayout(LayoutKind.Explicit, Size = 12)] public new partial struct __Internal { [FieldOffset(0)] @@ -1241,44 +1197,44 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; + public global::System.IntPtr declaration; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0MemberPointerType@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0TagType@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0MemberPointerType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0TagType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TagType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new MemberPointerType(native.ToPointer(), skipVTables); + return new TagType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TagType __CreateInstance(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) { - return new MemberPointerType(native, skipVTables); + return new TagType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.MemberPointerType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TagType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); - global::CppSharp.Parser.AST.MemberPointerType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); + global::CppSharp.Parser.AST.TagType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) + private TagType(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected MemberPointerType(void* native, bool skipVTables = false) + protected TagType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1287,19 +1243,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public MemberPointerType() + public TagType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType _0) + public TagType(global::CppSharp.Parser.AST.TagType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1308,23 +1264,28 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Pointee + public global::CppSharp.Parser.AST.Declaration Declaration { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee); + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration); + return __result0; } set { - ((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class TypedefType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class ArrayType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 12)] + [StructLayout(LayoutKind.Explicit, Size = 28)] public new partial struct __Internal { [FieldOffset(0)] @@ -1334,44 +1295,61 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr declaration; + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(16)] + public global::CppSharp.Parser.AST.ArrayType.ArraySize sizeType; + + [FieldOffset(20)] + public int size; + + [FieldOffset(24)] + public int elementSize; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TypedefType@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0ArrayType@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TypedefType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0ArrayType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public enum ArraySize { - return new TypedefType(native.ToPointer(), skipVTables); + Constant = 0, + Variable = 1, + Dependent = 2, + Incomplete = 3 } - internal static global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypedefType(native, skipVTables); + return new ArrayType(native.ToPointer(), skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefType.__Internal native) + internal static global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); - global::CppSharp.Parser.AST.TypedefType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return new ArrayType(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.ArrayType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); + global::CppSharp.Parser.AST.ArrayType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypedefType(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) + private ArrayType(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypedefType(void* native, bool skipVTables = false) + protected ArrayType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1380,19 +1358,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TypedefType() + public ArrayType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypedefType(global::CppSharp.Parser.AST.TypedefType _0) + public ArrayType(global::CppSharp.Parser.AST.ArrayType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1401,190 +1379,174 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.TypedefNameDecl Declaration + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - global::CppSharp.Parser.AST.TypedefNameDecl __result0; - if (((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.TypedefNameDecl) global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap[((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.TypedefNameDecl.__CreateInstance(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - } - - public unsafe partial class AttributedType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal modified; - - [FieldOffset(16)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal equivalent; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0AttributedType@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0AttributedType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new AttributedType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) - { - return new AttributedType(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.AttributedType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); - global::CppSharp.Parser.AST.AttributedType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private AttributedType(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected AttributedType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - public AttributedType() - : this((void*) null) + public global::CppSharp.Parser.AST.ArrayType.ArraySize SizeType { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + get + { + return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType; + } - public AttributedType(global::CppSharp.Parser.AST.AttributedType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType = value; + } } - public global::CppSharp.Parser.AST.QualifiedType Modified + public int Size { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified); + return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size; } set { - ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size = value; } } - public global::CppSharp.Parser.AST.QualifiedType Equivalent + public int ElementSize { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent); + return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize; } set { - ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize = value; } } } - public unsafe partial class DecayedType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class Parameter : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] + [StructLayout(LayoutKind.Explicit, Size = 160)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal decayed; + public global::System.IntPtr _namespace; + + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; [FieldOffset(16)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal original; + public int lineNumberStart; + + [FieldOffset(20)] + public int lineNumberEnd; [FieldOffset(24)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; + public global::Std.BasicString.__Internal Name; + + [FieldOffset(48)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(72)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(96)] + public byte isIncomplete; + + [FieldOffset(97)] + public byte isDependent; + + [FieldOffset(98)] + public byte isImplicit; + + [FieldOffset(100)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(104)] + public uint definitionOrder; + + [FieldOffset(108)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] + public global::System.IntPtr originalPtr; + + [FieldOffset(136)] + public global::System.IntPtr comment; + + [FieldOffset(140)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(148)] + public byte isIndirect; + + [FieldOffset(149)] + public byte hasDefaultValue; + + [FieldOffset(152)] + public uint index; + + [FieldOffset(156)] + public global::System.IntPtr defaultArgument; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0DecayedType@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0Parameter@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0DecayedType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0Parameter@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??1Parameter@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Parameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DecayedType(native.ToPointer(), skipVTables); + return new Parameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Parameter __CreateInstance(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) { - return new DecayedType(native, skipVTables); + return new Parameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DecayedType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Parameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); - global::CppSharp.Parser.AST.DecayedType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); + global::CppSharp.Parser.AST.Parameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DecayedType(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) + private Parameter(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DecayedType(void* native, bool skipVTables = false) + protected Parameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1593,19 +1555,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public DecayedType() + public Parameter() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DecayedType(global::CppSharp.Parser.AST.DecayedType _0) + public Parameter(global::CppSharp.Parser.AST.Parameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1614,215 +1576,90 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Decayed + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType Original + public bool IsIndirect { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original); + return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect != 0; } set { - ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.QualifiedType Pointee + public bool HasDefaultValue { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee); + return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue != 0; } set { - ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue = (byte) (value ? 1 : 0); } } - } - public unsafe partial class TemplateArgument : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 20)] - public partial struct __Internal + public uint Index { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal type; - - [FieldOffset(12)] - public global::System.IntPtr declaration; - - [FieldOffset(16)] - public int integral; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TemplateArgument@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TemplateArgument@AST@CppParser@CppSharp@@QAE@ABU0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - - public enum ArgumentKind - { - Type = 0, - Declaration = 1, - NullPtr = 2, - Integral = 3, - Template = 4, - TemplateExpansion = 5, - Expression = 6, - Pack = 7 - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new TemplateArgument(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) - { - return new TemplateArgument(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateArgument.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); - *(global::CppSharp.Parser.AST.TemplateArgument.__Internal*) ret = native; - return ret.ToPointer(); - } - - private TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected TemplateArgument(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public TemplateArgument() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.TemplateArgument __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind Kind - { - get - { - return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind = value; - } - } - - public global::CppSharp.Parser.AST.QualifiedType Type - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type); - } + get + { + return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index; + } set { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index = value; } } - public global::CppSharp.Parser.AST.Declaration Declaration + public global::CppSharp.Parser.AST.Expression DefaultArgument { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration); + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument); return __result0; } set { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public int Integral - { - get - { - return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral = value; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class TemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class FunctionType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] + [StructLayout(LayoutKind.Explicit, Size = 36)] public new partial struct __Internal { [FieldOffset(0)] @@ -1832,75 +1669,78 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - internal global::Std.Vector.__Internal Arguments; + public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; + + [FieldOffset(16)] + public global::CppSharp.Parser.AST.CallingConvention callingConvention; [FieldOffset(20)] - public global::System.IntPtr _template; + public global::CppSharp.Parser.AST.ExceptionSpecType exceptionSpecType; [FieldOffset(24)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + internal global::Std.Vector.__Internal Parameters; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TemplateSpecializationType@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0FunctionType@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TemplateSpecializationType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0FunctionType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1TemplateSpecializationType@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1FunctionType@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getArguments@TemplateSpecializationType@AST@CppParser@CppSharp@@QAE?AUTemplateArgument@234@I@Z")] - internal static extern void GetArguments_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); + EntryPoint="?getParameters@FunctionType@AST@CppParser@CppSharp@@QAEPAVParameter@234@I@Z")] + internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addArguments@TemplateSpecializationType@AST@CppParser@CppSharp@@QAEXAAUTemplateArgument@234@@Z")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="?addParameters@FunctionType@AST@CppParser@CppSharp@@QAEXAAPAVParameter@234@@Z")] + internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearArguments@TemplateSpecializationType@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="?clearParameters@FunctionType@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearParameters_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getArgumentsCount@TemplateSpecializationType@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + EntryPoint="?getParametersCount@FunctionType@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetParametersCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateSpecializationType(native.ToPointer(), skipVTables); + return new FunctionType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) { - return new TemplateSpecializationType(native, skipVTables); + return new FunctionType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); - global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); + global::CppSharp.Parser.AST.FunctionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) + private FunctionType(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateSpecializationType(void* native, bool skipVTables = false) + protected FunctionType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1909,19 +1749,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateSpecializationType() + public FunctionType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType _0) + public FunctionType(global::CppSharp.Parser.AST.FunctionType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1940,70 +1780,82 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) + public global::CppSharp.Parser.AST.Parameter GetParameters(uint i) { - var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); - __Internal.GetArguments_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); - return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); + var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Parameter __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Parameter.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Parameter) global::CppSharp.Parser.AST.Parameter.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Parameter.__CreateInstance(__ret); + return __result0; } - public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) + public void AddParameters(global::CppSharp.Parser.AST.Parameter s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearArguments() + public void ClearParameters() { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.Template Template + public global::CppSharp.Parser.AST.QualifiedType ReturnType { get { - global::CppSharp.Parser.AST.Template __result0; - if (((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template)) - __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template]; - else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType); } set { - ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.CallingConvention CallingConvention { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared); + return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention; } set { - ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention = value; } } - public uint ArgumentsCount + public global::CppSharp.Parser.AST.ExceptionSpecType ExceptionSpecType { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType; } - } - } - public unsafe partial class DependentTemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 28)] + set + { + ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType = value; + } + } + + public uint ParametersCount + { + get + { + var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + } + + public unsafe partial class PointerType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 20)] public new partial struct __Internal { [FieldOffset(0)] @@ -2013,72 +1865,55 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - internal global::Std.Vector.__Internal Arguments; + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedPointee; - [FieldOffset(20)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + [FieldOffset(16)] + public global::CppSharp.Parser.AST.PointerType.TypeModifier modifier; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0PointerType@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0PointerType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getArguments@DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QAE?AUTemplateArgument@234@I@Z")] - internal static extern void GetArguments_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addArguments@DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QAEXAAUTemplateArgument@234@@Z")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearArguments@DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getArgumentsCount@DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + public enum TypeModifier + { + Value = 0, + Pointer = 1, + LVReference = 2, + RVReference = 3 } - internal static new global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.PointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DependentTemplateSpecializationType(native.ToPointer(), skipVTables); + return new PointerType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.PointerType __CreateInstance(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) { - return new DependentTemplateSpecializationType(native, skipVTables); + return new PointerType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.PointerType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); - global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); + global::CppSharp.Parser.AST.PointerType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) + private PointerType(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DependentTemplateSpecializationType(void* native, bool skipVTables = false) + protected PointerType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2087,19 +1922,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public DependentTemplateSpecializationType() + public PointerType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType _0) + public PointerType(global::CppSharp.Parser.AST.PointerType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2108,62 +1943,36 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Type __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) - { - var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); - __Internal.GetArguments_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); - return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); - } - - public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearArguments() - { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.QualifiedType QualifiedPointee { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee); } set { - ((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public uint ArgumentsCount + public global::CppSharp.Parser.AST.PointerType.TypeModifier Modifier { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier; + } + + set + { + ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier = value; } } } - public unsafe partial class TemplateParameterType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class MemberPointerType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] + [StructLayout(LayoutKind.Explicit, Size = 16)] public new partial struct __Internal { [FieldOffset(0)] @@ -2173,58 +1982,44 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr parameter; - - [FieldOffset(12)] - public uint depth; - - [FieldOffset(16)] - public uint index; - - [FieldOffset(20)] - public byte isParameterPack; + public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TemplateParameterType@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0MemberPointerType@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TemplateParameterType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0MemberPointerType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1TemplateParameterType@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateParameterType(native.ToPointer(), skipVTables); + return new MemberPointerType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) { - return new TemplateParameterType(native, skipVTables); + return new MemberPointerType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.MemberPointerType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); - global::CppSharp.Parser.AST.TemplateParameterType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); + global::CppSharp.Parser.AST.MemberPointerType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) + private MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateParameterType(void* native, bool skipVTables = false) + protected MemberPointerType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2233,19 +2028,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateParameterType() + public MemberPointerType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType _0) + public MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2254,127 +2049,123 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Type __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.TypeTemplateParameter Parameter - { - get - { - global::CppSharp.Parser.AST.TypeTemplateParameter __result0; - if (((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter)) - __result0 = (global::CppSharp.Parser.AST.TypeTemplateParameter) global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter]; - else __result0 = global::CppSharp.Parser.AST.TypeTemplateParameter.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public uint Depth - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth = value; - } - } - - public uint Index - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index = value; - } - } - - public bool IsParameterPack + public global::CppSharp.Parser.AST.QualifiedType Pointee { get { - return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack != 0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee); } set { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TypedefNameDecl : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 20)] + [StructLayout(LayoutKind.Explicit, Size = 148)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal replacement; + public global::System.IntPtr _namespace; - [FieldOffset(16)] - public global::System.IntPtr replacedParameter; + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(16)] + public int lineNumberStart; + + [FieldOffset(20)] + public int lineNumberEnd; + + [FieldOffset(24)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(48)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(72)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(96)] + public byte isIncomplete; + + [FieldOffset(97)] + public byte isDependent; + + [FieldOffset(98)] + public byte isImplicit; + + [FieldOffset(100)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(104)] + public uint definitionOrder; + + [FieldOffset(108)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] + public global::System.IntPtr originalPtr; + + [FieldOffset(136)] + public global::System.IntPtr comment; + + [FieldOffset(140)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TemplateParameterSubstitutionType@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + EntryPoint="??0TypedefNameDecl@AST@CppParser@CppSharp@@QAE@W4DeclarationKind@123@@Z")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TemplateParameterSubstitutionType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0TypedefNameDecl@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??1TypedefNameDecl@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateParameterSubstitutionType(native.ToPointer(), skipVTables); + return new TypedefNameDecl(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) { - return new TemplateParameterSubstitutionType(native, skipVTables); + return new TypedefNameDecl(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); - global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); + global::CppSharp.Parser.AST.TypedefNameDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) + private TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateParameterSubstitutionType(void* native, bool skipVTables = false) + protected TypedefNameDecl(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2383,19 +2174,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateParameterSubstitutionType() + public TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0) + public TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2404,41 +2195,38 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Replacement + public override void Dispose(bool disposing) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement); - } + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - set - { - ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + public static implicit operator global::CppSharp.Parser.AST.TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) + { + return new global::CppSharp.Parser.AST.TypedefNameDecl(kind); } - public global::CppSharp.Parser.AST.TemplateParameterType ReplacedParameter + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - global::CppSharp.Parser.AST.TemplateParameterType __result0; - if (((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter)) - __result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter]; - else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TypedefType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 20)] + [StructLayout(LayoutKind.Explicit, Size = 12)] public new partial struct __Internal { [FieldOffset(0)] @@ -2448,47 +2236,44 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal injectedSpecializationType; - - [FieldOffset(16)] - public global::System.IntPtr _class; + public global::System.IntPtr declaration; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0InjectedClassNameType@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0TypedefType@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0InjectedClassNameType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0TypedefType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new InjectedClassNameType(native.ToPointer(), skipVTables); + return new TypedefType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) { - return new InjectedClassNameType(native, skipVTables); + return new TypedefType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); - global::CppSharp.Parser.AST.InjectedClassNameType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); + global::CppSharp.Parser.AST.TypedefType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + private TypedefType(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected InjectedClassNameType(void* native, bool skipVTables = false) + protected TypedefType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2497,19 +2282,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public InjectedClassNameType() + public TypedefType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType _0) + public TypedefType(global::CppSharp.Parser.AST.TypedefType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2518,41 +2303,28 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType InjectedSpecializationType - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType); - } - - set - { - ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.Class Class + public global::CppSharp.Parser.AST.TypedefNameDecl Declaration { get { - global::CppSharp.Parser.AST.Class __result0; - if (((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class); + global::CppSharp.Parser.AST.TypedefNameDecl __result0; + if (((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.TypedefNameDecl) global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap[((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.TypedefNameDecl.__CreateInstance(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration); return __result0; } set { - ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class DependentNameType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class AttributedType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 16)] + [StructLayout(LayoutKind.Explicit, Size = 24)] public new partial struct __Internal { [FieldOffset(0)] @@ -2562,44 +2334,47 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + public global::CppSharp.Parser.AST.QualifiedType.__Internal modified; + + [FieldOffset(16)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal equivalent; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0DependentNameType@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0AttributedType@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0DependentNameType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0AttributedType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DependentNameType(native.ToPointer(), skipVTables); + return new AttributedType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) { - return new DependentNameType(native, skipVTables); + return new AttributedType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DependentNameType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.AttributedType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); - global::CppSharp.Parser.AST.DependentNameType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); + global::CppSharp.Parser.AST.AttributedType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DependentNameType(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + private AttributedType(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DependentNameType(void* native, bool skipVTables = false) + protected AttributedType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2608,19 +2383,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public DependentNameType() + public AttributedType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DependentNameType(global::CppSharp.Parser.AST.DependentNameType _0) + public AttributedType(global::CppSharp.Parser.AST.AttributedType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2629,23 +2404,36 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.QualifiedType Modified { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified); } set { - ((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public global::CppSharp.Parser.AST.QualifiedType Equivalent + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent); + } + + set + { + ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class PackExpansionType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class DecayedType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 8)] + [StructLayout(LayoutKind.Explicit, Size = 32)] public new partial struct __Internal { [FieldOffset(0)] @@ -2654,42 +2442,51 @@ namespace CppSharp [FieldOffset(4)] public byte isDependent; + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal decayed; + + [FieldOffset(16)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal original; + + [FieldOffset(24)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0PackExpansionType@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0DecayedType@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0PackExpansionType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0DecayedType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new PackExpansionType(native.ToPointer(), skipVTables); + return new DecayedType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) { - return new PackExpansionType(native, skipVTables); + return new DecayedType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.PackExpansionType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DecayedType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); - global::CppSharp.Parser.AST.PackExpansionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); + global::CppSharp.Parser.AST.DecayedType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) + private DecayedType(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected PackExpansionType(void* native, bool skipVTables = false) + protected DecayedType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2698,19 +2495,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public PackExpansionType() + public DecayedType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType _0) + public DecayedType(global::CppSharp.Parser.AST.DecayedType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2718,276 +2515,344 @@ namespace CppSharp var __arg0 = _0.__Instance; __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - } - - public unsafe partial class UnaryTransformType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; - - [FieldOffset(16)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal baseType; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0UnaryTransformType@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0UnaryTransformType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new UnaryTransformType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) - { - return new UnaryTransformType(native, skipVTables); - } - private static void* __CopyValue(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); - global::CppSharp.Parser.AST.UnaryTransformType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected UnaryTransformType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public UnaryTransformType() - : this((void*) null) + public global::CppSharp.Parser.AST.QualifiedType Decayed { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed); + } - public UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.QualifiedType Original { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original); } set { - ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType BaseType + public global::CppSharp.Parser.AST.QualifiedType Pointee { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee); } set { - ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class VectorType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TemplateArgument : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 20)] - public new partial struct __Internal + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind kind; [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.QualifiedType.__Internal type; - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal elementType; + [FieldOffset(12)] + public global::System.IntPtr declaration; [FieldOffset(16)] - public uint numElements; + public int integral; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0VectorType@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0TemplateArgument@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0VectorType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0TemplateArgument@AST@CppParser@CppSharp@@QAE@ABU0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.VectorType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public enum ArgumentKind { - return new VectorType(native.ToPointer(), skipVTables); + Type = 0, + Declaration = 1, + NullPtr = 2, + Integral = 3, + Template = 4, + TemplateExpansion = 5, + Expression = 6, + Pack = 7 } - internal static global::CppSharp.Parser.AST.VectorType __CreateInstance(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VectorType(native, skipVTables); + return new TemplateArgument(native.ToPointer(), skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VectorType.__Internal native) + internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); - global::CppSharp.Parser.AST.VectorType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return new TemplateArgument(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateArgument.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); + *(global::CppSharp.Parser.AST.TemplateArgument.__Internal*) ret = native; return ret.ToPointer(); } - private VectorType(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + private TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VectorType(void* native, bool skipVTables = false) - : base((void*) null) + protected TemplateArgument(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VectorType() - : this((void*) null) + public TemplateArgument() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VectorType(global::CppSharp.Parser.AST.VectorType _0) - : this((void*) null) + public TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) _0.__Instance); } - public global::CppSharp.Parser.AST.QualifiedType ElementType + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.TemplateArgument __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind Kind { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType); + return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind; } set { - ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind = value; } } - public uint NumElements + public global::CppSharp.Parser.AST.QualifiedType Type { get { - return ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type); } set { - ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements = value; + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - } - public unsafe partial class BuiltinType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 12)] - public new partial struct __Internal + public global::CppSharp.Parser.AST.Declaration Declaration { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration); + return __result0; + } - [FieldOffset(4)] - public byte isDependent; + set + { + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } - [FieldOffset(8)] - public global::CppSharp.Parser.AST.PrimitiveType type; + public int Integral + { + get + { + return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral; + } - [SuppressUnmanagedCodeSecurity] + set + { + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral = value; + } + } + } + + public unsafe partial class Template : global::CppSharp.Parser.AST.Declaration, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 156)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; + + [FieldOffset(8)] + public global::System.IntPtr _namespace; + + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(16)] + public int lineNumberStart; + + [FieldOffset(20)] + public int lineNumberEnd; + + [FieldOffset(24)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(48)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(72)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(96)] + public byte isIncomplete; + + [FieldOffset(97)] + public byte isDependent; + + [FieldOffset(98)] + public byte isImplicit; + + [FieldOffset(100)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(104)] + public uint definitionOrder; + + [FieldOffset(108)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] + public global::System.IntPtr originalPtr; + + [FieldOffset(136)] + public global::System.IntPtr comment; + + [FieldOffset(140)] + public global::System.IntPtr TemplatedDecl; + + [FieldOffset(144)] + internal global::Std.Vector.__Internal Parameters; + + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0BuiltinType@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + EntryPoint="??0Template@AST@CppParser@CppSharp@@QAE@W4DeclarationKind@123@@Z")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0BuiltinType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="??0Template@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_1(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0Template@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??1Template@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getParameters@Template@AST@CppParser@CppSharp@@QAEPAVDeclaration@234@I@Z")] + internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addParameters@Template@AST@CppParser@CppSharp@@QAEXAAPAVDeclaration@234@@Z")] + internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearParameters@Template@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearParameters_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getParametersCount@Template@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetParametersCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Template __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new BuiltinType(native.ToPointer(), skipVTables); + return new Template(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Template __CreateInstance(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) { - return new BuiltinType(native, skipVTables); + return new Template(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.BuiltinType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Template.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); - global::CppSharp.Parser.AST.BuiltinType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); + global::CppSharp.Parser.AST.Template.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private BuiltinType(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) + private Template(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected BuiltinType(void* native, bool skipVTables = false) + protected Template(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2996,273 +2861,383 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public BuiltinType() + public Template(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public BuiltinType(global::CppSharp.Parser.AST.BuiltinType _0) + public Template() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_1((__Instance + __PointerAdjustment)); + } + + public Template(global::CppSharp.Parser.AST.Template _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.PrimitiveType Type + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.Declaration GetParameters(uint i) + { + var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Declaration __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(__ret); + return __result0; + } + + public void AddParameters(global::CppSharp.Parser.AST.Declaration s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearParameters() + { + __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); + } + + public static implicit operator global::CppSharp.Parser.AST.Template(global::CppSharp.Parser.AST.DeclarationKind kind) + { + return new global::CppSharp.Parser.AST.Template(kind); + } + + public global::CppSharp.Parser.AST.Declaration TemplatedDecl { get { - return ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type; + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl); + return __result0; } set { - ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type = value; + ((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public uint ParametersCount + { + get + { + var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class VTableComponent : IDisposable + public unsafe partial class TemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 12)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 32)] + public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.VTableComponentKind kind; + public global::CppSharp.Parser.AST.TypeKind kind; [FieldOffset(4)] - public uint offset; + public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr declaration; + internal global::Std.Vector.__Internal Arguments; + + [FieldOffset(20)] + public global::System.IntPtr _template; + + [FieldOffset(24)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0VTableComponent@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0TemplateSpecializationType@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0VTableComponent@AST@CppParser@CppSharp@@QAE@ABU0123@@Z")] + EntryPoint="??0TemplateSpecializationType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??1TemplateSpecializationType@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getArguments@TemplateSpecializationType@AST@CppParser@CppSharp@@QAE?AUTemplateArgument@234@I@Z")] + internal static extern void GetArguments_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addArguments@TemplateSpecializationType@AST@CppParser@CppSharp@@QAEXAAUTemplateArgument@234@@Z")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); - internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new VTableComponent(native.ToPointer(), skipVTables); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearArguments@TemplateSpecializationType@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); - internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getArgumentsCount@TemplateSpecializationType@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VTableComponent(native, skipVTables); + return new TemplateSpecializationType(native.ToPointer(), skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VTableComponent.__Internal native) + internal static global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); - *(global::CppSharp.Parser.AST.VTableComponent.__Internal*) ret = native; + return new TemplateSpecializationType(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); + global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VTableComponent(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + private TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VTableComponent(void* native, bool skipVTables = false) + protected TemplateSpecializationType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VTableComponent() + public TemplateSpecializationType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VTableComponent(global::CppSharp.Parser.AST.VTableComponent _0) + public TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.VTableComponent __dummy; + global::CppSharp.Parser.AST.Type __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.VTableComponentKind Kind + public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) + { + var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); + __Internal.GetArguments_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); + return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); + } + + public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearArguments() + { + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.Template Template { get { - return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind; + global::CppSharp.Parser.AST.Template __result0; + if (((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template)) + __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template]; + else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template); + return __result0; } set { - ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind = value; + ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public uint Offset + public global::CppSharp.Parser.AST.QualifiedType Desugared { get { - return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared); } set { - ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset = value; + ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.Declaration Declaration + public uint ArgumentsCount { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class VTableLayout : IDisposable + public unsafe partial class DependentTemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 12)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 28)] + public new partial struct __Internal { [FieldOffset(0)] - internal global::Std.Vector.__Internal Components; + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + internal global::Std.Vector.__Internal Arguments; + + [FieldOffset(20)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0VTableLayout@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0VTableLayout@AST@CppParser@CppSharp@@QAE@ABU0123@@Z")] + EntryPoint="??0DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1VTableLayout@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getComponents@VTableLayout@AST@CppParser@CppSharp@@QAE?AUVTableComponent@234@I@Z")] - internal static extern void GetComponents_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); + EntryPoint="?getArguments@DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QAE?AUTemplateArgument@234@I@Z")] + internal static extern void GetArguments_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addComponents@VTableLayout@AST@CppParser@CppSharp@@QAEXAAUVTableComponent@234@@Z")] - internal static extern void AddComponents_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="?addArguments@DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QAEXAAUTemplateArgument@234@@Z")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearComponents@VTableLayout@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearComponents_0(global::System.IntPtr instance); + EntryPoint="?clearArguments@DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getComponentsCount@VTableLayout@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetComponentsCount_0(global::System.IntPtr instance); + EntryPoint="?getArgumentsCount@DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VTableLayout(native.ToPointer(), skipVTables); + return new DependentTemplateSpecializationType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) { - return new VTableLayout(native, skipVTables); + return new DependentTemplateSpecializationType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VTableLayout.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); - global::CppSharp.Parser.AST.VTableLayout.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); + global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VTableLayout(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + private DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VTableLayout(void* native, bool skipVTables = false) + protected DependentTemplateSpecializationType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VTableLayout() + public DependentTemplateSpecializationType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VTableLayout(global::CppSharp.Parser.AST.VTableLayout _0) + public DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -3271,14 +3246,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.VTableLayout __dummy; + global::CppSharp.Parser.AST.Type __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -3286,119 +3256,182 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.VTableComponent GetComponents(uint i) + public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) { - var __ret = new global::CppSharp.Parser.AST.VTableComponent.__Internal(); - __Internal.GetComponents_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); - return global::CppSharp.Parser.AST.VTableComponent.__CreateInstance(__ret); + var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); + __Internal.GetArguments_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); + return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); } - public void AddComponents(global::CppSharp.Parser.AST.VTableComponent s) + public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddComponents_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearComponents() + public void ClearArguments() { - __Internal.ClearComponents_0((__Instance + __PointerAdjustment)); + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint ComponentsCount + public global::CppSharp.Parser.AST.QualifiedType Desugared { get { - var __ret = __Internal.GetComponentsCount_0((__Instance + __PointerAdjustment)); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared); + } + + set + { + ((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public uint ArgumentsCount + { + get + { + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class VFTableInfo : IDisposable + public unsafe partial class TypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 160)] + public new partial struct __Internal { [FieldOffset(0)] - public ulong VBTableIndex; + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public uint VFPtrOffset; + public global::System.IntPtr _namespace; [FieldOffset(12)] - public uint VFPtrFullOffset; + public global::CppSharp.Parser.SourceLocation.__Internal location; [FieldOffset(16)] - public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; + public int lineNumberStart; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0VFTableInfo@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + [FieldOffset(20)] + public int lineNumberEnd; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0VFTableInfo@AST@CppParser@CppSharp@@QAE@ABU0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(24)] + public global::Std.BasicString.__Internal Name; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1VFTableInfo@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); - } + [FieldOffset(48)] + public global::Std.BasicString.__Internal USR; - public global::System.IntPtr __Instance { get; protected set; } + [FieldOffset(72)] + public global::Std.BasicString.__Internal DebugText; - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [FieldOffset(96)] + public byte isIncomplete; - protected bool __ownsNativeInstance; + [FieldOffset(97)] + public byte isDependent; - internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [FieldOffset(98)] + public byte isImplicit; + + [FieldOffset(100)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(104)] + public uint definitionOrder; + + [FieldOffset(108)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] + public global::System.IntPtr originalPtr; + + [FieldOffset(136)] + public global::System.IntPtr comment; + + [FieldOffset(140)] + public uint depth; + + [FieldOffset(144)] + public uint index; + + [FieldOffset(148)] + public byte isParameterPack; + + [FieldOffset(152)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal defaultArgument; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0TypeTemplateParameter@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0TypeTemplateParameter@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??1TypeTemplateParameter@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); + } + + internal static new global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VFTableInfo(native.ToPointer(), skipVTables); + return new TypeTemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) { - return new VFTableInfo(native, skipVTables); + return new TypeTemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VFTableInfo.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); - global::CppSharp.Parser.AST.VFTableInfo.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); + global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + private TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VFTableInfo(void* native, bool skipVTables = false) + protected TypeTemplateParameter(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VFTableInfo() + public TypeTemplateParameter() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo _0) + public TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -3407,14 +3440,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.VFTableInfo __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -3422,168 +3450,116 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public ulong VBTableIndex - { - get - { - return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex; - } - - set - { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex = value; - } - } - - public uint VFPtrOffset - { - get - { - return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset; - } - - set - { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset = value; - } - } - - public uint VFPtrFullOffset - { - get - { - return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset; - } - - set - { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset = value; - } - } - - public global::CppSharp.Parser.AST.VTableLayout Layout + public global::CppSharp.Parser.AST.QualifiedType DefaultArgument { get { - return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument); } set { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class LayoutField : IDisposable + public unsafe partial class TemplateParameterType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 40)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 24)] + public new partial struct __Internal { [FieldOffset(0)] - public uint offset; + public global::CppSharp.Parser.AST.TypeKind kind; [FieldOffset(4)] - public global::Std.BasicString.__Internal Name; + public byte isDependent; - [FieldOffset(28)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(8)] + public global::System.IntPtr parameter; - [FieldOffset(36)] - public global::System.IntPtr fieldPtr; + [FieldOffset(12)] + public uint depth; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0LayoutField@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + [FieldOffset(16)] + public uint index; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0LayoutField@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr other); + [FieldOffset(20)] + public byte isParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1LayoutField@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + EntryPoint="??0TemplateParameterType@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getName@LayoutField@AST@CppParser@CppSharp@@QAEPBDXZ")] - internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); + EntryPoint="??0TemplateParameterType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?setName@LayoutField@AST@CppParser@CppSharp@@QAEXPBD@Z")] - internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="??1TemplateParameterType@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new LayoutField(native.ToPointer(), skipVTables); + return new TemplateParameterType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) { - return new LayoutField(native, skipVTables); + return new TemplateParameterType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutField.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); - global::CppSharp.Parser.AST.LayoutField.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); + global::CppSharp.Parser.AST.TemplateParameterType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private LayoutField(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) + private TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected LayoutField(void* native, bool skipVTables = false) + protected TemplateParameterType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public LayoutField() + public TemplateParameterType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public LayoutField(global::CppSharp.Parser.AST.LayoutField other) + public TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(other, null)) - throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = other.__Instance; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.LayoutField __dummy; + global::CppSharp.Parser.AST.Type __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -3591,353 +3567,457 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public uint Offset + public global::CppSharp.Parser.AST.TypeTemplateParameter Parameter { get { - return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset; + global::CppSharp.Parser.AST.TypeTemplateParameter __result0; + if (((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter)) + __result0 = (global::CppSharp.Parser.AST.TypeTemplateParameter) global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter]; + else __result0 = global::CppSharp.Parser.AST.TypeTemplateParameter.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter); + return __result0; } set { - ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset = value; + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public uint Depth { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType); + return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth; } set { - ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth = value; } } - public global::System.IntPtr FieldPtr + public uint Index { get { - return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr; + return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index; } set { - ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr = (global::System.IntPtr) value; + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index = value; } } - public string Name + public bool IsParameterPack { get { - var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack != 0; } set { - __Internal.SetName_0((__Instance + __PointerAdjustment), value); + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); } } } - public unsafe partial class LayoutBase : IDisposable + public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 8)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 20)] + public new partial struct __Internal { [FieldOffset(0)] - public uint offset; + public global::CppSharp.Parser.AST.TypeKind kind; [FieldOffset(4)] - public global::System.IntPtr _class; + public byte isDependent; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0LayoutBase@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal replacement; + + [FieldOffset(16)] + public global::System.IntPtr replacedParameter; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0LayoutBase@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr other); + EntryPoint="??0TemplateParameterSubstitutionType@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1LayoutBase@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + EntryPoint="??0TemplateParameterSubstitutionType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new LayoutBase(native.ToPointer(), skipVTables); + return new TemplateParameterSubstitutionType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) { - return new LayoutBase(native, skipVTables); + return new TemplateParameterSubstitutionType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutBase.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); - global::CppSharp.Parser.AST.LayoutBase.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); + global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private LayoutBase(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) + private TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected LayoutBase(void* native, bool skipVTables = false) + protected TemplateParameterSubstitutionType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public LayoutBase() + public TemplateParameterSubstitutionType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public LayoutBase(global::CppSharp.Parser.AST.LayoutBase other) + public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(other, null)) - throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = other.__Instance; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.LayoutBase __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public uint Offset + public global::CppSharp.Parser.AST.QualifiedType Replacement { get { - return ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement); } set { - ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset = value; + ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.Class Class + public global::CppSharp.Parser.AST.TemplateParameterType ReplacedParameter { get { - global::CppSharp.Parser.AST.Class __result0; - if (((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class); + global::CppSharp.Parser.AST.TemplateParameterType __result0; + if (((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter)) + __result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter]; + else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter); return __result0; } set { - ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class ClassLayout : IDisposable + public unsafe partial class Class : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 72)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 324)] + public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.CppAbi ABI; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - internal global::Std.Vector.__Internal VFTables; - - [FieldOffset(16)] - public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; + public global::CppSharp.Parser.AST.AccessSpecifier access; - [FieldOffset(28)] - public byte hasOwnVFPtr; + [FieldOffset(8)] + public global::System.IntPtr _namespace; - [FieldOffset(32)] - public int VBPtrOffset; + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - [FieldOffset(36)] - public int alignment; + [FieldOffset(16)] + public int lineNumberStart; - [FieldOffset(40)] - public int size; + [FieldOffset(20)] + public int lineNumberEnd; - [FieldOffset(44)] - public int dataSize; + [FieldOffset(24)] + public global::Std.BasicString.__Internal Name; [FieldOffset(48)] - internal global::Std.Vector.__Internal Fields; + public global::Std.BasicString.__Internal USR; - [FieldOffset(60)] - internal global::Std.Vector.__Internal Bases; + [FieldOffset(72)] + public global::Std.BasicString.__Internal DebugText; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0ClassLayout@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + [FieldOffset(96)] + public byte isIncomplete; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0ClassLayout@AST@CppParser@CppSharp@@QAE@ABU0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(97)] + public byte isDependent; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1ClassLayout@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + [FieldOffset(98)] + public byte isImplicit; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getVFTables@ClassLayout@AST@CppParser@CppSharp@@QAE?AUVFTableInfo@234@I@Z")] - internal static extern void GetVFTables_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); + [FieldOffset(100)] + public global::System.IntPtr completeDeclaration; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addVFTables@ClassLayout@AST@CppParser@CppSharp@@QAEXAAUVFTableInfo@234@@Z")] - internal static extern void AddVFTables_0(global::System.IntPtr instance, global::System.IntPtr s); + [FieldOffset(104)] + public uint definitionOrder; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearVFTables@ClassLayout@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearVFTables_0(global::System.IntPtr instance); + [FieldOffset(108)] + internal global::Std.Vector.__Internal PreprocessedEntities; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getFields@ClassLayout@AST@CppParser@CppSharp@@QAE?AVLayoutField@234@I@Z")] - internal static extern void GetFields_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); + [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addFields@ClassLayout@AST@CppParser@CppSharp@@QAEXAAVLayoutField@234@@Z")] - internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); + [FieldOffset(132)] + public global::System.IntPtr originalPtr; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearFields@ClassLayout@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearFields_0(global::System.IntPtr instance); + [FieldOffset(136)] + public global::System.IntPtr comment; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getBases@ClassLayout@AST@CppParser@CppSharp@@QAE?AVLayoutBase@234@I@Z")] - internal static extern void GetBases_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); + [FieldOffset(140)] + internal global::Std.Vector.__Internal Namespaces; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addBases@ClassLayout@AST@CppParser@CppSharp@@QAEXAAVLayoutBase@234@@Z")] - internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); + [FieldOffset(152)] + internal global::Std.Vector.__Internal Enums; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearBases@ClassLayout@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearBases_0(global::System.IntPtr instance); + [FieldOffset(164)] + internal global::Std.Vector.__Internal Functions; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getVFTablesCount@ClassLayout@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetVFTablesCount_0(global::System.IntPtr instance); + [FieldOffset(176)] + internal global::Std.Vector.__Internal Classes; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getFieldsCount@ClassLayout@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); + [FieldOffset(188)] + internal global::Std.Vector.__Internal Templates; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getBasesCount@ClassLayout@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetBasesCount_0(global::System.IntPtr instance); - } + [FieldOffset(200)] + internal global::Std.Vector.__Internal Typedefs; - public global::System.IntPtr __Instance { get; protected set; } + [FieldOffset(212)] + internal global::Std.Vector.__Internal TypeAliases; - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [FieldOffset(224)] + internal global::Std.Vector.__Internal Variables; - protected bool __ownsNativeInstance; + [FieldOffset(236)] + internal global::Std.Vector.__Internal Friends; - internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [FieldOffset(248)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(256)] + public byte isAnonymous; + + [FieldOffset(260)] + internal global::Std.Vector.__Internal Bases; + + [FieldOffset(272)] + internal global::Std.Vector.__Internal Fields; + + [FieldOffset(284)] + internal global::Std.Vector.__Internal Methods; + + [FieldOffset(296)] + internal global::Std.Vector.__Internal Specifiers; + + [FieldOffset(308)] + public byte isPOD; + + [FieldOffset(309)] + public byte isAbstract; + + [FieldOffset(310)] + public byte isUnion; + + [FieldOffset(311)] + public byte isDynamic; + + [FieldOffset(312)] + public byte isPolymorphic; + + [FieldOffset(313)] + public byte hasNonTrivialDefaultConstructor; + + [FieldOffset(314)] + public byte hasNonTrivialCopyConstructor; + + [FieldOffset(315)] + public byte hasNonTrivialDestructor; + + [FieldOffset(316)] + public byte isExternCContext; + + [FieldOffset(317)] + public byte isInjected; + + [FieldOffset(320)] + public global::System.IntPtr layout; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0Class@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0Class@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??1Class@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getBases@Class@AST@CppParser@CppSharp@@QAEPAUBaseClassSpecifier@234@I@Z")] + internal static extern global::System.IntPtr GetBases_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addBases@Class@AST@CppParser@CppSharp@@QAEXAAPAUBaseClassSpecifier@234@@Z")] + internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearBases@Class@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearBases_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getFields@Class@AST@CppParser@CppSharp@@QAEPAVField@234@I@Z")] + internal static extern global::System.IntPtr GetFields_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addFields@Class@AST@CppParser@CppSharp@@QAEXAAPAVField@234@@Z")] + internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearFields@Class@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearFields_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getMethods@Class@AST@CppParser@CppSharp@@QAEPAVMethod@234@I@Z")] + internal static extern global::System.IntPtr GetMethods_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addMethods@Class@AST@CppParser@CppSharp@@QAEXAAPAVMethod@234@@Z")] + internal static extern void AddMethods_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearMethods@Class@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearMethods_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getSpecifiers@Class@AST@CppParser@CppSharp@@QAEPAVAccessSpecifierDecl@234@I@Z")] + internal static extern global::System.IntPtr GetSpecifiers_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addSpecifiers@Class@AST@CppParser@CppSharp@@QAEXAAPAVAccessSpecifierDecl@234@@Z")] + internal static extern void AddSpecifiers_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearSpecifiers@Class@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearSpecifiers_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getBasesCount@Class@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetBasesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getFieldsCount@Class@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getMethodsCount@Class@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetMethodsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getSpecifiersCount@Class@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetSpecifiersCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.Class __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassLayout(native.ToPointer(), skipVTables); + return new Class(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Class __CreateInstance(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) { - return new ClassLayout(native, skipVTables); + return new Class(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassLayout.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Class.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); - global::CppSharp.Parser.AST.ClassLayout.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); + global::CppSharp.Parser.AST.Class.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassLayout(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) + private Class(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassLayout(void* native, bool skipVTables = false) + protected Class(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public ClassLayout() + public Class() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public ClassLayout(global::CppSharp.Parser.AST.ClassLayout _0) + public Class(global::CppSharp.Parser.AST.Class _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -3946,14 +4026,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.ClassLayout __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -3961,34 +4036,42 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.VFTableInfo GetVFTables(uint i) + public global::CppSharp.Parser.AST.BaseClassSpecifier GetBases(uint i) { - var __ret = new global::CppSharp.Parser.AST.VFTableInfo.__Internal(); - __Internal.GetVFTables_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); - return global::CppSharp.Parser.AST.VFTableInfo.__CreateInstance(__ret); + var __ret = __Internal.GetBases_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.BaseClassSpecifier __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.BaseClassSpecifier) global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.BaseClassSpecifier.__CreateInstance(__ret); + return __result0; } - public void AddVFTables(global::CppSharp.Parser.AST.VFTableInfo s) + public void AddBases(global::CppSharp.Parser.AST.BaseClassSpecifier s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddVFTables_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearVFTables() + public void ClearBases() { - __Internal.ClearVFTables_0((__Instance + __PointerAdjustment)); + __Internal.ClearBases_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.LayoutField GetFields(uint i) + public global::CppSharp.Parser.AST.Field GetFields(uint i) { - var __ret = new global::CppSharp.Parser.AST.LayoutField.__Internal(); - __Internal.GetFields_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); - return global::CppSharp.Parser.AST.LayoutField.__CreateInstance(__ret); + var __ret = __Internal.GetFields_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Field __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Field.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Field) global::CppSharp.Parser.AST.Field.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Field.__CreateInstance(__ret); + return __result0; } - public void AddFields(global::CppSharp.Parser.AST.LayoutField s) + public void AddFields(global::CppSharp.Parser.AST.Field s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); @@ -4001,122 +4084,207 @@ namespace CppSharp __Internal.ClearFields_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.LayoutBase GetBases(uint i) + public global::CppSharp.Parser.AST.Method GetMethods(uint i) { - var __ret = new global::CppSharp.Parser.AST.LayoutBase.__Internal(); - __Internal.GetBases_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); - return global::CppSharp.Parser.AST.LayoutBase.__CreateInstance(__ret); + var __ret = __Internal.GetMethods_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Method __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Method.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Method) global::CppSharp.Parser.AST.Method.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Method.__CreateInstance(__ret); + return __result0; } - public void AddBases(global::CppSharp.Parser.AST.LayoutBase s) + public void AddMethods(global::CppSharp.Parser.AST.Method s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddMethods_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearBases() + public void ClearMethods() { - __Internal.ClearBases_0((__Instance + __PointerAdjustment)); + __Internal.ClearMethods_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.CppAbi ABI + public global::CppSharp.Parser.AST.AccessSpecifierDecl GetSpecifiers(uint i) { - get - { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI; - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI = value; - } + var __ret = __Internal.GetSpecifiers_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.AccessSpecifierDecl __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.AccessSpecifierDecl) global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.AccessSpecifierDecl.__CreateInstance(__ret); + return __result0; } - public global::CppSharp.Parser.AST.VTableLayout Layout + public void AddSpecifiers(global::CppSharp.Parser.AST.AccessSpecifierDecl s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecifiers_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearSpecifiers() + { + __Internal.ClearSpecifiers_0((__Instance + __PointerAdjustment)); + } + + public bool IsPOD { get { - return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout); + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD != 0; } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD = (byte) (value ? 1 : 0); } } - public bool HasOwnVFPtr + public bool IsAbstract { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr != 0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract != 0; } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract = (byte) (value ? 1 : 0); } } - public int VBPtrOffset + public bool IsUnion { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion != 0; } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion = (byte) (value ? 1 : 0); } } - public int Alignment + public bool IsDynamic { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic != 0; } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic = (byte) (value ? 1 : 0); } } - public int Size + public bool IsPolymorphic { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic != 0; } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic = (byte) (value ? 1 : 0); } } - public int DataSize + public bool HasNonTrivialDefaultConstructor { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor != 0; } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor = (byte) (value ? 1 : 0); } } - public uint VFTablesCount + public bool HasNonTrivialCopyConstructor { get { - var __ret = __Internal.GetVFTablesCount_0((__Instance + __PointerAdjustment)); + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor = (byte) (value ? 1 : 0); + } + } + + public bool HasNonTrivialDestructor + { + get + { + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor = (byte) (value ? 1 : 0); + } + } + + public bool IsExternCContext + { + get + { + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext = (byte) (value ? 1 : 0); + } + } + + public bool IsInjected + { + get + { + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected = (byte) (value ? 1 : 0); + } + } + + public global::CppSharp.Parser.AST.ClassLayout Layout + { + get + { + global::CppSharp.Parser.AST.ClassLayout __result0; + if (((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout)) + __result0 = (global::CppSharp.Parser.AST.ClassLayout) global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap[((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout]; + else __result0 = global::CppSharp.Parser.AST.ClassLayout.__CreateInstance(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public uint BasesCount + { + get + { + var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); return __ret; } } @@ -4130,188 +4298,210 @@ namespace CppSharp } } - public uint BasesCount + public uint MethodsCount { get { - var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetMethodsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + + public uint SpecifiersCount + { + get + { + var __ret = __Internal.GetSpecifiersCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class Declaration : IDisposable + public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 128)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 20)] + public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.TypeKind kind; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; + public global::CppSharp.Parser.AST.QualifiedType.__Internal injectedSpecializationType; [FieldOffset(16)] - public int lineNumberStart; - - [FieldOffset(20)] - public int lineNumberEnd; - - [FieldOffset(24)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(48)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(72)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(96)] - public byte isIncomplete; - - [FieldOffset(97)] - public byte isDependent; - - [FieldOffset(98)] - public byte isImplicit; - - [FieldOffset(100)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(104)] - public uint definitionOrder; - - [FieldOffset(108)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(120)] - public global::System.IntPtr originalPtr; - - [FieldOffset(124)] - public global::System.IntPtr comment; + public global::System.IntPtr _class; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Declaration@AST@CppParser@CppSharp@@QAE@W4DeclarationKind@123@@Z")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + EntryPoint="??0InjectedClassNameType@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Declaration@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0InjectedClassNameType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1Declaration@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + internal static new global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new InjectedClassNameType(native.ToPointer(), skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getPreprocessedEntities@Declaration@AST@CppParser@CppSharp@@QAEPAVPreprocessedEntity@234@I@Z")] - internal static extern global::System.IntPtr GetPreprocessedEntities_0(global::System.IntPtr instance, uint i); + internal static global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + { + return new InjectedClassNameType(native, skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addPreprocessedEntities@Declaration@AST@CppParser@CppSharp@@QAEXAAPAVPreprocessedEntity@234@@Z")] - internal static extern void AddPreprocessedEntities_0(global::System.IntPtr instance, global::System.IntPtr s); + private static void* __CopyValue(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + global::CppSharp.Parser.AST.InjectedClassNameType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearPreprocessedEntities@Declaration@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearPreprocessedEntities_0(global::System.IntPtr instance); + private InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getName@Declaration@AST@CppParser@CppSharp@@QAEPBDXZ")] - internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); + protected InjectedClassNameType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?setName@Declaration@AST@CppParser@CppSharp@@QAEXPBD@Z")] - internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + public InjectedClassNameType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getUSR@Declaration@AST@CppParser@CppSharp@@QAEPBDXZ")] - internal static extern global::System.IntPtr USR_0(global::System.IntPtr instance); + public InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?setUSR@Declaration@AST@CppParser@CppSharp@@QAEXPBD@Z")] - internal static extern void SetUSR_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + public global::CppSharp.Parser.AST.QualifiedType InjectedSpecializationType + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getDebugText@Declaration@AST@CppParser@CppSharp@@QAEPBDXZ")] - internal static extern global::System.IntPtr DebugText_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public global::CppSharp.Parser.AST.Class Class + { + get + { + global::CppSharp.Parser.AST.Class __result0; + if (((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + } + + public unsafe partial class DependentNameType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 16)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?setDebugText@Declaration@AST@CppParser@CppSharp@@QAEXPBD@Z")] - internal static extern void SetDebugText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="??0DependentNameType@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getPreprocessedEntitiesCount@Declaration@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetPreprocessedEntitiesCount_0(global::System.IntPtr instance); + EntryPoint="??0DependentNameType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Declaration(native.ToPointer(), skipVTables); + return new DependentNameType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) { - return new Declaration(native, skipVTables); + return new DependentNameType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Declaration.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DependentNameType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); - global::CppSharp.Parser.AST.Declaration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + global::CppSharp.Parser.AST.DependentNameType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Declaration(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) + private DependentNameType(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Declaration(void* native, bool skipVTables = false) + protected DependentNameType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) + public DependentNameType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Declaration(global::CppSharp.Parser.AST.Declaration _0) + public DependentNameType(global::CppSharp.Parser.AST.DependentNameType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -4320,628 +4510,961 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() + public global::CppSharp.Parser.AST.QualifiedType Desugared { - Dispose(disposing: true); + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared); + } + + set + { + ((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } + } - public virtual void Dispose(bool disposing) + public unsafe partial class PackExpansionType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 8)] + public new partial struct __Internal { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0PackExpansionType@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0PackExpansionType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - public global::CppSharp.Parser.AST.PreprocessedEntity GetPreprocessedEntities(uint i) + internal static new global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - var __ret = __Internal.GetPreprocessedEntities_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.PreprocessedEntity __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.PreprocessedEntity) global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.PreprocessedEntity.__CreateInstance(__ret); - return __result0; + return new PackExpansionType(native.ToPointer(), skipVTables); } - public void AddPreprocessedEntities(global::CppSharp.Parser.AST.PreprocessedEntity s) + internal static global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddPreprocessedEntities_0((__Instance + __PointerAdjustment), __arg0); + return new PackExpansionType(native, skipVTables); } - public void ClearPreprocessedEntities() + private static void* __CopyValue(global::CppSharp.Parser.AST.PackExpansionType.__Internal native) { - __Internal.ClearPreprocessedEntities_0((__Instance + __PointerAdjustment)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + global::CppSharp.Parser.AST.PackExpansionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public static implicit operator global::CppSharp.Parser.AST.Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) + private PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - return new global::CppSharp.Parser.AST.Declaration(kind); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public global::CppSharp.Parser.AST.DeclarationKind Kind + protected PackExpansionType(void* native, bool skipVTables = false) + : base((void*) null) { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind = value; - } + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public global::CppSharp.Parser.AST.AccessSpecifier Access + public PackExpansionType() + : this((void*) null) { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access; - } - - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access = value; - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.DeclarationContext Namespace + public PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType _0) + : this((void*) null) { - get - { - global::CppSharp.Parser.AST.DeclarationContext __result0; - if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace)) - __result0 = (global::CppSharp.Parser.AST.DeclarationContext) global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace]; - else __result0 = global::CppSharp.Parser.AST.DeclarationContext.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } + } - public global::CppSharp.Parser.SourceLocation Location + public unsafe partial class UnaryTransformType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 24)] + public new partial struct __Internal { - get - { - return global::CppSharp.Parser.SourceLocation.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location); - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location = value.__Instance; - } - } + [FieldOffset(4)] + public byte isDependent; - public int LineNumberStart - { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart; - } + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart = value; - } + [FieldOffset(16)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal baseType; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0UnaryTransformType@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0UnaryTransformType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - public int LineNumberEnd + internal static new global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd; - } + return new UnaryTransformType(native.ToPointer(), skipVTables); + } - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd = value; - } + internal static global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) + { + return new UnaryTransformType(native, skipVTables); } - public bool IsIncomplete + private static void* __CopyValue(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native) { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete != 0; - } + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + global::CppSharp.Parser.AST.UnaryTransformType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete = (byte) (value ? 1 : 0); - } + private UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public bool IsDependent + protected UnaryTransformType(void* native, bool skipVTables = false) + : base((void*) null) { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent != 0; - } + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent = (byte) (value ? 1 : 0); - } + public UnaryTransformType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public bool IsImplicit + public UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + + public global::CppSharp.Parser.AST.QualifiedType Desugared { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit != 0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared); } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.Declaration CompleteDeclaration + public global::CppSharp.Parser.AST.QualifiedType BaseType { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType); } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } + } - public uint DefinitionOrder + public unsafe partial class VectorType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 20)] + public new partial struct __Internal { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder = value; - } + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal elementType; + + [FieldOffset(16)] + public uint numElements; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0VectorType@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0VectorType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - public global::System.IntPtr OriginalPtr + internal static new global::CppSharp.Parser.AST.VectorType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr; - } + return new VectorType(native.ToPointer(), skipVTables); + } - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; - } + internal static global::CppSharp.Parser.AST.VectorType __CreateInstance(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + { + return new VectorType(native, skipVTables); } - public global::CppSharp.Parser.AST.RawComment Comment + private static void* __CopyValue(global::CppSharp.Parser.AST.VectorType.__Internal native) { - get - { - global::CppSharp.Parser.AST.RawComment __result0; - if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.RawComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment)) - __result0 = (global::CppSharp.Parser.AST.RawComment) global::CppSharp.Parser.AST.RawComment.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment]; - else __result0 = global::CppSharp.Parser.AST.RawComment.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment); - return __result0; - } + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + global::CppSharp.Parser.AST.VectorType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + private VectorType(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public string Name + protected VectorType(void* native, bool skipVTables = false) + : base((void*) null) { - get - { - var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - set - { - __Internal.SetName_0((__Instance + __PointerAdjustment), value); - } + public VectorType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public string USR + public VectorType(global::CppSharp.Parser.AST.VectorType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + + public global::CppSharp.Parser.AST.QualifiedType ElementType { get { - var __ret = __Internal.USR_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType); } set { - __Internal.SetUSR_0((__Instance + __PointerAdjustment), value); + ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public string DebugText + public uint NumElements { get { - var __ret = __Internal.DebugText_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + return ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements; } set { - __Internal.SetDebugText_0((__Instance + __PointerAdjustment), value); - } - } - - public uint PreprocessedEntitiesCount - { - get - { - var __ret = __Internal.GetPreprocessedEntitiesCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements = value; } } } - public unsafe partial class DeclarationContext : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class BuiltinType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 248)] + [StructLayout(LayoutKind.Explicit, Size = 12)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.TypeKind kind; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr _namespace; + public global::CppSharp.Parser.AST.PrimitiveType type; - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0BuiltinType@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - [FieldOffset(16)] - public int lineNumberStart; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0BuiltinType@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + } - [FieldOffset(20)] - public int lineNumberEnd; + internal static new global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new BuiltinType(native.ToPointer(), skipVTables); + } - [FieldOffset(24)] - public global::Std.BasicString.__Internal Name; + internal static global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) + { + return new BuiltinType(native, skipVTables); + } - [FieldOffset(48)] - public global::Std.BasicString.__Internal USR; + private static void* __CopyValue(global::CppSharp.Parser.AST.BuiltinType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + global::CppSharp.Parser.AST.BuiltinType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [FieldOffset(72)] - public global::Std.BasicString.__Internal DebugText; + private BuiltinType(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [FieldOffset(96)] - public byte isIncomplete; + protected BuiltinType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [FieldOffset(97)] - public byte isDependent; + public BuiltinType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(98)] - public byte isImplicit; + public BuiltinType(global::CppSharp.Parser.AST.BuiltinType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(100)] - public global::System.IntPtr completeDeclaration; + public global::CppSharp.Parser.AST.PrimitiveType Type + { + get + { + return ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type; + } - [FieldOffset(104)] - public uint definitionOrder; + set + { + ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type = value; + } + } + } - [FieldOffset(108)] - internal global::Std.Vector.__Internal PreprocessedEntities; + public unsafe partial class VTableComponent : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 12)] + public partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.VTableComponentKind kind; - [FieldOffset(120)] - public global::System.IntPtr originalPtr; + [FieldOffset(4)] + public uint offset; - [FieldOffset(124)] - public global::System.IntPtr comment; + [FieldOffset(8)] + public global::System.IntPtr declaration; - [FieldOffset(128)] - internal global::Std.Vector.__Internal Namespaces; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0VTableComponent@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - [FieldOffset(140)] - internal global::Std.Vector.__Internal Enums; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0VTableComponent@AST@CppParser@CppSharp@@QAE@ABU0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + } - [FieldOffset(152)] - internal global::Std.Vector.__Internal Functions; + public global::System.IntPtr __Instance { get; protected set; } - [FieldOffset(164)] - internal global::Std.Vector.__Internal Classes; + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - [FieldOffset(176)] - internal global::Std.Vector.__Internal Templates; + protected bool __ownsNativeInstance; - [FieldOffset(188)] - internal global::Std.Vector.__Internal Typedefs; + internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new VTableComponent(native.ToPointer(), skipVTables); + } - [FieldOffset(200)] - internal global::Std.Vector.__Internal TypeAliases; + internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + { + return new VTableComponent(native, skipVTables); + } - [FieldOffset(212)] - internal global::Std.Vector.__Internal Variables; + private static void* __CopyValue(global::CppSharp.Parser.AST.VTableComponent.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + *(global::CppSharp.Parser.AST.VTableComponent.__Internal*) ret = native; + return ret.ToPointer(); + } - [FieldOffset(224)] - internal global::Std.Vector.__Internal Friends; + private VTableComponent(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [FieldOffset(236)] - internal global::Std.Map.__Internal anonymous; + protected VTableComponent(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [FieldOffset(244)] - public byte isAnonymous; + public VTableComponent() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public VTableComponent(global::CppSharp.Parser.AST.VTableComponent _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) _0.__Instance); + } + + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.VTableComponent __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.VTableComponentKind Kind + { + get + { + return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind; + } + + set + { + ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind = value; + } + } + + public uint Offset + { + get + { + return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset; + } + + set + { + ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset = value; + } + } + + public global::CppSharp.Parser.AST.Declaration Declaration + { + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + } + + public unsafe partial class VTableLayout : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 12)] + public partial struct __Internal + { + [FieldOffset(0)] + internal global::Std.Vector.__Internal Components; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0DeclarationContext@AST@CppParser@CppSharp@@QAE@W4DeclarationKind@123@@Z")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + EntryPoint="??0VTableLayout@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0DeclarationContext@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0VTableLayout@AST@CppParser@CppSharp@@QAE@ABU0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1DeclarationContext@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1VTableLayout@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getNamespaces@DeclarationContext@AST@CppParser@CppSharp@@QAEPAVNamespace@234@I@Z")] - internal static extern global::System.IntPtr GetNamespaces_0(global::System.IntPtr instance, uint i); + EntryPoint="?getComponents@VTableLayout@AST@CppParser@CppSharp@@QAE?AUVTableComponent@234@I@Z")] + internal static extern void GetComponents_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addNamespaces@DeclarationContext@AST@CppParser@CppSharp@@QAEXAAPAVNamespace@234@@Z")] - internal static extern void AddNamespaces_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="?addComponents@VTableLayout@AST@CppParser@CppSharp@@QAEXAAUVTableComponent@234@@Z")] + internal static extern void AddComponents_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearNamespaces@DeclarationContext@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearNamespaces_0(global::System.IntPtr instance); + EntryPoint="?clearComponents@VTableLayout@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearComponents_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getEnums@DeclarationContext@AST@CppParser@CppSharp@@QAEPAVEnumeration@234@I@Z")] - internal static extern global::System.IntPtr GetEnums_0(global::System.IntPtr instance, uint i); + EntryPoint="?getComponentsCount@VTableLayout@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetComponentsCount_0(global::System.IntPtr instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addEnums@DeclarationContext@AST@CppParser@CppSharp@@QAEXAAPAVEnumeration@234@@Z")] - internal static extern void AddEnums_0(global::System.IntPtr instance, global::System.IntPtr s); + public global::System.IntPtr __Instance { get; protected set; } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearEnums@DeclarationContext@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearEnums_0(global::System.IntPtr instance); + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getFunctions@DeclarationContext@AST@CppParser@CppSharp@@QAEPAVFunction@234@I@Z")] - internal static extern global::System.IntPtr GetFunctions_0(global::System.IntPtr instance, uint i); + protected bool __ownsNativeInstance; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addFunctions@DeclarationContext@AST@CppParser@CppSharp@@QAEXAAPAVFunction@234@@Z")] - internal static extern void AddFunctions_0(global::System.IntPtr instance, global::System.IntPtr s); + internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new VTableLayout(native.ToPointer(), skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearFunctions@DeclarationContext@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearFunctions_0(global::System.IntPtr instance); + internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + { + return new VTableLayout(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.VTableLayout.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + global::CppSharp.Parser.AST.VTableLayout.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private VTableLayout(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected VTableLayout(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public VTableLayout() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public VTableLayout(global::CppSharp.Parser.AST.VTableLayout _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.VTableLayout __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.VTableComponent GetComponents(uint i) + { + var __ret = new global::CppSharp.Parser.AST.VTableComponent.__Internal(); + __Internal.GetComponents_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); + return global::CppSharp.Parser.AST.VTableComponent.__CreateInstance(__ret); + } + + public void AddComponents(global::CppSharp.Parser.AST.VTableComponent s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddComponents_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearComponents() + { + __Internal.ClearComponents_0((__Instance + __PointerAdjustment)); + } + + public uint ComponentsCount + { + get + { + var __ret = __Internal.GetComponentsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + } + + public unsafe partial class VFTableInfo : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 32)] + public partial struct __Internal + { + [FieldOffset(0)] + public ulong VBTableIndex; + + [FieldOffset(8)] + public uint VFPtrOffset; + + [FieldOffset(12)] + public uint VFPtrFullOffset; + + [FieldOffset(16)] + public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getClasses@DeclarationContext@AST@CppParser@CppSharp@@QAEPAVClass@234@I@Z")] - internal static extern global::System.IntPtr GetClasses_0(global::System.IntPtr instance, uint i); + EntryPoint="??0VFTableInfo@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addClasses@DeclarationContext@AST@CppParser@CppSharp@@QAEXAAPAVClass@234@@Z")] - internal static extern void AddClasses_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="??0VFTableInfo@AST@CppParser@CppSharp@@QAE@ABU0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearClasses@DeclarationContext@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearClasses_0(global::System.IntPtr instance); + EntryPoint="??1VFTableInfo@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getTemplates@DeclarationContext@AST@CppParser@CppSharp@@QAEPAVTemplate@234@I@Z")] - internal static extern global::System.IntPtr GetTemplates_0(global::System.IntPtr instance, uint i); + public global::System.IntPtr __Instance { get; protected set; } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addTemplates@DeclarationContext@AST@CppParser@CppSharp@@QAEXAAPAVTemplate@234@@Z")] - internal static extern void AddTemplates_0(global::System.IntPtr instance, global::System.IntPtr s); + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearTemplates@DeclarationContext@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearTemplates_0(global::System.IntPtr instance); + protected bool __ownsNativeInstance; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getTypedefs@DeclarationContext@AST@CppParser@CppSharp@@QAEPAVTypedefDecl@234@I@Z")] - internal static extern global::System.IntPtr GetTypedefs_0(global::System.IntPtr instance, uint i); + internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new VFTableInfo(native.ToPointer(), skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addTypedefs@DeclarationContext@AST@CppParser@CppSharp@@QAEXAAPAVTypedefDecl@234@@Z")] - internal static extern void AddTypedefs_0(global::System.IntPtr instance, global::System.IntPtr s); + internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + { + return new VFTableInfo(native, skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearTypedefs@DeclarationContext@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearTypedefs_0(global::System.IntPtr instance); + private static void* __CopyValue(global::CppSharp.Parser.AST.VFTableInfo.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + global::CppSharp.Parser.AST.VFTableInfo.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getTypeAliases@DeclarationContext@AST@CppParser@CppSharp@@QAEPAVTypeAlias@234@I@Z")] - internal static extern global::System.IntPtr GetTypeAliases_0(global::System.IntPtr instance, uint i); + private VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addTypeAliases@DeclarationContext@AST@CppParser@CppSharp@@QAEXAAPAVTypeAlias@234@@Z")] - internal static extern void AddTypeAliases_0(global::System.IntPtr instance, global::System.IntPtr s); + protected VFTableInfo(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearTypeAliases@DeclarationContext@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearTypeAliases_0(global::System.IntPtr instance); + public VFTableInfo() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getVariables@DeclarationContext@AST@CppParser@CppSharp@@QAEPAVVariable@234@I@Z")] - internal static extern global::System.IntPtr GetVariables_0(global::System.IntPtr instance, uint i); + public VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addVariables@DeclarationContext@AST@CppParser@CppSharp@@QAEXAAPAVVariable@234@@Z")] - internal static extern void AddVariables_0(global::System.IntPtr instance, global::System.IntPtr s); + public void Dispose() + { + Dispose(disposing: true); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearVariables@DeclarationContext@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearVariables_0(global::System.IntPtr instance); + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.VFTableInfo __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getFriends@DeclarationContext@AST@CppParser@CppSharp@@QAEPAVFriend@234@I@Z")] - internal static extern global::System.IntPtr GetFriends_0(global::System.IntPtr instance, uint i); + public ulong VBTableIndex + { + get + { + return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addFriends@DeclarationContext@AST@CppParser@CppSharp@@QAEXAAPAVFriend@234@@Z")] - internal static extern void AddFriends_0(global::System.IntPtr instance, global::System.IntPtr s); + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearFriends@DeclarationContext@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearFriends_0(global::System.IntPtr instance); + public uint VFPtrOffset + { + get + { + return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getNamespacesCount@DeclarationContext@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetNamespacesCount_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getEnumsCount@DeclarationContext@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetEnumsCount_0(global::System.IntPtr instance); + public uint VFPtrFullOffset + { + get + { + return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getFunctionsCount@DeclarationContext@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetFunctionsCount_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getClassesCount@DeclarationContext@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetClassesCount_0(global::System.IntPtr instance); + public global::CppSharp.Parser.AST.VTableLayout Layout + { + get + { + return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout); + } + + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; + } + } + } + + public unsafe partial class LayoutField : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 40)] + public partial struct __Internal + { + [FieldOffset(0)] + public uint offset; + + [FieldOffset(4)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(28)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(36)] + public global::System.IntPtr fieldPtr; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getTemplatesCount@DeclarationContext@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetTemplatesCount_0(global::System.IntPtr instance); + EntryPoint="??0LayoutField@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getTypedefsCount@DeclarationContext@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetTypedefsCount_0(global::System.IntPtr instance); + EntryPoint="??0LayoutField@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr other); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getTypeAliasesCount@DeclarationContext@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetTypeAliasesCount_0(global::System.IntPtr instance); + EntryPoint="??1LayoutField@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getVariablesCount@DeclarationContext@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetVariablesCount_0(global::System.IntPtr instance); + EntryPoint="?getName@LayoutField@AST@CppParser@CppSharp@@QAEPBDXZ")] + internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getFriendsCount@DeclarationContext@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetFriendsCount_0(global::System.IntPtr instance); + EntryPoint="?setName@LayoutField@AST@CppParser@CppSharp@@QAEXPBD@Z")] + internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - internal static new global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DeclarationContext(native.ToPointer(), skipVTables); + return new LayoutField(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) { - return new DeclarationContext(native, skipVTables); + return new LayoutField(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DeclarationContext.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); - global::CppSharp.Parser.AST.DeclarationContext.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutField.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + global::CppSharp.Parser.AST.LayoutField.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) + private LayoutField(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DeclarationContext(void* native, bool skipVTables = false) - : base((void*) null) + protected LayoutField(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) - : this((void*) null) + public LayoutField() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext _0) - : this((void*) null) + public LayoutField(global::CppSharp.Parser.AST.LayoutField other) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; + if (ReferenceEquals(other, null)) + throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = other.__Instance; __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.LayoutField __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -4949,443 +5472,353 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Namespace GetNamespaces(uint i) - { - var __ret = __Internal.GetNamespaces_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Namespace __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Namespace.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Namespace) global::CppSharp.Parser.AST.Namespace.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Namespace.__CreateInstance(__ret); - return __result0; - } - - public void AddNamespaces(global::CppSharp.Parser.AST.Namespace s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddNamespaces_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearNamespaces() - { - __Internal.ClearNamespaces_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.Enumeration GetEnums(uint i) - { - var __ret = __Internal.GetEnums_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Enumeration __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Enumeration) global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Enumeration.__CreateInstance(__ret); - return __result0; - } - - public void AddEnums(global::CppSharp.Parser.AST.Enumeration s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddEnums_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearEnums() - { - __Internal.ClearEnums_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.Function GetFunctions(uint i) - { - var __ret = __Internal.GetFunctions_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Function __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(__ret); - return __result0; - } - - public void AddFunctions(global::CppSharp.Parser.AST.Function s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFunctions_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearFunctions() - { - __Internal.ClearFunctions_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.Class GetClasses(uint i) - { - var __ret = __Internal.GetClasses_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Class __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(__ret); - return __result0; - } - - public void AddClasses(global::CppSharp.Parser.AST.Class s) + public uint Offset { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddClasses_0((__Instance + __PointerAdjustment), __arg0); - } + get + { + return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset; + } - public void ClearClasses() - { - __Internal.ClearClasses_0((__Instance + __PointerAdjustment)); + set + { + ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset = value; + } } - public global::CppSharp.Parser.AST.Template GetTemplates(uint i) + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { - var __ret = __Internal.GetTemplates_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Template __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(__ret); - return __result0; - } + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType); + } - public void AddTemplates(global::CppSharp.Parser.AST.Template s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddTemplates_0((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } - public void ClearTemplates() + public global::System.IntPtr FieldPtr { - __Internal.ClearTemplates_0((__Instance + __PointerAdjustment)); - } + get + { + return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr; + } - public global::CppSharp.Parser.AST.TypedefDecl GetTypedefs(uint i) - { - var __ret = __Internal.GetTypedefs_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.TypedefDecl __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.TypedefDecl) global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.TypedefDecl.__CreateInstance(__ret); - return __result0; + set + { + ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr = (global::System.IntPtr) value; + } } - public void AddTypedefs(global::CppSharp.Parser.AST.TypedefDecl s) + public string Name { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddTypedefs_0((__Instance + __PointerAdjustment), __arg0); - } + get + { + var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } - public void ClearTypedefs() - { - __Internal.ClearTypedefs_0((__Instance + __PointerAdjustment)); + set + { + __Internal.SetName_0((__Instance + __PointerAdjustment), value); + } } + } - public global::CppSharp.Parser.AST.TypeAlias GetTypeAliases(uint i) + public unsafe partial class LayoutBase : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 8)] + public partial struct __Internal { - var __ret = __Internal.GetTypeAliases_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.TypeAlias __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.TypeAlias) global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.TypeAlias.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(0)] + public uint offset; - public void AddTypeAliases(global::CppSharp.Parser.AST.TypeAlias s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddTypeAliases_0((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(4)] + public global::System.IntPtr _class; - public void ClearTypeAliases() - { - __Internal.ClearTypeAliases_0((__Instance + __PointerAdjustment)); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0LayoutBase@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - public global::CppSharp.Parser.AST.Variable GetVariables(uint i) - { - var __ret = __Internal.GetVariables_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Variable __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Variable.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Variable) global::CppSharp.Parser.AST.Variable.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Variable.__CreateInstance(__ret); - return __result0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0LayoutBase@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr other); - public void AddVariables(global::CppSharp.Parser.AST.Variable s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddVariables_0((__Instance + __PointerAdjustment), __arg0); + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??1LayoutBase@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - public void ClearVariables() - { - __Internal.ClearVariables_0((__Instance + __PointerAdjustment)); - } + public global::System.IntPtr __Instance { get; protected set; } - public global::CppSharp.Parser.AST.Friend GetFriends(uint i) - { - var __ret = __Internal.GetFriends_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Friend __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Friend.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Friend) global::CppSharp.Parser.AST.Friend.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Friend.__CreateInstance(__ret); - return __result0; - } + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - public void AddFriends(global::CppSharp.Parser.AST.Friend s) + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFriends_0((__Instance + __PointerAdjustment), __arg0); + return new LayoutBase(native.ToPointer(), skipVTables); } - public void ClearFriends() + internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) { - __Internal.ClearFriends_0((__Instance + __PointerAdjustment)); + return new LayoutBase(native, skipVTables); } - public static implicit operator global::CppSharp.Parser.AST.DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) + private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutBase.__Internal native) { - return new global::CppSharp.Parser.AST.DeclarationContext(kind); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + global::CppSharp.Parser.AST.LayoutBase.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public bool IsAnonymous + private LayoutBase(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - get - { - return ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous != 0; - } - - set - { - ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous = (byte) (value ? 1 : 0); - } + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public uint NamespacesCount + protected LayoutBase(void* native, bool skipVTables = false) { - get - { - var __ret = __Internal.GetNamespacesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public uint EnumsCount + public LayoutBase() { - get - { - var __ret = __Internal.GetEnumsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public uint FunctionsCount + public LayoutBase(global::CppSharp.Parser.AST.LayoutBase other) { - get - { - var __ret = __Internal.GetFunctionsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(other, null)) + throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = other.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public uint ClassesCount + public void Dispose() { - get - { - var __ret = __Internal.GetClassesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + Dispose(disposing: true); } - public uint TemplatesCount + public virtual void Dispose(bool disposing) { - get - { - var __ret = __Internal.GetTemplatesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + global::CppSharp.Parser.AST.LayoutBase __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public uint TypedefsCount + public uint Offset { get { - var __ret = __Internal.GetTypedefsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset; } - } - public uint TypeAliasesCount - { - get + set { - var __ret = __Internal.GetTypeAliasesCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset = value; } } - public uint VariablesCount + public global::CppSharp.Parser.AST.Class Class { get { - var __ret = __Internal.GetVariablesCount_0((__Instance + __PointerAdjustment)); - return __ret; + global::CppSharp.Parser.AST.Class __result0; + if (((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class); + return __result0; } - } - public uint FriendsCount - { - get + set { - var __ret = __Internal.GetFriendsCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class TypedefNameDecl : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class ClassLayout : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 136)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 72)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.CppAbi ABI; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + internal global::Std.Vector.__Internal VFTables; - [FieldOffset(8)] - public global::System.IntPtr _namespace; + [FieldOffset(16)] + public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; + [FieldOffset(28)] + public byte hasOwnVFPtr; - [FieldOffset(16)] - public int lineNumberStart; + [FieldOffset(32)] + public int VBPtrOffset; - [FieldOffset(20)] - public int lineNumberEnd; + [FieldOffset(36)] + public int alignment; - [FieldOffset(24)] - public global::Std.BasicString.__Internal Name; + [FieldOffset(40)] + public int size; + + [FieldOffset(44)] + public int dataSize; [FieldOffset(48)] - public global::Std.BasicString.__Internal USR; + internal global::Std.Vector.__Internal Fields; - [FieldOffset(72)] - public global::Std.BasicString.__Internal DebugText; + [FieldOffset(60)] + internal global::Std.Vector.__Internal Bases; - [FieldOffset(96)] - public byte isIncomplete; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0ClassLayout@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - [FieldOffset(97)] - public byte isDependent; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0ClassLayout@AST@CppParser@CppSharp@@QAE@ABU0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(98)] - public byte isImplicit; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??1ClassLayout@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); - [FieldOffset(100)] - public global::System.IntPtr completeDeclaration; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getVFTables@ClassLayout@AST@CppParser@CppSharp@@QAE?AUVFTableInfo@234@I@Z")] + internal static extern void GetVFTables_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); - [FieldOffset(104)] - public uint definitionOrder; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addVFTables@ClassLayout@AST@CppParser@CppSharp@@QAEXAAUVFTableInfo@234@@Z")] + internal static extern void AddVFTables_0(global::System.IntPtr instance, global::System.IntPtr s); - [FieldOffset(108)] - internal global::Std.Vector.__Internal PreprocessedEntities; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearVFTables@ClassLayout@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearVFTables_0(global::System.IntPtr instance); - [FieldOffset(120)] - public global::System.IntPtr originalPtr; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getFields@ClassLayout@AST@CppParser@CppSharp@@QAE?AVLayoutField@234@I@Z")] + internal static extern void GetFields_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); - [FieldOffset(124)] - public global::System.IntPtr comment; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addFields@ClassLayout@AST@CppParser@CppSharp@@QAEXAAVLayoutField@234@@Z")] + internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); - [FieldOffset(128)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearFields@ClassLayout@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearFields_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TypedefNameDecl@AST@CppParser@CppSharp@@QAE@W4DeclarationKind@123@@Z")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + EntryPoint="?getBases@ClassLayout@AST@CppParser@CppSharp@@QAE?AVLayoutBase@234@I@Z")] + internal static extern void GetBases_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TypedefNameDecl@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="?addBases@ClassLayout@AST@CppParser@CppSharp@@QAEXAAVLayoutBase@234@@Z")] + internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1TypedefNameDecl@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + EntryPoint="?clearBases@ClassLayout@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearBases_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getVFTablesCount@ClassLayout@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetVFTablesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getFieldsCount@ClassLayout@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getBasesCount@ClassLayout@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetBasesCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypedefNameDecl(native.ToPointer(), skipVTables); + return new ClassLayout(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) { - return new TypedefNameDecl(native, skipVTables); + return new ClassLayout(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassLayout.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); - global::CppSharp.Parser.AST.TypedefNameDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + global::CppSharp.Parser.AST.ClassLayout.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) + private ClassLayout(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypedefNameDecl(void* native, bool skipVTables = false) - : base((void*) null) + protected ClassLayout(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) - : this((void*) null) + public ClassLayout() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl _0) - : this((void*) null) + public ClassLayout(global::CppSharp.Parser.AST.ClassLayout _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -5394,9 +5827,14 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.ClassLayout __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -5404,168 +5842,188 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public static implicit operator global::CppSharp.Parser.AST.TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) + public global::CppSharp.Parser.AST.VFTableInfo GetVFTables(uint i) { - return new global::CppSharp.Parser.AST.TypedefNameDecl(kind); + var __ret = new global::CppSharp.Parser.AST.VFTableInfo.__Internal(); + __Internal.GetVFTables_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); + return global::CppSharp.Parser.AST.VFTableInfo.__CreateInstance(__ret); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public void AddVFTables(global::CppSharp.Parser.AST.VFTableInfo s) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddVFTables_0((__Instance + __PointerAdjustment), __arg0); } - } - public unsafe partial class TypedefDecl : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 136)] - public new partial struct __Internal + public void ClearVFTables() { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(16)] - public int lineNumberStart; - - [FieldOffset(20)] - public int lineNumberEnd; - - [FieldOffset(24)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(48)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(72)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(96)] - public byte isIncomplete; - - [FieldOffset(97)] - public byte isDependent; + __Internal.ClearVFTables_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(98)] - public byte isImplicit; + public global::CppSharp.Parser.AST.LayoutField GetFields(uint i) + { + var __ret = new global::CppSharp.Parser.AST.LayoutField.__Internal(); + __Internal.GetFields_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); + return global::CppSharp.Parser.AST.LayoutField.__CreateInstance(__ret); + } - [FieldOffset(100)] - public global::System.IntPtr completeDeclaration; + public void AddFields(global::CppSharp.Parser.AST.LayoutField s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(104)] - public uint definitionOrder; + public void ClearFields() + { + __Internal.ClearFields_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(108)] - internal global::Std.Vector.__Internal PreprocessedEntities; + public global::CppSharp.Parser.AST.LayoutBase GetBases(uint i) + { + var __ret = new global::CppSharp.Parser.AST.LayoutBase.__Internal(); + __Internal.GetBases_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); + return global::CppSharp.Parser.AST.LayoutBase.__CreateInstance(__ret); + } - [FieldOffset(120)] - public global::System.IntPtr originalPtr; + public void AddBases(global::CppSharp.Parser.AST.LayoutBase s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(124)] - public global::System.IntPtr comment; + public void ClearBases() + { + __Internal.ClearBases_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(128)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + public global::CppSharp.Parser.AST.CppAbi ABI + { + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TypedefDecl@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TypedefDecl@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public global::CppSharp.Parser.AST.VTableLayout Layout + { + get + { + return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1TypedefDecl@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; + } } - internal static new global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public bool HasOwnVFPtr { - return new TypedefDecl(native.ToPointer(), skipVTables); + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr != 0; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr = (byte) (value ? 1 : 0); + } } - internal static global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) + public int VBPtrOffset { - return new TypedefDecl(native, skipVTables); + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset = value; + } } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefDecl.__Internal native) + public int Alignment { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); - global::CppSharp.Parser.AST.TypedefDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment = value; + } } - private TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public int Size { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size = value; + } } - protected TypedefDecl(void* native, bool skipVTables = false) - : base((void*) null) + public int DataSize { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize = value; + } } - public TypedefDecl() - : this((void*) null) + public uint VFTablesCount { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + get + { + var __ret = __Internal.GetVFTablesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - public TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl _0) - : this((void*) null) + public uint FieldsCount { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + get + { + var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - public override void Dispose(bool disposing) + public uint BasesCount { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + get + { + var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } } - public unsafe partial class TypeAlias : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable + public unsafe partial class DeclarationContext : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 140)] + [StructLayout(LayoutKind.Explicit, Size = 260)] public new partial struct __Internal { [FieldOffset(0)] @@ -5614,58 +6072,268 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] public global::System.IntPtr originalPtr; - [FieldOffset(124)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(128)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(140)] + internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(136)] - public global::System.IntPtr describedAliasTemplate; + [FieldOffset(152)] + internal global::Std.Vector.__Internal Enums; + + [FieldOffset(164)] + internal global::Std.Vector.__Internal Functions; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Classes; + + [FieldOffset(188)] + internal global::Std.Vector.__Internal Templates; + + [FieldOffset(200)] + internal global::Std.Vector.__Internal Typedefs; + + [FieldOffset(212)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(224)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(236)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(248)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(256)] + public byte isAnonymous; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0DeclarationContext@AST@CppParser@CppSharp@@QAE@W4DeclarationKind@123@@Z")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0DeclarationContext@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??1DeclarationContext@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getNamespaces@DeclarationContext@AST@CppParser@CppSharp@@QAEPAVNamespace@234@I@Z")] + internal static extern global::System.IntPtr GetNamespaces_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addNamespaces@DeclarationContext@AST@CppParser@CppSharp@@QAEXAAPAVNamespace@234@@Z")] + internal static extern void AddNamespaces_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearNamespaces@DeclarationContext@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearNamespaces_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getEnums@DeclarationContext@AST@CppParser@CppSharp@@QAEPAVEnumeration@234@I@Z")] + internal static extern global::System.IntPtr GetEnums_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addEnums@DeclarationContext@AST@CppParser@CppSharp@@QAEXAAPAVEnumeration@234@@Z")] + internal static extern void AddEnums_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearEnums@DeclarationContext@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearEnums_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getFunctions@DeclarationContext@AST@CppParser@CppSharp@@QAEPAVFunction@234@I@Z")] + internal static extern global::System.IntPtr GetFunctions_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addFunctions@DeclarationContext@AST@CppParser@CppSharp@@QAEXAAPAVFunction@234@@Z")] + internal static extern void AddFunctions_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearFunctions@DeclarationContext@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearFunctions_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getClasses@DeclarationContext@AST@CppParser@CppSharp@@QAEPAVClass@234@I@Z")] + internal static extern global::System.IntPtr GetClasses_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addClasses@DeclarationContext@AST@CppParser@CppSharp@@QAEXAAPAVClass@234@@Z")] + internal static extern void AddClasses_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearClasses@DeclarationContext@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearClasses_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getTemplates@DeclarationContext@AST@CppParser@CppSharp@@QAEPAVTemplate@234@I@Z")] + internal static extern global::System.IntPtr GetTemplates_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addTemplates@DeclarationContext@AST@CppParser@CppSharp@@QAEXAAPAVTemplate@234@@Z")] + internal static extern void AddTemplates_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearTemplates@DeclarationContext@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearTemplates_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getTypedefs@DeclarationContext@AST@CppParser@CppSharp@@QAEPAVTypedefDecl@234@I@Z")] + internal static extern global::System.IntPtr GetTypedefs_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addTypedefs@DeclarationContext@AST@CppParser@CppSharp@@QAEXAAPAVTypedefDecl@234@@Z")] + internal static extern void AddTypedefs_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearTypedefs@DeclarationContext@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearTypedefs_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getTypeAliases@DeclarationContext@AST@CppParser@CppSharp@@QAEPAVTypeAlias@234@I@Z")] + internal static extern global::System.IntPtr GetTypeAliases_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addTypeAliases@DeclarationContext@AST@CppParser@CppSharp@@QAEXAAPAVTypeAlias@234@@Z")] + internal static extern void AddTypeAliases_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearTypeAliases@DeclarationContext@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearTypeAliases_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getVariables@DeclarationContext@AST@CppParser@CppSharp@@QAEPAVVariable@234@I@Z")] + internal static extern global::System.IntPtr GetVariables_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addVariables@DeclarationContext@AST@CppParser@CppSharp@@QAEXAAPAVVariable@234@@Z")] + internal static extern void AddVariables_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearVariables@DeclarationContext@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearVariables_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getFriends@DeclarationContext@AST@CppParser@CppSharp@@QAEPAVFriend@234@I@Z")] + internal static extern global::System.IntPtr GetFriends_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addFriends@DeclarationContext@AST@CppParser@CppSharp@@QAEXAAPAVFriend@234@@Z")] + internal static extern void AddFriends_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearFriends@DeclarationContext@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearFriends_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getNamespacesCount@DeclarationContext@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetNamespacesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getEnumsCount@DeclarationContext@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetEnumsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getFunctionsCount@DeclarationContext@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetFunctionsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getClassesCount@DeclarationContext@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetClassesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getTemplatesCount@DeclarationContext@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetTemplatesCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TypeAlias@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + EntryPoint="?getTypedefsCount@DeclarationContext@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetTypedefsCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TypeAlias@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="?getTypeAliasesCount@DeclarationContext@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetTypeAliasesCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1TypeAlias@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + EntryPoint="?getVariablesCount@DeclarationContext@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetVariablesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getFriendsCount@DeclarationContext@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetFriendsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypeAlias(native.ToPointer(), skipVTables); + return new DeclarationContext(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) { - return new TypeAlias(native, skipVTables); + return new DeclarationContext(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAlias.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DeclarationContext.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); - global::CppSharp.Parser.AST.TypeAlias.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + global::CppSharp.Parser.AST.DeclarationContext.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypeAlias(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) + private DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypeAlias(void* native, bool skipVTables = false) + protected DeclarationContext(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -5674,19 +6342,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TypeAlias() + public DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public TypeAlias(global::CppSharp.Parser.AST.TypeAlias _0) + public DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -5705,491 +6373,425 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.TypeAliasTemplate DescribedAliasTemplate + public global::CppSharp.Parser.AST.Namespace GetNamespaces(uint i) { - get - { - global::CppSharp.Parser.AST.TypeAliasTemplate __result0; - if (((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate)) - __result0 = (global::CppSharp.Parser.AST.TypeAliasTemplate) global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate]; - else __result0 = global::CppSharp.Parser.AST.TypeAliasTemplate.__CreateInstance(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + var __ret = __Internal.GetNamespaces_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Namespace __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Namespace.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Namespace) global::CppSharp.Parser.AST.Namespace.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Namespace.__CreateInstance(__ret); + return __result0; } - } - public unsafe partial class Friend : global::CppSharp.Parser.AST.Declaration, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 132)] - public new partial struct __Internal + public void AddNamespaces(global::CppSharp.Parser.AST.Namespace s) { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(16)] - public int lineNumberStart; - - [FieldOffset(20)] - public int lineNumberEnd; - - [FieldOffset(24)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(48)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(72)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(96)] - public byte isIncomplete; - - [FieldOffset(97)] - public byte isDependent; - - [FieldOffset(98)] - public byte isImplicit; - - [FieldOffset(100)] - public global::System.IntPtr completeDeclaration; + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddNamespaces_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(104)] - public uint definitionOrder; + public void ClearNamespaces() + { + __Internal.ClearNamespaces_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(108)] - internal global::Std.Vector.__Internal PreprocessedEntities; + public global::CppSharp.Parser.AST.Enumeration GetEnums(uint i) + { + var __ret = __Internal.GetEnums_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Enumeration __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Enumeration) global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Enumeration.__CreateInstance(__ret); + return __result0; + } - [FieldOffset(120)] - public global::System.IntPtr originalPtr; + public void AddEnums(global::CppSharp.Parser.AST.Enumeration s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddEnums_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(124)] - public global::System.IntPtr comment; + public void ClearEnums() + { + __Internal.ClearEnums_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(128)] - public global::System.IntPtr declaration; + public global::CppSharp.Parser.AST.Function GetFunctions(uint i) + { + var __ret = __Internal.GetFunctions_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Function __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(__ret); + return __result0; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Friend@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + public void AddFunctions(global::CppSharp.Parser.AST.Function s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFunctions_0((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Friend@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public void ClearFunctions() + { + __Internal.ClearFunctions_0((__Instance + __PointerAdjustment)); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1Friend@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + public global::CppSharp.Parser.AST.Class GetClasses(uint i) + { + var __ret = __Internal.GetClasses_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Class __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(__ret); + return __result0; } - internal static new global::CppSharp.Parser.AST.Friend __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public void AddClasses(global::CppSharp.Parser.AST.Class s) { - return new Friend(native.ToPointer(), skipVTables); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddClasses_0((__Instance + __PointerAdjustment), __arg0); } - internal static global::CppSharp.Parser.AST.Friend __CreateInstance(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) + public void ClearClasses() { - return new Friend(native, skipVTables); + __Internal.ClearClasses_0((__Instance + __PointerAdjustment)); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Friend.__Internal native) + public global::CppSharp.Parser.AST.Template GetTemplates(uint i) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); - global::CppSharp.Parser.AST.Friend.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + var __ret = __Internal.GetTemplates_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Template __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(__ret); + return __result0; } - private Friend(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public void AddTemplates(global::CppSharp.Parser.AST.Template s) { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddTemplates_0((__Instance + __PointerAdjustment), __arg0); } - protected Friend(void* native, bool skipVTables = false) - : base((void*) null) + public void ClearTemplates() { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + __Internal.ClearTemplates_0((__Instance + __PointerAdjustment)); } - public Friend() - : this((void*) null) + public global::CppSharp.Parser.AST.TypedefDecl GetTypedefs(uint i) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetTypedefs_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.TypedefDecl __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.TypedefDecl) global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.TypedefDecl.__CreateInstance(__ret); + return __result0; } - public Friend(global::CppSharp.Parser.AST.Friend _0) - : this((void*) null) + public void AddTypedefs(global::CppSharp.Parser.AST.TypedefDecl s) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddTypedefs_0((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void ClearTypedefs() { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + __Internal.ClearTypedefs_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.Declaration Declaration + public global::CppSharp.Parser.AST.TypeAlias GetTypeAliases(uint i) { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + var __ret = __Internal.GetTypeAliases_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.TypeAlias __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.TypeAlias) global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.TypeAlias.__CreateInstance(__ret); + return __result0; } - } - public unsafe partial class Statement : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 32)] - public partial struct __Internal + public void AddTypeAliases(global::CppSharp.Parser.AST.TypeAlias s) { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; - - [FieldOffset(4)] - public global::System.IntPtr decl; - - [FieldOffset(8)] - public global::Std.BasicString.__Internal String; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Statement@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1Statement@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getString@Statement@AST@CppParser@CppSharp@@QAEPBDXZ")] - internal static extern global::System.IntPtr String_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?setString@Statement@AST@CppParser@CppSharp@@QAEXPBD@Z")] - internal static extern void SetString_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddTypeAliases_0((__Instance + __PointerAdjustment), __arg0); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public void ClearTypeAliases() { - return new Statement(native.ToPointer(), skipVTables); + __Internal.ClearTypeAliases_0((__Instance + __PointerAdjustment)); } - internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + public global::CppSharp.Parser.AST.Variable GetVariables(uint i) { - return new Statement(native, skipVTables); + var __ret = __Internal.GetVariables_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Variable __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Variable.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Variable) global::CppSharp.Parser.AST.Variable.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Variable.__CreateInstance(__ret); + return __result0; } - private static void* __CopyValue(global::CppSharp.Parser.AST.Statement.__Internal native) + public void AddVariables(global::CppSharp.Parser.AST.Variable s) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); - global::CppSharp.Parser.AST.Statement.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddVariables_0((__Instance + __PointerAdjustment), __arg0); } - private Statement(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public void ClearVariables() { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + __Internal.ClearVariables_0((__Instance + __PointerAdjustment)); } - protected Statement(void* native, bool skipVTables = false) + public global::CppSharp.Parser.AST.Friend GetFriends(uint i) { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + var __ret = __Internal.GetFriends_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Friend __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Friend.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Friend) global::CppSharp.Parser.AST.Friend.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Friend.__CreateInstance(__ret); + return __result0; } - public Statement(global::CppSharp.Parser.AST.Statement _0) + public void AddFriends(global::CppSharp.Parser.AST.Friend s) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFriends_0((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() + public void ClearFriends() { - Dispose(disposing: true); + __Internal.ClearFriends_0((__Instance + __PointerAdjustment)); } - public virtual void Dispose(bool disposing) + public static implicit operator global::CppSharp.Parser.AST.DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) { - global::CppSharp.Parser.AST.Statement __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + return new global::CppSharp.Parser.AST.DeclarationContext(kind); } - public global::CppSharp.Parser.AST.StatementClass Class + public bool IsAnonymous { get { - return ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class; + return ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous != 0; } set { - ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class = value; + ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.Declaration Decl + public uint NamespacesCount { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + var __ret = __Internal.GetNamespacesCount_0((__Instance + __PointerAdjustment)); + return __ret; } } - public string String + public uint EnumsCount { get { - var __ret = __Internal.String_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetString_0((__Instance + __PointerAdjustment), value); + var __ret = __Internal.GetEnumsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } - } - - public unsafe partial class Expression : global::CppSharp.Parser.AST.Statement, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 32)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; - - [FieldOffset(4)] - public global::System.IntPtr decl; - - [FieldOffset(8)] - public global::Std.BasicString.__Internal String; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Expression@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1Expression@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); - } - internal static new global::CppSharp.Parser.AST.Expression __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public uint FunctionsCount { - return new Expression(native.ToPointer(), skipVTables); + get + { + var __ret = __Internal.GetFunctionsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - internal static global::CppSharp.Parser.AST.Expression __CreateInstance(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) + public uint ClassesCount { - return new Expression(native, skipVTables); + get + { + var __ret = __Internal.GetClassesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - private static void* __CopyValue(global::CppSharp.Parser.AST.Expression.__Internal native) + public uint TemplatesCount { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); - global::CppSharp.Parser.AST.Expression.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + get + { + var __ret = __Internal.GetTemplatesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - private Expression(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public uint TypedefsCount { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + get + { + var __ret = __Internal.GetTypedefsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - protected Expression(void* native, bool skipVTables = false) - : base((void*) null) + public uint TypeAliasesCount { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + get + { + var __ret = __Internal.GetTypeAliasesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - public Expression(global::CppSharp.Parser.AST.Expression _0) - : this((void*) null) + public uint VariablesCount { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + get + { + var __ret = __Internal.GetVariablesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - public override void Dispose(bool disposing) + public uint FriendsCount { - global::CppSharp.Parser.AST.Statement __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + get + { + var __ret = __Internal.GetFriendsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } } - public unsafe partial class BinaryOperator : global::CppSharp.Parser.AST.Expression, IDisposable + public unsafe partial class RawComment : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 64)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 56)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + public global::CppSharp.Parser.AST.RawCommentKind kind; [FieldOffset(4)] - public global::System.IntPtr decl; - - [FieldOffset(8)] - public global::Std.BasicString.__Internal String; + public global::Std.BasicString.__Internal Text; - [FieldOffset(32)] - public global::System.IntPtr LHS; + [FieldOffset(28)] + public global::Std.BasicString.__Internal BriefText; - [FieldOffset(36)] - public global::System.IntPtr RHS; + [FieldOffset(52)] + public global::System.IntPtr fullCommentBlock; - [FieldOffset(40)] - public global::Std.BasicString.__Internal OpcodeStr; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0RawComment@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0BinaryOperator@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0RawComment@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1BinaryOperator@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1RawComment@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getOpcodeStr@BinaryOperator@AST@CppParser@CppSharp@@QAEPBDXZ")] - internal static extern global::System.IntPtr OpcodeStr_0(global::System.IntPtr instance); + EntryPoint="?getText@RawComment@AST@CppParser@CppSharp@@QAEPBDXZ")] + internal static extern global::System.IntPtr Text_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?setOpcodeStr@BinaryOperator@AST@CppParser@CppSharp@@QAEXPBD@Z")] - internal static extern void SetOpcodeStr_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="?setText@RawComment@AST@CppParser@CppSharp@@QAEXPBD@Z")] + internal static extern void SetText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getBriefText@RawComment@AST@CppParser@CppSharp@@QAEPBDXZ")] + internal static extern global::System.IntPtr BriefText_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?setBriefText@RawComment@AST@CppParser@CppSharp@@QAEXPBD@Z")] + internal static extern void SetBriefText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - internal static new global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new BinaryOperator(native.ToPointer(), skipVTables); + return new RawComment(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) { - return new BinaryOperator(native, skipVTables); + return new RawComment(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.BinaryOperator.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.RawComment.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); - global::CppSharp.Parser.AST.BinaryOperator.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); + global::CppSharp.Parser.AST.RawComment.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) + private RawComment(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected BinaryOperator(void* native, bool skipVTables = false) - : base((void*) null) + protected RawComment(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator _0) - : this((void*) null) + public RawComment() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public RawComment(global::CppSharp.Parser.AST.RawComment _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -6198,9 +6800,14 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Statement __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.RawComment __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -6208,443 +6815,555 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Expression LHS + public global::CppSharp.Parser.AST.RawCommentKind Kind { get { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS); - return __result0; + return ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind; } set { - ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind = value; } } - public global::CppSharp.Parser.AST.Expression RHS + public global::CppSharp.Parser.AST.FullComment FullCommentBlock { get { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS); + global::CppSharp.Parser.AST.FullComment __result0; + if (((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FullComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock)) + __result0 = (global::CppSharp.Parser.AST.FullComment) global::CppSharp.Parser.AST.FullComment.NativeToManagedMap[((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock]; + else __result0 = global::CppSharp.Parser.AST.FullComment.__CreateInstance(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock); return __result0; } set { - ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public string OpcodeStr + public string Text { get { - var __ret = __Internal.OpcodeStr_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.Text_0((__Instance + __PointerAdjustment)); return Marshal.PtrToStringAnsi(__ret); } set { - __Internal.SetOpcodeStr_0((__Instance + __PointerAdjustment), value); + __Internal.SetText_0((__Instance + __PointerAdjustment), value); + } + } + + public string BriefText + { + get + { + var __ret = __Internal.BriefText_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetBriefText_0((__Instance + __PointerAdjustment), value); } } } - public unsafe partial class CallExpr : global::CppSharp.Parser.AST.Expression, IDisposable + public unsafe partial class PreprocessedEntity : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 44)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 12)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + public global::CppSharp.Parser.AST.MacroLocation macroLocation; [FieldOffset(4)] - public global::System.IntPtr decl; + public global::System.IntPtr originalPtr; [FieldOffset(8)] - public global::Std.BasicString.__Internal String; - - [FieldOffset(32)] - internal global::Std.Vector.__Internal Arguments; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0CallExpr@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public global::CppSharp.Parser.AST.DeclarationKind kind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1CallExpr@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + EntryPoint="??0PreprocessedEntity@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getArguments@CallExpr@AST@CppParser@CppSharp@@QAEPAVExpression@234@I@Z")] - internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); + EntryPoint="??0PreprocessedEntity@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addArguments@CallExpr@AST@CppParser@CppSharp@@QAEXAAPAVExpression@234@@Z")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + public global::System.IntPtr __Instance { get; protected set; } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearArguments@CallExpr@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getArgumentsCount@CallExpr@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); - } + protected bool __ownsNativeInstance; - internal static new global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new CallExpr(native.ToPointer(), skipVTables); + return new PreprocessedEntity(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) { - return new CallExpr(native, skipVTables); + return new PreprocessedEntity(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.CallExpr.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); - global::CppSharp.Parser.AST.CallExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); + *(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) ret = native; return ret.ToPointer(); } - private CallExpr(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) + private PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected CallExpr(void* native, bool skipVTables = false) - : base((void*) null) + protected PreprocessedEntity(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public CallExpr(global::CppSharp.Parser.AST.CallExpr _0) - : this((void*) null) + public PreprocessedEntity() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) _0.__Instance); + } + + public void Dispose() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + Dispose(disposing: true); } - public override void Dispose(bool disposing) + public virtual void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Statement __dummy; + global::CppSharp.Parser.AST.PreprocessedEntity __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Expression GetArguments(uint i) + public global::CppSharp.Parser.AST.MacroLocation MacroLocation { - var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Expression __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); - return __result0; - } + get + { + return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation; + } - public void AddArguments(global::CppSharp.Parser.AST.Expression s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation = value; + } } - public void ClearArguments() + public global::System.IntPtr OriginalPtr { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + get + { + return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr; + } + + set + { + ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; + } } - public uint ArgumentsCount + public global::CppSharp.Parser.AST.DeclarationKind Kind { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind; + } + + set + { + ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind = value; } } } - public unsafe partial class CXXConstructExpr : global::CppSharp.Parser.AST.Expression, IDisposable + public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 44)] + [StructLayout(LayoutKind.Explicit, Size = 284)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public global::System.IntPtr decl; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::Std.BasicString.__Internal String; + public global::System.IntPtr _namespace; - [FieldOffset(32)] - internal global::Std.Vector.__Internal Arguments; + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(16)] + public int lineNumberStart; + + [FieldOffset(20)] + public int lineNumberEnd; + + [FieldOffset(24)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(48)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(72)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(96)] + public byte isIncomplete; + + [FieldOffset(97)] + public byte isDependent; + + [FieldOffset(98)] + public byte isImplicit; + + [FieldOffset(100)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(104)] + public uint definitionOrder; + + [FieldOffset(108)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] + public global::System.IntPtr originalPtr; + + [FieldOffset(136)] + public global::System.IntPtr comment; + + [FieldOffset(140)] + internal global::Std.Vector.__Internal Namespaces; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal Enums; + + [FieldOffset(164)] + internal global::Std.Vector.__Internal Functions; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Classes; + + [FieldOffset(188)] + internal global::Std.Vector.__Internal Templates; + + [FieldOffset(200)] + internal global::Std.Vector.__Internal Typedefs; + + [FieldOffset(212)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(224)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(236)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(248)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(256)] + public byte isAnonymous; + + [FieldOffset(260)] + public global::CppSharp.Parser.AST.Enumeration.EnumModifiers modifiers; + + [FieldOffset(264)] + public global::System.IntPtr type; + + [FieldOffset(268)] + public global::System.IntPtr builtinType; + + [FieldOffset(272)] + internal global::Std.Vector.__Internal Items; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0CXXConstructExpr@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0Enumeration@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0Enumeration@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1CXXConstructExpr@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1Enumeration@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getArguments@CXXConstructExpr@AST@CppParser@CppSharp@@QAEPAVExpression@234@I@Z")] - internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); + EntryPoint="?getItems@Enumeration@AST@CppParser@CppSharp@@QAEPAVItem@1234@I@Z")] + internal static extern global::System.IntPtr GetItems_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addArguments@CXXConstructExpr@AST@CppParser@CppSharp@@QAEXAAPAVExpression@234@@Z")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="?addItems@Enumeration@AST@CppParser@CppSharp@@QAEXAAPAVItem@1234@@Z")] + internal static extern void AddItems_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearArguments@CXXConstructExpr@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="?clearItems@Enumeration@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearItems_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getArgumentsCount@CXXConstructExpr@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + EntryPoint="?getItemsCount@Enumeration@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetItemsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [Flags] + public enum EnumModifiers { - return new CXXConstructExpr(native.ToPointer(), skipVTables); + Anonymous = 1, + Scoped = 2, + Flags = 4 } - internal static global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) + public unsafe partial class Item : global::CppSharp.Parser.AST.Declaration, IDisposable { - return new CXXConstructExpr(native, skipVTables); - } + [StructLayout(LayoutKind.Explicit, Size = 176)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; - private static void* __CopyValue(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); - global::CppSharp.Parser.AST.CXXConstructExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; - private CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [FieldOffset(8)] + public global::System.IntPtr _namespace; - protected CXXConstructExpr(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - public CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(16)] + public int lineNumberStart; - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Statement __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } + [FieldOffset(20)] + public int lineNumberEnd; + + [FieldOffset(24)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(48)] + public global::Std.BasicString.__Internal USR; - public global::CppSharp.Parser.AST.Expression GetArguments(uint i) - { - var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Expression __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(72)] + public global::Std.BasicString.__Internal DebugText; - public void AddArguments(global::CppSharp.Parser.AST.Expression s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(96)] + public byte isIncomplete; - public void ClearArguments() - { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(97)] + public byte isDependent; - public uint ArgumentsCount - { - get - { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - } + [FieldOffset(98)] + public byte isImplicit; - public unsafe partial class Parameter : global::CppSharp.Parser.AST.Declaration, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 148)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + [FieldOffset(100)] + public global::System.IntPtr completeDeclaration; - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + [FieldOffset(104)] + public uint definitionOrder; - [FieldOffset(8)] - public global::System.IntPtr _namespace; + [FieldOffset(108)] + internal global::Std.Vector.__Internal PreprocessedEntities; - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; + [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; - [FieldOffset(16)] - public int lineNumberStart; + [FieldOffset(132)] + public global::System.IntPtr originalPtr; - [FieldOffset(20)] - public int lineNumberEnd; + [FieldOffset(136)] + public global::System.IntPtr comment; - [FieldOffset(24)] - public global::Std.BasicString.__Internal Name; + [FieldOffset(140)] + public global::Std.BasicString.__Internal Expression; - [FieldOffset(48)] - public global::Std.BasicString.__Internal USR; + [FieldOffset(168)] + public ulong value; - [FieldOffset(72)] - public global::Std.BasicString.__Internal DebugText; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0Item@Enumeration@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - [FieldOffset(96)] - public byte isIncomplete; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0Item@Enumeration@AST@CppParser@CppSharp@@QAE@ABV01234@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(97)] - public byte isDependent; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??1Item@Enumeration@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); - [FieldOffset(98)] - public byte isImplicit; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getExpression@Item@Enumeration@AST@CppParser@CppSharp@@QAEPBDXZ")] + internal static extern global::System.IntPtr Expression_0(global::System.IntPtr instance); - [FieldOffset(100)] - public global::System.IntPtr completeDeclaration; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?setExpression@Item@Enumeration@AST@CppParser@CppSharp@@QAEXPBD@Z")] + internal static extern void SetExpression_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + } - [FieldOffset(104)] - public uint definitionOrder; + internal static new global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Item(native.ToPointer(), skipVTables); + } - [FieldOffset(108)] - internal global::Std.Vector.__Internal PreprocessedEntities; + internal static global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) + { + return new Item(native, skipVTables); + } - [FieldOffset(120)] - public global::System.IntPtr originalPtr; + private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); + global::CppSharp.Parser.AST.Enumeration.Item.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [FieldOffset(124)] - public global::System.IntPtr comment; + private Item(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [FieldOffset(128)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + protected Item(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [FieldOffset(136)] - public byte isIndirect; + public Item() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(137)] - public byte hasDefaultValue; + public Item(global::CppSharp.Parser.AST.Enumeration.Item _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(140)] - public uint index; + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - [FieldOffset(144)] - public global::System.IntPtr defaultArgument; + public ulong Value + { + get + { + return ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Parameter@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Parameter@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public string Expression + { + get + { + var __ret = __Internal.Expression_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1Parameter@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + set + { + __Internal.SetExpression_0((__Instance + __PointerAdjustment), value); + } + } } - internal static new global::CppSharp.Parser.AST.Parameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Parameter(native.ToPointer(), skipVTables); + return new Enumeration(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Parameter __CreateInstance(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) { - return new Parameter(native, skipVTables); + return new Enumeration(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Parameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); - global::CppSharp.Parser.AST.Parameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + global::CppSharp.Parser.AST.Enumeration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Parameter(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) + private Enumeration(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Parameter(void* native, bool skipVTables = false) + protected Enumeration(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -6653,19 +7372,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Parameter() + public Enumeration() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Parameter(global::CppSharp.Parser.AST.Parameter _0) + public Enumeration(global::CppSharp.Parser.AST.Enumeration _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -6684,80 +7403,92 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public global::CppSharp.Parser.AST.Enumeration.Item GetItems(uint i) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType); - } + var __ret = __Internal.GetItems_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Enumeration.Item __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Enumeration.Item) global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Enumeration.Item.__CreateInstance(__ret); + return __result0; + } - set - { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + public void AddItems(global::CppSharp.Parser.AST.Enumeration.Item s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddItems_0((__Instance + __PointerAdjustment), __arg0); } - public bool IsIndirect + public void ClearItems() + { + __Internal.ClearItems_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.Enumeration.EnumModifiers Modifiers { get { - return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect != 0; + return ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers; } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers = value; } } - public bool HasDefaultValue + public global::CppSharp.Parser.AST.Type Type { get { - return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue != 0; + global::CppSharp.Parser.AST.Type __result0; + if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type)) + __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type]; + else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type); + return __result0; } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public uint Index + public global::CppSharp.Parser.AST.BuiltinType BuiltinType { get { - return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index; + global::CppSharp.Parser.AST.BuiltinType __result0; + if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType)) + __result0 = (global::CppSharp.Parser.AST.BuiltinType) global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType]; + else __result0 = global::CppSharp.Parser.AST.BuiltinType.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType); + return __result0; } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index = value; + ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public global::CppSharp.Parser.AST.Expression DefaultArgument + public uint ItemsCount { get { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + var __ret = __Internal.GetItemsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } public unsafe partial class Function : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 256)] + [StructLayout(LayoutKind.Explicit, Size = 268)] public new partial struct __Internal { [FieldOffset(0)] @@ -6806,63 +7537,66 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] public global::System.IntPtr originalPtr; - [FieldOffset(124)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(128)] + [FieldOffset(140)] public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(136)] + [FieldOffset(148)] public byte isReturnIndirect; - [FieldOffset(137)] + [FieldOffset(149)] public byte hasThisReturn; - [FieldOffset(138)] + [FieldOffset(150)] public byte isConstExpr; - [FieldOffset(139)] + [FieldOffset(151)] public byte isVariadic; - [FieldOffset(140)] + [FieldOffset(152)] public byte isInline; - [FieldOffset(141)] + [FieldOffset(153)] public byte isPure; - [FieldOffset(142)] + [FieldOffset(154)] public byte isDeleted; - [FieldOffset(144)] + [FieldOffset(156)] public global::CppSharp.Parser.AST.FriendKind friendKind; - [FieldOffset(148)] + [FieldOffset(160)] public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - [FieldOffset(152)] + [FieldOffset(164)] public global::Std.BasicString.__Internal Mangled; - [FieldOffset(176)] + [FieldOffset(188)] public global::Std.BasicString.__Internal Signature; - [FieldOffset(200)] + [FieldOffset(212)] public global::Std.BasicString.__Internal Body; - [FieldOffset(224)] + [FieldOffset(236)] public global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(228)] + [FieldOffset(240)] internal global::Std.Vector.__Internal Parameters; - [FieldOffset(240)] + [FieldOffset(252)] public global::System.IntPtr specializationInfo; - [FieldOffset(244)] + [FieldOffset(256)] public global::System.IntPtr instantiatedFrom; - [FieldOffset(248)] + [FieldOffset(260)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] @@ -7263,9 +7997,9 @@ namespace CppSharp } } - public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable + public unsafe partial class TypedefDecl : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 284)] + [StructLayout(LayoutKind.Explicit, Size = 148)] public new partial struct __Internal { [FieldOffset(0)] @@ -7314,139 +8048,204 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] public global::System.IntPtr originalPtr; - [FieldOffset(124)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(128)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; + [FieldOffset(140)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(136)] - public byte isReturnIndirect; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0TypedefDecl@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - [FieldOffset(137)] - public byte hasThisReturn; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0TypedefDecl@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(138)] - public byte isConstExpr; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??1TypedefDecl@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); + } - [FieldOffset(139)] - public byte isVariadic; + internal static new global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new TypedefDecl(native.ToPointer(), skipVTables); + } - [FieldOffset(140)] - public byte isInline; + internal static global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) + { + return new TypedefDecl(native, skipVTables); + } - [FieldOffset(141)] - public byte isPure; + private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefDecl.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + global::CppSharp.Parser.AST.TypedefDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [FieldOffset(142)] - public byte isDeleted; + private TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [FieldOffset(144)] - public global::CppSharp.Parser.AST.FriendKind friendKind; + protected TypedefDecl(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [FieldOffset(148)] - public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; + public TypedefDecl() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(152)] - public global::Std.BasicString.__Internal Mangled; + public TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(176)] - public global::Std.BasicString.__Internal Signature; + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + } - [FieldOffset(200)] - public global::Std.BasicString.__Internal Body; + public unsafe partial class TypeAlias : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 152)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; - [FieldOffset(224)] - public global::CppSharp.Parser.AST.CallingConvention callingConvention; + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; - [FieldOffset(228)] - internal global::Std.Vector.__Internal Parameters; + [FieldOffset(8)] + public global::System.IntPtr _namespace; - [FieldOffset(240)] - public global::System.IntPtr specializationInfo; + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - [FieldOffset(244)] - public global::System.IntPtr instantiatedFrom; + [FieldOffset(16)] + public int lineNumberStart; - [FieldOffset(248)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(20)] + public int lineNumberEnd; - [FieldOffset(256)] - public byte isVirtual; + [FieldOffset(24)] + public global::Std.BasicString.__Internal Name; - [FieldOffset(257)] - public byte isStatic; + [FieldOffset(48)] + public global::Std.BasicString.__Internal USR; - [FieldOffset(258)] - public byte isConst; + [FieldOffset(72)] + public global::Std.BasicString.__Internal DebugText; - [FieldOffset(259)] - public byte isExplicit; + [FieldOffset(96)] + public byte isIncomplete; - [FieldOffset(260)] - public byte isOverride; + [FieldOffset(97)] + public byte isDependent; - [FieldOffset(264)] - public global::CppSharp.Parser.AST.CXXMethodKind methodKind; + [FieldOffset(98)] + public byte isImplicit; - [FieldOffset(268)] - public byte isDefaultConstructor; + [FieldOffset(100)] + public global::System.IntPtr completeDeclaration; - [FieldOffset(269)] - public byte isCopyConstructor; + [FieldOffset(104)] + public uint definitionOrder; - [FieldOffset(270)] - public byte isMoveConstructor; + [FieldOffset(108)] + internal global::Std.Vector.__Internal PreprocessedEntities; - [FieldOffset(272)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; + [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; - [FieldOffset(280)] - public global::CppSharp.Parser.AST.RefQualifierKind refQualifier; + [FieldOffset(132)] + public global::System.IntPtr originalPtr; + + [FieldOffset(136)] + public global::System.IntPtr comment; + + [FieldOffset(140)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(148)] + public global::System.IntPtr describedAliasTemplate; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Method@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0TypeAlias@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Method@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0TypeAlias@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1Method@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1TypeAlias@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Method(native.ToPointer(), skipVTables); + return new TypeAlias(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Method __CreateInstance(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) { - return new Method(native, skipVTables); + return new TypeAlias(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Method.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAlias.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); - global::CppSharp.Parser.AST.Method.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); + global::CppSharp.Parser.AST.TypeAlias.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Method(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) + private TypeAlias(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Method(void* native, bool skipVTables = false) + protected TypeAlias(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -7455,19 +8254,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Method() + public TypeAlias() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Method(global::CppSharp.Parser.AST.Method _0) + public TypeAlias(global::CppSharp.Parser.AST.TypeAlias _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -7486,153 +8285,28 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public bool IsVirtual - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); - } - } - - public bool IsStatic - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic = (byte) (value ? 1 : 0); - } - } - - public bool IsConst - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst = (byte) (value ? 1 : 0); - } - } - - public bool IsExplicit - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit = (byte) (value ? 1 : 0); - } - } - - public bool IsOverride - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride = (byte) (value ? 1 : 0); - } - } - - public global::CppSharp.Parser.AST.CXXMethodKind MethodKind - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind = value; - } - } - - public bool IsDefaultConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor = (byte) (value ? 1 : 0); - } - } - - public bool IsCopyConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor = (byte) (value ? 1 : 0); - } - } - - public bool IsMoveConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor = (byte) (value ? 1 : 0); - } - } - - public global::CppSharp.Parser.AST.QualifiedType ConversionType - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType); - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.RefQualifierKind RefQualifier + public global::CppSharp.Parser.AST.TypeAliasTemplate DescribedAliasTemplate { get { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier; + global::CppSharp.Parser.AST.TypeAliasTemplate __result0; + if (((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate)) + __result0 = (global::CppSharp.Parser.AST.TypeAliasTemplate) global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate]; + else __result0 = global::CppSharp.Parser.AST.TypeAliasTemplate.__CreateInstance(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate); + return __result0; } set { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value; + ((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + public unsafe partial class Namespace : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 272)] + [StructLayout(LayoutKind.Explicit, Size = 264)] public new partial struct __Internal { [FieldOffset(0)] @@ -7681,305 +8355,250 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] public global::System.IntPtr originalPtr; - [FieldOffset(124)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(128)] - internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(140)] - internal global::Std.Vector.__Internal Enums; + internal global::Std.Vector.__Internal Namespaces; [FieldOffset(152)] - internal global::Std.Vector.__Internal Functions; + internal global::Std.Vector.__Internal Enums; [FieldOffset(164)] - internal global::Std.Vector.__Internal Classes; + internal global::Std.Vector.__Internal Functions; [FieldOffset(176)] - internal global::Std.Vector.__Internal Templates; + internal global::Std.Vector.__Internal Classes; [FieldOffset(188)] - internal global::Std.Vector.__Internal Typedefs; + internal global::Std.Vector.__Internal Templates; [FieldOffset(200)] - internal global::Std.Vector.__Internal TypeAliases; + internal global::Std.Vector.__Internal Typedefs; [FieldOffset(212)] - internal global::Std.Vector.__Internal Variables; + internal global::Std.Vector.__Internal TypeAliases; [FieldOffset(224)] - internal global::Std.Vector.__Internal Friends; + internal global::Std.Vector.__Internal Variables; [FieldOffset(236)] - internal global::Std.Map.__Internal anonymous; - - [FieldOffset(244)] - public byte isAnonymous; + internal global::Std.Vector.__Internal Friends; [FieldOffset(248)] - public global::CppSharp.Parser.AST.Enumeration.EnumModifiers modifiers; - - [FieldOffset(252)] - public global::System.IntPtr type; + internal global::Std.Map.__Internal anonymous; [FieldOffset(256)] - public global::System.IntPtr builtinType; + public byte isAnonymous; [FieldOffset(260)] - internal global::Std.Vector.__Internal Items; + public byte isInline; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Enumeration@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0Namespace@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Enumeration@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0Namespace@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1Enumeration@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1Namespace@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getItems@Enumeration@AST@CppParser@CppSharp@@QAEPAVItem@1234@I@Z")] - internal static extern global::System.IntPtr GetItems_0(global::System.IntPtr instance, uint i); + internal static new global::CppSharp.Parser.AST.Namespace __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Namespace(native.ToPointer(), skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addItems@Enumeration@AST@CppParser@CppSharp@@QAEXAAPAVItem@1234@@Z")] - internal static extern void AddItems_0(global::System.IntPtr instance, global::System.IntPtr s); + internal static global::CppSharp.Parser.AST.Namespace __CreateInstance(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + { + return new Namespace(native, skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearItems@Enumeration@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearItems_0(global::System.IntPtr instance); + private static void* __CopyValue(global::CppSharp.Parser.AST.Namespace.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + global::CppSharp.Parser.AST.Namespace.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private Namespace(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected Namespace(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public Namespace() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getItemsCount@Enumeration@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetItemsCount_0(global::System.IntPtr instance); + public Namespace(global::CppSharp.Parser.AST.Namespace _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - [Flags] - public enum EnumModifiers + public override void Dispose(bool disposing) { - Anonymous = 1, - Scoped = 2, - Flags = 4 + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public unsafe partial class Item : global::CppSharp.Parser.AST.Declaration, IDisposable + public bool IsInline { - [StructLayout(LayoutKind.Explicit, Size = 160)] - public new partial struct __Internal + get { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(16)] - public int lineNumberStart; - - [FieldOffset(20)] - public int lineNumberEnd; - - [FieldOffset(24)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(48)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(72)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(96)] - public byte isIncomplete; - - [FieldOffset(97)] - public byte isDependent; - - [FieldOffset(98)] - public byte isImplicit; + return ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline != 0; + } - [FieldOffset(100)] - public global::System.IntPtr completeDeclaration; + set + { + ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline = (byte) (value ? 1 : 0); + } + } + } - [FieldOffset(104)] - public uint definitionOrder; + public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Template, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 156)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; - [FieldOffset(108)] - internal global::Std.Vector.__Internal PreprocessedEntities; + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; - [FieldOffset(120)] - public global::System.IntPtr originalPtr; + [FieldOffset(8)] + public global::System.IntPtr _namespace; - [FieldOffset(124)] - public global::System.IntPtr comment; + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - [FieldOffset(128)] - public global::Std.BasicString.__Internal Expression; + [FieldOffset(16)] + public int lineNumberStart; - [FieldOffset(152)] - public ulong value; + [FieldOffset(20)] + public int lineNumberEnd; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Item@Enumeration@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + [FieldOffset(24)] + public global::Std.BasicString.__Internal Name; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Item@Enumeration@AST@CppParser@CppSharp@@QAE@ABV01234@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(48)] + public global::Std.BasicString.__Internal USR; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1Item@Enumeration@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + [FieldOffset(72)] + public global::Std.BasicString.__Internal DebugText; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getExpression@Item@Enumeration@AST@CppParser@CppSharp@@QAEPBDXZ")] - internal static extern global::System.IntPtr Expression_0(global::System.IntPtr instance); + [FieldOffset(96)] + public byte isIncomplete; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?setExpression@Item@Enumeration@AST@CppParser@CppSharp@@QAEXPBD@Z")] - internal static extern void SetExpression_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - } + [FieldOffset(97)] + public byte isDependent; - internal static new global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new Item(native.ToPointer(), skipVTables); - } + [FieldOffset(98)] + public byte isImplicit; - internal static global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) - { - return new Item(native, skipVTables); - } + [FieldOffset(100)] + public global::System.IntPtr completeDeclaration; - private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); - global::CppSharp.Parser.AST.Enumeration.Item.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [FieldOffset(104)] + public uint definitionOrder; - private Item(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [FieldOffset(108)] + internal global::Std.Vector.__Internal PreprocessedEntities; - protected Item(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; - public Item() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(132)] + public global::System.IntPtr originalPtr; - public Item(global::CppSharp.Parser.AST.Enumeration.Item _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(136)] + public global::System.IntPtr comment; - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } + [FieldOffset(140)] + public global::System.IntPtr TemplatedDecl; - public ulong Value - { - get - { - return ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value; - } + [FieldOffset(144)] + internal global::Std.Vector.__Internal Parameters; - set - { - ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value = value; - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0TypeAliasTemplate@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - public string Expression - { - get - { - var __ret = __Internal.Expression_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0TypeAliasTemplate@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - set - { - __Internal.SetExpression_0((__Instance + __PointerAdjustment), value); - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??1TypeAliasTemplate@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Enumeration(native.ToPointer(), skipVTables); + return new TypeAliasTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) { - return new Enumeration(native, skipVTables); + return new TypeAliasTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); - global::CppSharp.Parser.AST.Enumeration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); + global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Enumeration(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) + private TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Enumeration(void* native, bool skipVTables = false) + protected TypeAliasTemplate(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -7988,19 +8607,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Enumeration() + public TypeAliasTemplate() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Enumeration(global::CppSharp.Parser.AST.Enumeration _0) + public TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8018,93 +8637,11 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - - public global::CppSharp.Parser.AST.Enumeration.Item GetItems(uint i) - { - var __ret = __Internal.GetItems_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Enumeration.Item __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Enumeration.Item) global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Enumeration.Item.__CreateInstance(__ret); - return __result0; - } - - public void AddItems(global::CppSharp.Parser.AST.Enumeration.Item s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddItems_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearItems() - { - __Internal.ClearItems_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.Enumeration.EnumModifiers Modifiers - { - get - { - return ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers; - } - - set - { - ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers = value; - } - } - - public global::CppSharp.Parser.AST.Type Type - { - get - { - global::CppSharp.Parser.AST.Type __result0; - if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type)) - __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type]; - else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public global::CppSharp.Parser.AST.BuiltinType BuiltinType - { - get - { - global::CppSharp.Parser.AST.BuiltinType __result0; - if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType)) - __result0 = (global::CppSharp.Parser.AST.BuiltinType) global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType]; - else __result0 = global::CppSharp.Parser.AST.BuiltinType.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public uint ItemsCount - { - get - { - var __ret = __Internal.GetItemsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } } - public unsafe partial class Variable : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class ClassTemplate : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 160)] + [StructLayout(LayoutKind.Explicit, Size = 168)] public new partial struct __Internal { [FieldOffset(0)] @@ -8153,68 +8690,84 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] public global::System.IntPtr originalPtr; - [FieldOffset(124)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(128)] - public global::Std.BasicString.__Internal Mangled; + [FieldOffset(140)] + public global::System.IntPtr TemplatedDecl; - [FieldOffset(152)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(144)] + internal global::Std.Vector.__Internal Parameters; + + [FieldOffset(156)] + internal global::Std.Vector.__Internal Specializations; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Variable@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0ClassTemplate@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Variable@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0ClassTemplate@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1Variable@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1ClassTemplate@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getMangled@Variable@AST@CppParser@CppSharp@@QAEPBDXZ")] - internal static extern global::System.IntPtr Mangled_0(global::System.IntPtr instance); + EntryPoint="?getSpecializations@ClassTemplate@AST@CppParser@CppSharp@@QAEPAVClassTemplateSpecialization@234@I@Z")] + internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?setMangled@Variable@AST@CppParser@CppSharp@@QAEXPBD@Z")] - internal static extern void SetMangled_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="?addSpecializations@ClassTemplate@AST@CppParser@CppSharp@@QAEXAAPAVClassTemplateSpecialization@234@@Z")] + internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearSpecializations@ClassTemplate@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getSpecializationsCount@ClassTemplate@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Variable __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Variable(native.ToPointer(), skipVTables); + return new ClassTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Variable __CreateInstance(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) { - return new Variable(native, skipVTables); + return new ClassTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Variable.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); - global::CppSharp.Parser.AST.Variable.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); + global::CppSharp.Parser.AST.ClassTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Variable(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) + private ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Variable(void* native, bool skipVTables = false) + protected ClassTemplate(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -8223,19 +8776,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Variable() + public ClassTemplate() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Variable(global::CppSharp.Parser.AST.Variable _0) + public ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8254,191 +8807,245 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public global::CppSharp.Parser.AST.ClassTemplateSpecialization GetSpecializations(uint i) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType); - } + var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.ClassTemplateSpecialization __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.ClassTemplateSpecialization) global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.ClassTemplateSpecialization.__CreateInstance(__ret); + return __result0; + } - set - { - ((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + public void AddSpecializations(global::CppSharp.Parser.AST.ClassTemplateSpecialization s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); } - public string Mangled + public void ClearSpecializations() { - get - { - var __ret = __Internal.Mangled_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } + __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); + } - set + public uint SpecializationsCount + { + get { - __Internal.SetMangled_0((__Instance + __PointerAdjustment), value); + var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class BaseClassSpecifier : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 16)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public unsafe partial class FunctionTemplate : global::CppSharp.Parser.AST.Template, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 168)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; + + [FieldOffset(8)] + public global::System.IntPtr _namespace; + + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(16)] + public int lineNumberStart; + + [FieldOffset(20)] + public int lineNumberEnd; + + [FieldOffset(24)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(48)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(72)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(96)] + public byte isIncomplete; + + [FieldOffset(97)] + public byte isDependent; + + [FieldOffset(98)] + public byte isImplicit; + + [FieldOffset(100)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(104)] + public uint definitionOrder; + + [FieldOffset(108)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] + public global::System.IntPtr originalPtr; + + [FieldOffset(136)] + public global::System.IntPtr comment; - [FieldOffset(4)] - public byte isVirtual; + [FieldOffset(140)] + public global::System.IntPtr TemplatedDecl; - [FieldOffset(8)] - public global::System.IntPtr type; + [FieldOffset(144)] + internal global::Std.Vector.__Internal Parameters; - [FieldOffset(12)] - public int offset; + [FieldOffset(156)] + internal global::Std.Vector.__Internal Specializations; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0BaseClassSpecifier@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0FunctionTemplate@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0BaseClassSpecifier@AST@CppParser@CppSharp@@QAE@ABU0123@@Z")] + EntryPoint="??0FunctionTemplate@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??1FunctionTemplate@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getSpecializations@FunctionTemplate@AST@CppParser@CppSharp@@QAEPAVFunctionTemplateSpecialization@234@I@Z")] + internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addSpecializations@FunctionTemplate@AST@CppParser@CppSharp@@QAEXAAPAVFunctionTemplateSpecialization@234@@Z")] + internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); - internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearSpecializations@FunctionTemplate@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getSpecializationsCount@FunctionTemplate@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new BaseClassSpecifier(native.ToPointer(), skipVTables); + return new FunctionTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) { - return new BaseClassSpecifier(native, skipVTables); + return new FunctionTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); - *(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) ret = native; + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); + global::CppSharp.Parser.AST.FunctionTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) + private FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected BaseClassSpecifier(void* native, bool skipVTables = false) + protected FunctionTemplate(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public BaseClassSpecifier() + public FunctionTemplate() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier _0) + public FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.BaseClassSpecifier __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.AccessSpecifier Access + public global::CppSharp.Parser.AST.FunctionTemplateSpecialization GetSpecializations(uint i) { - get - { - return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access = value; - } + var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.FunctionTemplateSpecialization __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.FunctionTemplateSpecialization) global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__CreateInstance(__ret); + return __result0; } - public bool IsVirtual + public void AddSpecializations(global::CppSharp.Parser.AST.FunctionTemplateSpecialization s) { - get - { - return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual != 0; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.Type Type + public void ClearSpecializations() { - get - { - global::CppSharp.Parser.AST.Type __result0; - if (((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type)) - __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type]; - else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); } - public int Offset + public uint SpecializationsCount { get { - return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset = value; + var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class Field : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class Variable : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 148)] + [StructLayout(LayoutKind.Explicit, Size = 172)] public new partial struct __Internal { [FieldOffset(0)] @@ -8487,64 +9094,71 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(120)] - public global::System.IntPtr originalPtr; - - [FieldOffset(124)] - public global::System.IntPtr comment; + internal global::Std.Vector.__Internal Redeclarations; - [FieldOffset(128)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(132)] + public global::System.IntPtr originalPtr; [FieldOffset(136)] - public global::System.IntPtr _class; + public global::System.IntPtr comment; [FieldOffset(140)] - public byte isBitField; + public global::Std.BasicString.__Internal Mangled; - [FieldOffset(144)] - public uint bitWidth; + [FieldOffset(164)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Field@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0Variable@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Field@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0Variable@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1Field@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1Variable@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getMangled@Variable@AST@CppParser@CppSharp@@QAEPBDXZ")] + internal static extern global::System.IntPtr Mangled_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?setMangled@Variable@AST@CppParser@CppSharp@@QAEXPBD@Z")] + internal static extern void SetMangled_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - internal static new global::CppSharp.Parser.AST.Field __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Variable __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Field(native.ToPointer(), skipVTables); + return new Variable(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Field __CreateInstance(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Variable __CreateInstance(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) { - return new Field(native, skipVTables); + return new Variable(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Field.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Variable.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); - global::CppSharp.Parser.AST.Field.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); + global::CppSharp.Parser.AST.Variable.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Field(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) + private Variable(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Field(void* native, bool skipVTables = false) + protected Variable(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -8553,19 +9167,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Field() + public Variable() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Field(global::CppSharp.Parser.AST.Field _0) + public Variable(global::CppSharp.Parser.AST.Variable _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8575,76 +9189,46 @@ namespace CppSharp } public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.QualifiedType QualifiedType - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.Class Class - { - get - { - global::CppSharp.Parser.AST.Class __result0; - if (((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public bool IsBitField + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField != 0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public uint BitWidth + public string Mangled { get { - return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth; + var __ret = __Internal.Mangled_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth = value; + __Internal.SetMangled_0((__Instance + __PointerAdjustment), value); } } } - public unsafe partial class AccessSpecifierDecl : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class Friend : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 128)] + [StructLayout(LayoutKind.Explicit, Size = 144)] public new partial struct __Internal { [FieldOffset(0)] @@ -8693,52 +9277,58 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] public global::System.IntPtr originalPtr; - [FieldOffset(124)] + [FieldOffset(136)] public global::System.IntPtr comment; + [FieldOffset(140)] + public global::System.IntPtr declaration; + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0AccessSpecifierDecl@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0Friend@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0AccessSpecifierDecl@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0Friend@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1AccessSpecifierDecl@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1Friend@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Friend __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new AccessSpecifierDecl(native.ToPointer(), skipVTables); + return new Friend(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Friend __CreateInstance(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) { - return new AccessSpecifierDecl(native, skipVTables); + return new Friend(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Friend.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); - global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); + global::CppSharp.Parser.AST.Friend.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) + private Friend(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected AccessSpecifierDecl(void* native, bool skipVTables = false) + protected Friend(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -8747,19 +9337,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public AccessSpecifierDecl() + public Friend() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl _0) + public Friend(global::CppSharp.Parser.AST.Friend _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8777,263 +9367,222 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + + public global::CppSharp.Parser.AST.Declaration Declaration + { + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } } - public unsafe partial class Class : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + public unsafe partial class Statement : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 312)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 32)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.StatementClass _class; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::System.IntPtr decl; [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(16)] - public int lineNumberStart; - - [FieldOffset(20)] - public int lineNumberEnd; - - [FieldOffset(24)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(48)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(72)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(96)] - public byte isIncomplete; - - [FieldOffset(97)] - public byte isDependent; - - [FieldOffset(98)] - public byte isImplicit; - - [FieldOffset(100)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(104)] - public uint definitionOrder; - - [FieldOffset(108)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(120)] - public global::System.IntPtr originalPtr; - - [FieldOffset(124)] - public global::System.IntPtr comment; - - [FieldOffset(128)] - internal global::Std.Vector.__Internal Namespaces; - - [FieldOffset(140)] - internal global::Std.Vector.__Internal Enums; - - [FieldOffset(152)] - internal global::Std.Vector.__Internal Functions; - - [FieldOffset(164)] - internal global::Std.Vector.__Internal Classes; - - [FieldOffset(176)] - internal global::Std.Vector.__Internal Templates; - - [FieldOffset(188)] - internal global::Std.Vector.__Internal Typedefs; - - [FieldOffset(200)] - internal global::Std.Vector.__Internal TypeAliases; - - [FieldOffset(212)] - internal global::Std.Vector.__Internal Variables; - - [FieldOffset(224)] - internal global::Std.Vector.__Internal Friends; - - [FieldOffset(236)] - internal global::Std.Map.__Internal anonymous; - - [FieldOffset(244)] - public byte isAnonymous; - - [FieldOffset(248)] - internal global::Std.Vector.__Internal Bases; - - [FieldOffset(260)] - internal global::Std.Vector.__Internal Fields; - - [FieldOffset(272)] - internal global::Std.Vector.__Internal Methods; - - [FieldOffset(284)] - internal global::Std.Vector.__Internal Specifiers; - - [FieldOffset(296)] - public byte isPOD; - - [FieldOffset(297)] - public byte isAbstract; - - [FieldOffset(298)] - public byte isUnion; - - [FieldOffset(299)] - public byte isDynamic; - - [FieldOffset(300)] - public byte isPolymorphic; - - [FieldOffset(301)] - public byte hasNonTrivialDefaultConstructor; - - [FieldOffset(302)] - public byte hasNonTrivialCopyConstructor; - - [FieldOffset(303)] - public byte hasNonTrivialDestructor; - - [FieldOffset(304)] - public byte isExternCContext; - - [FieldOffset(305)] - public byte isInjected; - - [FieldOffset(308)] - public global::System.IntPtr layout; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Class@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + public global::Std.BasicString.__Internal String; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Class@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0Statement@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1Class@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1Statement@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getBases@Class@AST@CppParser@CppSharp@@QAEPAUBaseClassSpecifier@234@I@Z")] - internal static extern global::System.IntPtr GetBases_0(global::System.IntPtr instance, uint i); + EntryPoint="?getString@Statement@AST@CppParser@CppSharp@@QAEPBDXZ")] + internal static extern global::System.IntPtr String_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addBases@Class@AST@CppParser@CppSharp@@QAEXAAPAUBaseClassSpecifier@234@@Z")] - internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="?setString@Statement@AST@CppParser@CppSharp@@QAEXPBD@Z")] + internal static extern void SetString_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearBases@Class@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearBases_0(global::System.IntPtr instance); + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Statement(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + { + return new Statement(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.Statement.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); + global::CppSharp.Parser.AST.Statement.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private Statement(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected Statement(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getFields@Class@AST@CppParser@CppSharp@@QAEPAVField@234@I@Z")] - internal static extern global::System.IntPtr GetFields_0(global::System.IntPtr instance, uint i); + public Statement(global::CppSharp.Parser.AST.Statement _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addFields@Class@AST@CppParser@CppSharp@@QAEXAAPAVField@234@@Z")] - internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); + public void Dispose() + { + Dispose(disposing: true); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearFields@Class@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearFields_0(global::System.IntPtr instance); + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Statement __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getMethods@Class@AST@CppParser@CppSharp@@QAEPAVMethod@234@I@Z")] - internal static extern global::System.IntPtr GetMethods_0(global::System.IntPtr instance, uint i); + public global::CppSharp.Parser.AST.StatementClass Class + { + get + { + return ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addMethods@Class@AST@CppParser@CppSharp@@QAEXAAPAVMethod@234@@Z")] - internal static extern void AddMethods_0(global::System.IntPtr instance, global::System.IntPtr s); + set + { + ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearMethods@Class@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearMethods_0(global::System.IntPtr instance); + public global::CppSharp.Parser.AST.Declaration Decl + { + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl); + return __result0; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getSpecifiers@Class@AST@CppParser@CppSharp@@QAEPAVAccessSpecifierDecl@234@I@Z")] - internal static extern global::System.IntPtr GetSpecifiers_0(global::System.IntPtr instance, uint i); + set + { + ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addSpecifiers@Class@AST@CppParser@CppSharp@@QAEXAAPAVAccessSpecifierDecl@234@@Z")] - internal static extern void AddSpecifiers_0(global::System.IntPtr instance, global::System.IntPtr s); + public string String + { + get + { + var __ret = __Internal.String_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearSpecifiers@Class@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearSpecifiers_0(global::System.IntPtr instance); + set + { + __Internal.SetString_0((__Instance + __PointerAdjustment), value); + } + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getBasesCount@Class@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetBasesCount_0(global::System.IntPtr instance); + public unsafe partial class Expression : global::CppSharp.Parser.AST.Statement, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 32)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getFieldsCount@Class@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); + [FieldOffset(4)] + public global::System.IntPtr decl; + + [FieldOffset(8)] + public global::Std.BasicString.__Internal String; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getMethodsCount@Class@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetMethodsCount_0(global::System.IntPtr instance); + EntryPoint="??0Expression@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getSpecifiersCount@Class@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetSpecifiersCount_0(global::System.IntPtr instance); + EntryPoint="??1Expression@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.Class __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Expression __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Class(native.ToPointer(), skipVTables); + return new Expression(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Class __CreateInstance(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Expression __CreateInstance(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) { - return new Class(native, skipVTables); + return new Expression(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Class.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Expression.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); - global::CppSharp.Parser.AST.Class.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); + global::CppSharp.Parser.AST.Expression.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Class(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) + private Expression(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Class(void* native, bool skipVTables = false) + protected Expression(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -9042,19 +9591,10 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Class() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public Class(global::CppSharp.Parser.AST.Class _0) + public Expression(global::CppSharp.Parser.AST.Expression _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -9065,423 +9605,375 @@ namespace CppSharp public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Declaration __dummy; + global::CppSharp.Parser.AST.Statement __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + } - public global::CppSharp.Parser.AST.BaseClassSpecifier GetBases(uint i) + public unsafe partial class BinaryOperator : global::CppSharp.Parser.AST.Expression, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 64)] + public new partial struct __Internal { - var __ret = __Internal.GetBases_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.BaseClassSpecifier __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.BaseClassSpecifier) global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.BaseClassSpecifier.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; - public void AddBases(global::CppSharp.Parser.AST.BaseClassSpecifier s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(4)] + public global::System.IntPtr decl; - public void ClearBases() - { - __Internal.ClearBases_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(8)] + public global::Std.BasicString.__Internal String; - public global::CppSharp.Parser.AST.Field GetFields(uint i) - { - var __ret = __Internal.GetFields_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Field __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Field.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Field) global::CppSharp.Parser.AST.Field.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Field.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(32)] + public global::System.IntPtr LHS; - public void AddFields(global::CppSharp.Parser.AST.Field s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(36)] + public global::System.IntPtr RHS; - public void ClearFields() - { - __Internal.ClearFields_0((__Instance + __PointerAdjustment)); + [FieldOffset(40)] + public global::Std.BasicString.__Internal OpcodeStr; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0BinaryOperator@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??1BinaryOperator@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getOpcodeStr@BinaryOperator@AST@CppParser@CppSharp@@QAEPBDXZ")] + internal static extern global::System.IntPtr OpcodeStr_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?setOpcodeStr@BinaryOperator@AST@CppParser@CppSharp@@QAEXPBD@Z")] + internal static extern void SetOpcodeStr_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - public global::CppSharp.Parser.AST.Method GetMethods(uint i) + internal static new global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - var __ret = __Internal.GetMethods_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Method __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Method.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Method) global::CppSharp.Parser.AST.Method.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Method.__CreateInstance(__ret); - return __result0; + return new BinaryOperator(native.ToPointer(), skipVTables); } - public void AddMethods(global::CppSharp.Parser.AST.Method s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddMethods_0((__Instance + __PointerAdjustment), __arg0); + internal static global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) + { + return new BinaryOperator(native, skipVTables); } - public void ClearMethods() + private static void* __CopyValue(global::CppSharp.Parser.AST.BinaryOperator.__Internal native) { - __Internal.ClearMethods_0((__Instance + __PointerAdjustment)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); + global::CppSharp.Parser.AST.BinaryOperator.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public global::CppSharp.Parser.AST.AccessSpecifierDecl GetSpecifiers(uint i) + private BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - var __ret = __Internal.GetSpecifiers_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.AccessSpecifierDecl __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.AccessSpecifierDecl) global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.AccessSpecifierDecl.__CreateInstance(__ret); - return __result0; + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public void AddSpecifiers(global::CppSharp.Parser.AST.AccessSpecifierDecl s) + protected BinaryOperator(void* native, bool skipVTables = false) + : base((void*) null) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecifiers_0((__Instance + __PointerAdjustment), __arg0); + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public void ClearSpecifiers() + public BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator _0) + : this((void*) null) { - __Internal.ClearSpecifiers_0((__Instance + __PointerAdjustment)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public bool IsPOD + public override void Dispose(bool disposing) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD = (byte) (value ? 1 : 0); - } + global::CppSharp.Parser.AST.Statement __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public bool IsAbstract + public global::CppSharp.Parser.AST.Expression LHS { get { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract != 0; + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS); + return __result0; } set { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsUnion + public global::CppSharp.Parser.AST.Expression RHS { get { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion != 0; + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS); + return __result0; } set { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsDynamic + public string OpcodeStr { get { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic != 0; + var __ret = __Internal.OpcodeStr_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic = (byte) (value ? 1 : 0); + __Internal.SetOpcodeStr_0((__Instance + __PointerAdjustment), value); } } + } - public bool IsPolymorphic + public unsafe partial class CallExpr : global::CppSharp.Parser.AST.Expression, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 44)] + public new partial struct __Internal { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic != 0; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic = (byte) (value ? 1 : 0); - } - } + [FieldOffset(4)] + public global::System.IntPtr decl; - public bool HasNonTrivialDefaultConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor != 0; - } + [FieldOffset(8)] + public global::Std.BasicString.__Internal String; - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor = (byte) (value ? 1 : 0); - } - } + [FieldOffset(32)] + internal global::Std.Vector.__Internal Arguments; - public bool HasNonTrivialCopyConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor != 0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0CallExpr@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor = (byte) (value ? 1 : 0); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??1CallExpr@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getArguments@CallExpr@AST@CppParser@CppSharp@@QAEPAVExpression@234@I@Z")] + internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addArguments@CallExpr@AST@CppParser@CppSharp@@QAEXAAPAVExpression@234@@Z")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearArguments@CallExpr@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getArgumentsCount@CallExpr@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - public bool HasNonTrivialDestructor + internal static new global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor = (byte) (value ? 1 : 0); - } + return new CallExpr(native.ToPointer(), skipVTables); } - public bool IsExternCContext + internal static global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext != 0; - } + return new CallExpr(native, skipVTables); + } - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext = (byte) (value ? 1 : 0); - } + private static void* __CopyValue(global::CppSharp.Parser.AST.CallExpr.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); + global::CppSharp.Parser.AST.CallExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public bool IsInjected + private CallExpr(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected != 0; - } + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected = (byte) (value ? 1 : 0); - } + protected CallExpr(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public global::CppSharp.Parser.AST.ClassLayout Layout + public CallExpr(global::CppSharp.Parser.AST.CallExpr _0) + : this((void*) null) { - get - { - global::CppSharp.Parser.AST.ClassLayout __result0; - if (((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout)) - __result0 = (global::CppSharp.Parser.AST.ClassLayout) global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap[((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout]; - else __result0 = global::CppSharp.Parser.AST.ClassLayout.__CreateInstance(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout); - return __result0; - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Statement __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public uint BasesCount + public global::CppSharp.Parser.AST.Expression GetArguments(uint i) { - get - { - var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Expression __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); + return __result0; } - public uint FieldsCount + public void AddArguments(global::CppSharp.Parser.AST.Expression s) { - get - { - var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); } - public uint MethodsCount + public void ClearArguments() { - get - { - var __ret = __Internal.GetMethodsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint SpecifiersCount + public uint ArgumentsCount { get { - var __ret = __Internal.GetSpecifiersCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class Template : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class CXXConstructExpr : global::CppSharp.Parser.AST.Expression, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 144)] + [StructLayout(LayoutKind.Explicit, Size = 44)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.StatementClass _class; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::System.IntPtr decl; [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(16)] - public int lineNumberStart; - - [FieldOffset(20)] - public int lineNumberEnd; - - [FieldOffset(24)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(48)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(72)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(96)] - public byte isIncomplete; - - [FieldOffset(97)] - public byte isDependent; - - [FieldOffset(98)] - public byte isImplicit; - - [FieldOffset(100)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(104)] - public uint definitionOrder; - - [FieldOffset(108)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(120)] - public global::System.IntPtr originalPtr; - - [FieldOffset(124)] - public global::System.IntPtr comment; - - [FieldOffset(128)] - public global::System.IntPtr TemplatedDecl; - - [FieldOffset(132)] - internal global::Std.Vector.__Internal Parameters; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Template@AST@CppParser@CppSharp@@QAE@W4DeclarationKind@123@@Z")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + public global::Std.BasicString.__Internal String; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Template@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_1(global::System.IntPtr instance); + [FieldOffset(32)] + internal global::Std.Vector.__Internal Arguments; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Template@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="??0CXXConstructExpr@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1Template@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1CXXConstructExpr@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getParameters@Template@AST@CppParser@CppSharp@@QAEPAVDeclaration@234@I@Z")] - internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); + EntryPoint="?getArguments@CXXConstructExpr@AST@CppParser@CppSharp@@QAEPAVExpression@234@I@Z")] + internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addParameters@Template@AST@CppParser@CppSharp@@QAEXAAPAVDeclaration@234@@Z")] - internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="?addArguments@CXXConstructExpr@AST@CppParser@CppSharp@@QAEXAAPAVExpression@234@@Z")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearParameters@Template@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearParameters_0(global::System.IntPtr instance); + EntryPoint="?clearArguments@CXXConstructExpr@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getParametersCount@Template@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetParametersCount_0(global::System.IntPtr instance); + EntryPoint="?getArgumentsCount@CXXConstructExpr@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Template __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Template(native.ToPointer(), skipVTables); + return new CXXConstructExpr(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Template __CreateInstance(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) { - return new Template(native, skipVTables); + return new CXXConstructExpr(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Template.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); - global::CppSharp.Parser.AST.Template.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); + global::CppSharp.Parser.AST.CXXConstructExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Template(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) + private CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Template(void* native, bool skipVTables = false) + protected CXXConstructExpr(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -9490,39 +9982,21 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Template(global::CppSharp.Parser.AST.DeclarationKind kind) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); - } - - public Template() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_1((__Instance + __PointerAdjustment)); - } - - public Template(global::CppSharp.Parser.AST.Template _0) + public CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Declaration __dummy; + global::CppSharp.Parser.AST.Statement __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -9530,187 +10004,143 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Declaration GetParameters(uint i) + public global::CppSharp.Parser.AST.Expression GetArguments(uint i) { - var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Declaration __result0; + var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Expression __result0; if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(__ret); + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); return __result0; } - public void AddParameters(global::CppSharp.Parser.AST.Declaration s) + public void AddArguments(global::CppSharp.Parser.AST.Expression s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearParameters() - { - __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); - } - - public static implicit operator global::CppSharp.Parser.AST.Template(global::CppSharp.Parser.AST.DeclarationKind kind) - { - return new global::CppSharp.Parser.AST.Template(kind); + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.Declaration TemplatedDecl + public void ClearArguments() { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint ParametersCount + public uint ArgumentsCount { get { - var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class FunctionTemplateSpecialization : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 144)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 24)] + public partial struct __Internal { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(16)] - public int lineNumberStart; - - [FieldOffset(20)] - public int lineNumberEnd; - - [FieldOffset(24)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(48)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(72)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(96)] - public byte isIncomplete; - - [FieldOffset(97)] - public byte isDependent; - - [FieldOffset(98)] - public byte isImplicit; - - [FieldOffset(100)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(104)] - public uint definitionOrder; - - [FieldOffset(108)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(120)] - public global::System.IntPtr originalPtr; + [FieldOffset(0)] + public global::System.IntPtr _template; - [FieldOffset(124)] - public global::System.IntPtr comment; + [FieldOffset(4)] + internal global::Std.Vector.__Internal Arguments; - [FieldOffset(128)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(16)] + public global::System.IntPtr specializedFunction; - [FieldOffset(132)] - internal global::Std.Vector.__Internal Parameters; + [FieldOffset(20)] + public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TypeAliasTemplate@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TypeAliasTemplate@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1TypeAliasTemplate@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getArguments@FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QAE?AUTemplateArgument@234@I@Z")] + internal static extern void GetArguments_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?addArguments@FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QAEXAAUTemplateArgument@234@@Z")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?clearArguments@FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getArgumentsCount@FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypeAliasTemplate(native.ToPointer(), skipVTables); + return new FunctionTemplateSpecialization(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) { - return new TypeAliasTemplate(native, skipVTables); + return new FunctionTemplateSpecialization(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); - global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); + global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) + private FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypeAliasTemplate(void* native, bool skipVTables = false) - : base((void*) null) + protected FunctionTemplateSpecialization(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public TypeAliasTemplate() - : this((void*) null) + public FunctionTemplateSpecialization() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate _0) - : this((void*) null) + public FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -9719,18 +10149,101 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.FunctionTemplateSpecialization __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + + public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) + { + var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); + __Internal.GetArguments_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); + return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); + } + + public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearArguments() + { + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.FunctionTemplate Template + { + get + { + global::CppSharp.Parser.AST.FunctionTemplate __result0; + if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template)) + __result0 = (global::CppSharp.Parser.AST.FunctionTemplate) global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template]; + else __result0 = global::CppSharp.Parser.AST.FunctionTemplate.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public global::CppSharp.Parser.AST.Function SpecializedFunction + { + get + { + global::CppSharp.Parser.AST.Function __result0; + if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction)) + __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction]; + else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public global::CppSharp.Parser.AST.TemplateSpecializationKind SpecializationKind + { + get + { + return ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; + } + } + + public uint ArgumentsCount + { + get + { + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } } - public unsafe partial class TemplateParameter : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class AccessSpecifierDecl : global::CppSharp.Parser.AST.Declaration, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 140)] public new partial struct __Internal @@ -9781,61 +10294,55 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(120)] - public global::System.IntPtr originalPtr; - - [FieldOffset(124)] - public global::System.IntPtr comment; - - [FieldOffset(128)] - public uint depth; + internal global::Std.Vector.__Internal Redeclarations; [FieldOffset(132)] - public uint index; + public global::System.IntPtr originalPtr; [FieldOffset(136)] - public byte isParameterPack; + public global::System.IntPtr comment; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TemplateParameter@AST@CppParser@CppSharp@@QAE@W4DeclarationKind@123@@Z")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + EntryPoint="??0AccessSpecifierDecl@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TemplateParameter@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0AccessSpecifierDecl@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1TemplateParameter@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1AccessSpecifierDecl@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateParameter(native.ToPointer(), skipVTables); + return new AccessSpecifierDecl(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) { - return new TemplateParameter(native, skipVTables); + return new AccessSpecifierDecl(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); - global::CppSharp.Parser.AST.TemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) + private AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateParameter(void* native, bool skipVTables = false) + protected AccessSpecifierDecl(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -9844,85 +10351,41 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) + public AccessSpecifierDecl() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter _0) + public AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public static implicit operator global::CppSharp.Parser.AST.TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) - { - return new global::CppSharp.Parser.AST.TemplateParameter(kind); - } - - public uint Depth - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth = value; - } - } - - public uint Index - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index = value; - } + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public bool IsParameterPack + public override void Dispose(bool disposing) { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack != 0; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); - } + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } } - public unsafe partial class TemplateTemplateParameter : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 148)] + [StructLayout(LayoutKind.Explicit, Size = 296)] public new partial struct __Internal { [FieldOffset(0)] @@ -9971,67 +10434,142 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] public global::System.IntPtr originalPtr; - [FieldOffset(124)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(128)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(140)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(132)] + [FieldOffset(148)] + public byte isReturnIndirect; + + [FieldOffset(149)] + public byte hasThisReturn; + + [FieldOffset(150)] + public byte isConstExpr; + + [FieldOffset(151)] + public byte isVariadic; + + [FieldOffset(152)] + public byte isInline; + + [FieldOffset(153)] + public byte isPure; + + [FieldOffset(154)] + public byte isDeleted; + + [FieldOffset(156)] + public global::CppSharp.Parser.AST.FriendKind friendKind; + + [FieldOffset(160)] + public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; + + [FieldOffset(164)] + public global::Std.BasicString.__Internal Mangled; + + [FieldOffset(188)] + public global::Std.BasicString.__Internal Signature; + + [FieldOffset(212)] + public global::Std.BasicString.__Internal Body; + + [FieldOffset(236)] + public global::CppSharp.Parser.AST.CallingConvention callingConvention; + + [FieldOffset(240)] internal global::Std.Vector.__Internal Parameters; - [FieldOffset(144)] - public byte isParameterPack; + [FieldOffset(252)] + public global::System.IntPtr specializationInfo; - [FieldOffset(145)] - public byte isPackExpansion; + [FieldOffset(256)] + public global::System.IntPtr instantiatedFrom; - [FieldOffset(146)] - public byte isExpandedParameterPack; + [FieldOffset(260)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(268)] + public byte isVirtual; + + [FieldOffset(269)] + public byte isStatic; + + [FieldOffset(270)] + public byte isConst; + + [FieldOffset(271)] + public byte isExplicit; + + [FieldOffset(272)] + public byte isOverride; + + [FieldOffset(276)] + public global::CppSharp.Parser.AST.CXXMethodKind methodKind; + + [FieldOffset(280)] + public byte isDefaultConstructor; + + [FieldOffset(281)] + public byte isCopyConstructor; + + [FieldOffset(282)] + public byte isMoveConstructor; + + [FieldOffset(284)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; + + [FieldOffset(292)] + public global::CppSharp.Parser.AST.RefQualifierKind refQualifier; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TemplateTemplateParameter@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0Method@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TemplateTemplateParameter@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0Method@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1TemplateTemplateParameter@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1Method@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateTemplateParameter(native.ToPointer(), skipVTables); + return new Method(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Method __CreateInstance(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) { - return new TemplateTemplateParameter(native, skipVTables); + return new Method(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Method.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); - global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); + global::CppSharp.Parser.AST.Method.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) + private Method(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateTemplateParameter(void* native, bool skipVTables = false) + protected Method(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10040,19 +10578,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateTemplateParameter() + public Method() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter _0) + public Method(global::CppSharp.Parser.AST.Method _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10071,426 +10609,307 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public bool IsParameterPack + public bool IsVirtual { get { - return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack != 0; + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual != 0; } set { - ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); } } - public bool IsPackExpansion + public bool IsStatic { get { - return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic != 0; } set { - ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic = (byte) (value ? 1 : 0); } } - public bool IsExpandedParameterPack + public bool IsConst { get { - return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst != 0; } set { - ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst = (byte) (value ? 1 : 0); } } - } - public unsafe partial class TypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 148)] - public new partial struct __Internal + public bool IsExplicit { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(16)] - public int lineNumberStart; - - [FieldOffset(20)] - public int lineNumberEnd; - - [FieldOffset(24)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(48)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(72)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(96)] - public byte isIncomplete; - - [FieldOffset(97)] - public byte isDependent; - - [FieldOffset(98)] - public byte isImplicit; - - [FieldOffset(100)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(104)] - public uint definitionOrder; - - [FieldOffset(108)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(120)] - public global::System.IntPtr originalPtr; - - [FieldOffset(124)] - public global::System.IntPtr comment; - - [FieldOffset(128)] - public uint depth; - - [FieldOffset(132)] - public uint index; - - [FieldOffset(136)] - public byte isParameterPack; - - [FieldOffset(140)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal defaultArgument; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TypeTemplateParameter@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0TypeTemplateParameter@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit != 0; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1TypeTemplateParameter@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit = (byte) (value ? 1 : 0); + } } - internal static new global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public bool IsOverride { - return new TypeTemplateParameter(native.ToPointer(), skipVTables); + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride = (byte) (value ? 1 : 0); + } } - internal static global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) + public global::CppSharp.Parser.AST.CXXMethodKind MethodKind { - return new TypeTemplateParameter(native, skipVTables); - } + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind; + } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); - global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind = value; + } } - private TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public bool IsDefaultConstructor { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor != 0; + } - protected TypeTemplateParameter(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor = (byte) (value ? 1 : 0); + } } - public TypeTemplateParameter() - : this((void*) null) + public bool IsCopyConstructor { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor = (byte) (value ? 1 : 0); + } } - public TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter _0) - : this((void*) null) + public bool IsMoveConstructor { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor = (byte) (value ? 1 : 0); + } } - public override void Dispose(bool disposing) + public global::CppSharp.Parser.AST.QualifiedType ConversionType { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType); + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } - public global::CppSharp.Parser.AST.QualifiedType DefaultArgument + public global::CppSharp.Parser.AST.RefQualifierKind RefQualifier { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument); + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier; } set { - ((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value; } } } - public unsafe partial class NonTypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable + public unsafe partial class BaseClassSpecifier : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 152)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 16)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public byte isVirtual; [FieldOffset(8)] - public global::System.IntPtr _namespace; + public global::System.IntPtr type; [FieldOffset(12)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(16)] - public int lineNumberStart; - - [FieldOffset(20)] - public int lineNumberEnd; - - [FieldOffset(24)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(48)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(72)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(96)] - public byte isIncomplete; - - [FieldOffset(97)] - public byte isDependent; - - [FieldOffset(98)] - public byte isImplicit; - - [FieldOffset(100)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(104)] - public uint definitionOrder; - - [FieldOffset(108)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(120)] - public global::System.IntPtr originalPtr; - - [FieldOffset(124)] - public global::System.IntPtr comment; - - [FieldOffset(128)] - public uint depth; - - [FieldOffset(132)] - public uint index; - - [FieldOffset(136)] - public byte isParameterPack; - - [FieldOffset(140)] - public global::System.IntPtr defaultArgument; - - [FieldOffset(144)] - public uint position; - - [FieldOffset(148)] - public byte isPackExpansion; - - [FieldOffset(149)] - public byte isExpandedParameterPack; + public int offset; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0NonTypeTemplateParameter@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0BaseClassSpecifier@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0NonTypeTemplateParameter@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0BaseClassSpecifier@AST@CppParser@CppSharp@@QAE@ABU0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1NonTypeTemplateParameter@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new NonTypeTemplateParameter(native.ToPointer(), skipVTables); + return new BaseClassSpecifier(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) { - return new NonTypeTemplateParameter(native, skipVTables); + return new BaseClassSpecifier(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); - global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); + *(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) ret = native; return ret.ToPointer(); } - private NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) + private BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected NonTypeTemplateParameter(void* native, bool skipVTables = false) - : base((void*) null) + protected BaseClassSpecifier(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public NonTypeTemplateParameter() - : this((void*) null) + public BaseClassSpecifier() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter _0) - : this((void*) null) + public BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) _0.__Instance); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.BaseClassSpecifier __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Expression DefaultArgument + public global::CppSharp.Parser.AST.AccessSpecifier Access { get { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument); - return __result0; + return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access = value; } } - public uint Position + public bool IsVirtual { get { - return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position; + return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual != 0; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position = value; + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); } } - public bool IsPackExpansion + public global::CppSharp.Parser.AST.Type Type { get { - return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + global::CppSharp.Parser.AST.Type __result0; + if (((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type)) + __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type]; + else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type); + return __result0; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsExpandedParameterPack + public int Offset { get { - return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset = value; } } } - public unsafe partial class ClassTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class Field : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 156)] + [StructLayout(LayoutKind.Explicit, Size = 160)] public new partial struct __Internal { [FieldOffset(0)] @@ -10539,81 +10958,67 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] public global::System.IntPtr originalPtr; - [FieldOffset(124)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(128)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(140)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(132)] - internal global::Std.Vector.__Internal Parameters; + [FieldOffset(148)] + public global::System.IntPtr _class; - [FieldOffset(144)] - internal global::Std.Vector.__Internal Specializations; + [FieldOffset(152)] + public byte isBitField; + + [FieldOffset(156)] + public uint bitWidth; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0ClassTemplate@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0Field@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0ClassTemplate@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0Field@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1ClassTemplate@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1Field@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getSpecializations@ClassTemplate@AST@CppParser@CppSharp@@QAEPAVClassTemplateSpecialization@234@I@Z")] - internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addSpecializations@ClassTemplate@AST@CppParser@CppSharp@@QAEXAAPAVClassTemplateSpecialization@234@@Z")] - internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearSpecializations@ClassTemplate@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearSpecializations_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getSpecializationsCount@ClassTemplate@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Field __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassTemplate(native.ToPointer(), skipVTables); + return new Field(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Field __CreateInstance(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) { - return new ClassTemplate(native, skipVTables); + return new Field(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Field.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); - global::CppSharp.Parser.AST.ClassTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); + global::CppSharp.Parser.AST.Field.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) + private Field(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassTemplate(void* native, bool skipVTables = false) + protected Field(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10622,19 +11027,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public ClassTemplate() + public Field() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate _0) + public Field(global::CppSharp.Parser.AST.Field _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10653,43 +11058,67 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.ClassTemplateSpecialization GetSpecializations(uint i) + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { - var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.ClassTemplateSpecialization __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.ClassTemplateSpecialization) global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.ClassTemplateSpecialization.__CreateInstance(__ret); - return __result0; + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType); + } + + set + { + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } - public void AddSpecializations(global::CppSharp.Parser.AST.ClassTemplateSpecialization s) + public global::CppSharp.Parser.AST.Class Class { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); + get + { + global::CppSharp.Parser.AST.Class __result0; + if (((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public void ClearSpecializations() + public bool IsBitField { - __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); + get + { + return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField = (byte) (value ? 1 : 0); + } } - public uint SpecializationsCount + public uint BitWidth { get { - var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth; + } + + set + { + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth = value; } } } - public unsafe partial class ClassTemplateSpecialization : global::CppSharp.Parser.AST.Class, IDisposable + public unsafe partial class TemplateParameter : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 332)] + [StructLayout(LayoutKind.Explicit, Size = 152)] public new partial struct __Internal { [FieldOffset(0)] @@ -10738,159 +11167,64 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] public global::System.IntPtr originalPtr; - [FieldOffset(124)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(128)] - internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(140)] - internal global::Std.Vector.__Internal Enums; - - [FieldOffset(152)] - internal global::Std.Vector.__Internal Functions; - - [FieldOffset(164)] - internal global::Std.Vector.__Internal Classes; - - [FieldOffset(176)] - internal global::Std.Vector.__Internal Templates; - - [FieldOffset(188)] - internal global::Std.Vector.__Internal Typedefs; - - [FieldOffset(200)] - internal global::Std.Vector.__Internal TypeAliases; - - [FieldOffset(212)] - internal global::Std.Vector.__Internal Variables; - - [FieldOffset(224)] - internal global::Std.Vector.__Internal Friends; - - [FieldOffset(236)] - internal global::Std.Map.__Internal anonymous; - - [FieldOffset(244)] - public byte isAnonymous; - - [FieldOffset(248)] - internal global::Std.Vector.__Internal Bases; - - [FieldOffset(260)] - internal global::Std.Vector.__Internal Fields; - - [FieldOffset(272)] - internal global::Std.Vector.__Internal Methods; - - [FieldOffset(284)] - internal global::Std.Vector.__Internal Specifiers; - - [FieldOffset(296)] - public byte isPOD; - - [FieldOffset(297)] - public byte isAbstract; - - [FieldOffset(298)] - public byte isUnion; - - [FieldOffset(299)] - public byte isDynamic; - - [FieldOffset(300)] - public byte isPolymorphic; - - [FieldOffset(301)] - public byte hasNonTrivialDefaultConstructor; - - [FieldOffset(302)] - public byte hasNonTrivialCopyConstructor; - - [FieldOffset(303)] - public byte hasNonTrivialDestructor; - - [FieldOffset(304)] - public byte isExternCContext; - - [FieldOffset(305)] - public byte isInjected; - - [FieldOffset(308)] - public global::System.IntPtr layout; - - [FieldOffset(312)] - public global::System.IntPtr templatedDecl; + public uint depth; - [FieldOffset(316)] - internal global::Std.Vector.__Internal Arguments; + [FieldOffset(144)] + public uint index; - [FieldOffset(328)] - public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; + [FieldOffset(148)] + public byte isParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + EntryPoint="??0TemplateParameter@AST@CppParser@CppSharp@@QAE@W4DeclarationKind@123@@Z")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0TemplateParameter@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1TemplateParameter@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getArguments@ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAE?AUTemplateArgument@234@I@Z")] - internal static extern void GetArguments_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addArguments@ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAEXAAUTemplateArgument@234@@Z")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearArguments@ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getArgumentsCount@ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassTemplateSpecialization(native.ToPointer(), skipVTables); + return new TemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) { - return new ClassTemplateSpecialization(native, skipVTables); + return new TemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); - global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); + global::CppSharp.Parser.AST.TemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) + private TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassTemplateSpecialization(void* native, bool skipVTables = false) + protected TemplateParameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10899,19 +11233,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public ClassTemplateSpecialization() + public TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization _0) + public TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10930,70 +11264,54 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) - { - var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); - __Internal.GetArguments_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); - return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); - } - - public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearArguments() + public static implicit operator global::CppSharp.Parser.AST.TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + return new global::CppSharp.Parser.AST.TemplateParameter(kind); } - public global::CppSharp.Parser.AST.ClassTemplate TemplatedDecl + public uint Depth { get { - global::CppSharp.Parser.AST.ClassTemplate __result0; - if (((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl)) - __result0 = (global::CppSharp.Parser.AST.ClassTemplate) global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl]; - else __result0 = global::CppSharp.Parser.AST.ClassTemplate.__CreateInstance(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl); - return __result0; + return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth; } set { - ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth = value; } } - public global::CppSharp.Parser.AST.TemplateSpecializationKind SpecializationKind + public uint Index { get { - return ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind; + return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index; } set { - ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; + ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index = value; } } - public uint ArgumentsCount + public bool IsParameterPack { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); } } } - public unsafe partial class ClassTemplatePartialSpecialization : global::CppSharp.Parser.AST.ClassTemplateSpecialization, IDisposable + public unsafe partial class TemplateTemplateParameter : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 332)] + [StructLayout(LayoutKind.Explicit, Size = 160)] public new partial struct __Internal { [FieldOffset(0)] @@ -11042,139 +11360,70 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] public global::System.IntPtr originalPtr; - [FieldOffset(124)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(128)] - internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(140)] - internal global::Std.Vector.__Internal Enums; - - [FieldOffset(152)] - internal global::Std.Vector.__Internal Functions; - - [FieldOffset(164)] - internal global::Std.Vector.__Internal Classes; - - [FieldOffset(176)] - internal global::Std.Vector.__Internal Templates; - - [FieldOffset(188)] - internal global::Std.Vector.__Internal Typedefs; - - [FieldOffset(200)] - internal global::Std.Vector.__Internal TypeAliases; - - [FieldOffset(212)] - internal global::Std.Vector.__Internal Variables; - - [FieldOffset(224)] - internal global::Std.Vector.__Internal Friends; - - [FieldOffset(236)] - internal global::Std.Map.__Internal anonymous; - - [FieldOffset(244)] - public byte isAnonymous; - - [FieldOffset(248)] - internal global::Std.Vector.__Internal Bases; - - [FieldOffset(260)] - internal global::Std.Vector.__Internal Fields; - - [FieldOffset(272)] - internal global::Std.Vector.__Internal Methods; - - [FieldOffset(284)] - internal global::Std.Vector.__Internal Specifiers; - - [FieldOffset(296)] - public byte isPOD; - - [FieldOffset(297)] - public byte isAbstract; - - [FieldOffset(298)] - public byte isUnion; - - [FieldOffset(299)] - public byte isDynamic; - - [FieldOffset(300)] - public byte isPolymorphic; - - [FieldOffset(301)] - public byte hasNonTrivialDefaultConstructor; - - [FieldOffset(302)] - public byte hasNonTrivialCopyConstructor; - - [FieldOffset(303)] - public byte hasNonTrivialDestructor; - - [FieldOffset(304)] - public byte isExternCContext; - - [FieldOffset(305)] - public byte isInjected; + public global::System.IntPtr TemplatedDecl; - [FieldOffset(308)] - public global::System.IntPtr layout; + [FieldOffset(144)] + internal global::Std.Vector.__Internal Parameters; - [FieldOffset(312)] - public global::System.IntPtr templatedDecl; + [FieldOffset(156)] + public byte isParameterPack; - [FieldOffset(316)] - internal global::Std.Vector.__Internal Arguments; + [FieldOffset(157)] + public byte isPackExpansion; - [FieldOffset(328)] - public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; + [FieldOffset(158)] + public byte isExpandedParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0ClassTemplatePartialSpecialization@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0TemplateTemplateParameter@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0ClassTemplatePartialSpecialization@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0TemplateTemplateParameter@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1ClassTemplatePartialSpecialization@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1TemplateTemplateParameter@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassTemplatePartialSpecialization(native.ToPointer(), skipVTables); + return new TemplateTemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) { - return new ClassTemplatePartialSpecialization(native, skipVTables); + return new TemplateTemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); - global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); + global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) + private TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassTemplatePartialSpecialization(void* native, bool skipVTables = false) + protected TemplateTemplateParameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -11183,19 +11432,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public ClassTemplatePartialSpecialization() + public TemplateTemplateParameter() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization _0) + public TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -11213,11 +11462,50 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + + public bool IsParameterPack + { + get + { + return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); + } + } + + public bool IsPackExpansion + { + get + { + return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + } + } + + public bool IsExpandedParameterPack + { + get + { + return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); + } + } } - public unsafe partial class FunctionTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class NonTypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 156)] + [StructLayout(LayoutKind.Explicit, Size = 164)] public new partial struct __Internal { [FieldOffset(0)] @@ -11266,81 +11554,76 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] public global::System.IntPtr originalPtr; - [FieldOffset(124)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(128)] - public global::System.IntPtr TemplatedDecl; - - [FieldOffset(132)] - internal global::Std.Vector.__Internal Parameters; + [FieldOffset(140)] + public uint depth; [FieldOffset(144)] - internal global::Std.Vector.__Internal Specializations; + public uint index; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0FunctionTemplate@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + [FieldOffset(148)] + public byte isParameterPack; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0FunctionTemplate@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(152)] + public global::System.IntPtr defaultArgument; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1FunctionTemplate@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + [FieldOffset(156)] + public uint position; + + [FieldOffset(160)] + public byte isPackExpansion; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getSpecializations@FunctionTemplate@AST@CppParser@CppSharp@@QAEPAVFunctionTemplateSpecialization@234@I@Z")] - internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); + [FieldOffset(161)] + public byte isExpandedParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addSpecializations@FunctionTemplate@AST@CppParser@CppSharp@@QAEXAAPAVFunctionTemplateSpecialization@234@@Z")] - internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="??0NonTypeTemplateParameter@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearSpecializations@FunctionTemplate@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + EntryPoint="??0NonTypeTemplateParameter@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getSpecializationsCount@FunctionTemplate@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); + EntryPoint="??1NonTypeTemplateParameter@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new FunctionTemplate(native.ToPointer(), skipVTables); + return new NonTypeTemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) { - return new FunctionTemplate(native, skipVTables); + return new NonTypeTemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); - global::CppSharp.Parser.AST.FunctionTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) + private NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected FunctionTemplate(void* native, bool skipVTables = false) + protected NonTypeTemplateParameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -11349,19 +11632,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public FunctionTemplate() + public NonTypeTemplateParameter() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate _0) + public NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -11380,143 +11663,292 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.FunctionTemplateSpecialization GetSpecializations(uint i) + public global::CppSharp.Parser.AST.Expression DefaultArgument { - var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.FunctionTemplateSpecialization __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.FunctionTemplateSpecialization) global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__CreateInstance(__ret); - return __result0; + get + { + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public void AddSpecializations(global::CppSharp.Parser.AST.FunctionTemplateSpecialization s) + public uint Position { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); + get + { + return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position = value; + } } - public void ClearSpecializations() + public bool IsPackExpansion { - __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); + get + { + return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + } } - public uint SpecializationsCount + public bool IsExpandedParameterPack { get { - var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); } } } - public unsafe partial class FunctionTemplateSpecialization : IDisposable + public unsafe partial class ClassTemplateSpecialization : global::CppSharp.Parser.AST.Class, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 344)] + public new partial struct __Internal { [FieldOffset(0)] - public global::System.IntPtr _template; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - internal global::Std.Vector.__Internal Arguments; + public global::CppSharp.Parser.AST.AccessSpecifier access; + + [FieldOffset(8)] + public global::System.IntPtr _namespace; + + [FieldOffset(12)] + public global::CppSharp.Parser.SourceLocation.__Internal location; [FieldOffset(16)] - public global::System.IntPtr specializedFunction; + public int lineNumberStart; [FieldOffset(20)] + public int lineNumberEnd; + + [FieldOffset(24)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(48)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(72)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(96)] + public byte isIncomplete; + + [FieldOffset(97)] + public byte isDependent; + + [FieldOffset(98)] + public byte isImplicit; + + [FieldOffset(100)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(104)] + public uint definitionOrder; + + [FieldOffset(108)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] + public global::System.IntPtr originalPtr; + + [FieldOffset(136)] + public global::System.IntPtr comment; + + [FieldOffset(140)] + internal global::Std.Vector.__Internal Namespaces; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal Enums; + + [FieldOffset(164)] + internal global::Std.Vector.__Internal Functions; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Classes; + + [FieldOffset(188)] + internal global::Std.Vector.__Internal Templates; + + [FieldOffset(200)] + internal global::Std.Vector.__Internal Typedefs; + + [FieldOffset(212)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(224)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(236)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(248)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(256)] + public byte isAnonymous; + + [FieldOffset(260)] + internal global::Std.Vector.__Internal Bases; + + [FieldOffset(272)] + internal global::Std.Vector.__Internal Fields; + + [FieldOffset(284)] + internal global::Std.Vector.__Internal Methods; + + [FieldOffset(296)] + internal global::Std.Vector.__Internal Specifiers; + + [FieldOffset(308)] + public byte isPOD; + + [FieldOffset(309)] + public byte isAbstract; + + [FieldOffset(310)] + public byte isUnion; + + [FieldOffset(311)] + public byte isDynamic; + + [FieldOffset(312)] + public byte isPolymorphic; + + [FieldOffset(313)] + public byte hasNonTrivialDefaultConstructor; + + [FieldOffset(314)] + public byte hasNonTrivialCopyConstructor; + + [FieldOffset(315)] + public byte hasNonTrivialDestructor; + + [FieldOffset(316)] + public byte isExternCContext; + + [FieldOffset(317)] + public byte isInjected; + + [FieldOffset(320)] + public global::System.IntPtr layout; + + [FieldOffset(324)] + public global::System.IntPtr templatedDecl; + + [FieldOffset(328)] + internal global::Std.Vector.__Internal Arguments; + + [FieldOffset(340)] public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??0ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + EntryPoint="??0ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QAE@XZ")] + EntryPoint="??1ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getArguments@FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QAE?AUTemplateArgument@234@I@Z")] + EntryPoint="?getArguments@ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAE?AUTemplateArgument@234@I@Z")] internal static extern void GetArguments_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addArguments@FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QAEXAAUTemplateArgument@234@@Z")] + EntryPoint="?addArguments@ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAEXAAUTemplateArgument@234@@Z")] internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearArguments@FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QAEXXZ")] + EntryPoint="?clearArguments@ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAEXXZ")] internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getArgumentsCount@FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; + EntryPoint="?getArgumentsCount@ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + } - internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new FunctionTemplateSpecialization(native.ToPointer(), skipVTables); + return new ClassTemplateSpecialization(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) { - return new FunctionTemplateSpecialization(native, skipVTables); + return new ClassTemplateSpecialization(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); - global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); + global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) + private ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected FunctionTemplateSpecialization(void* native, bool skipVTables = false) + protected ClassTemplateSpecialization(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public FunctionTemplateSpecialization() + public ClassTemplateSpecialization() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization _0) + public ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -11525,14 +11957,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.FunctionTemplateSpecialization __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -11560,39 +11987,21 @@ namespace CppSharp __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.FunctionTemplate Template - { - get - { - global::CppSharp.Parser.AST.FunctionTemplate __result0; - if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template)) - __result0 = (global::CppSharp.Parser.AST.FunctionTemplate) global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template]; - else __result0 = global::CppSharp.Parser.AST.FunctionTemplate.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public global::CppSharp.Parser.AST.Function SpecializedFunction + public global::CppSharp.Parser.AST.ClassTemplate TemplatedDecl { get { - global::CppSharp.Parser.AST.Function __result0; - if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction)) - __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction]; - else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction); + global::CppSharp.Parser.AST.ClassTemplate __result0; + if (((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl)) + __result0 = (global::CppSharp.Parser.AST.ClassTemplate) global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl]; + else __result0 = global::CppSharp.Parser.AST.ClassTemplate.__CreateInstance(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl); return __result0; } set { - ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } @@ -11600,12 +12009,12 @@ namespace CppSharp { get { - return ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind; + return ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind; } set { - ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; + ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; } } @@ -11619,9 +12028,9 @@ namespace CppSharp } } - public unsafe partial class VarTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class ClassTemplatePartialSpecialization : global::CppSharp.Parser.AST.ClassTemplateSpecialization, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 156)] + [StructLayout(LayoutKind.Explicit, Size = 344)] public new partial struct __Internal { [FieldOffset(0)] @@ -11670,81 +12079,142 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] public global::System.IntPtr originalPtr; - [FieldOffset(124)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(128)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(140)] + internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(132)] - internal global::Std.Vector.__Internal Parameters; + [FieldOffset(152)] + internal global::Std.Vector.__Internal Enums; - [FieldOffset(144)] - internal global::Std.Vector.__Internal Specializations; + [FieldOffset(164)] + internal global::Std.Vector.__Internal Functions; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0VarTemplate@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + [FieldOffset(176)] + internal global::Std.Vector.__Internal Classes; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0VarTemplate@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(188)] + internal global::Std.Vector.__Internal Templates; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1VarTemplate@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + [FieldOffset(200)] + internal global::Std.Vector.__Internal Typedefs; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getSpecializations@VarTemplate@AST@CppParser@CppSharp@@QAEPAVVarTemplateSpecialization@234@I@Z")] - internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); + [FieldOffset(212)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(224)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(236)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(248)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(256)] + public byte isAnonymous; + + [FieldOffset(260)] + internal global::Std.Vector.__Internal Bases; + + [FieldOffset(272)] + internal global::Std.Vector.__Internal Fields; + + [FieldOffset(284)] + internal global::Std.Vector.__Internal Methods; + + [FieldOffset(296)] + internal global::Std.Vector.__Internal Specifiers; + + [FieldOffset(308)] + public byte isPOD; + + [FieldOffset(309)] + public byte isAbstract; + + [FieldOffset(310)] + public byte isUnion; + + [FieldOffset(311)] + public byte isDynamic; + + [FieldOffset(312)] + public byte isPolymorphic; + + [FieldOffset(313)] + public byte hasNonTrivialDefaultConstructor; + + [FieldOffset(314)] + public byte hasNonTrivialCopyConstructor; + + [FieldOffset(315)] + public byte hasNonTrivialDestructor; + + [FieldOffset(316)] + public byte isExternCContext; + + [FieldOffset(317)] + public byte isInjected; + + [FieldOffset(320)] + public global::System.IntPtr layout; + + [FieldOffset(324)] + public global::System.IntPtr templatedDecl; + + [FieldOffset(328)] + internal global::Std.Vector.__Internal Arguments; + + [FieldOffset(340)] + public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?addSpecializations@VarTemplate@AST@CppParser@CppSharp@@QAEXAAPAVVarTemplateSpecialization@234@@Z")] - internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="??0ClassTemplatePartialSpecialization@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?clearSpecializations@VarTemplate@AST@CppParser@CppSharp@@QAEXXZ")] - internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + EntryPoint="??0ClassTemplatePartialSpecialization@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getSpecializationsCount@VarTemplate@AST@CppParser@CppSharp@@QAEIXZ")] - internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); + EntryPoint="??1ClassTemplatePartialSpecialization@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VarTemplate(native.ToPointer(), skipVTables); + return new ClassTemplatePartialSpecialization(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) { - return new VarTemplate(native, skipVTables); + return new ClassTemplatePartialSpecialization(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VarTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); - global::CppSharp.Parser.AST.VarTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); + global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VarTemplate(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) + private ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VarTemplate(void* native, bool skipVTables = false) + protected ClassTemplatePartialSpecialization(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -11753,19 +12223,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public VarTemplate() + public ClassTemplatePartialSpecialization() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VarTemplate(global::CppSharp.Parser.AST.VarTemplate _0) + public ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -11783,44 +12253,11 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - - public global::CppSharp.Parser.AST.VarTemplateSpecialization GetSpecializations(uint i) - { - var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.VarTemplateSpecialization __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.VarTemplateSpecialization) global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.VarTemplateSpecialization.__CreateInstance(__ret); - return __result0; - } - - public void AddSpecializations(global::CppSharp.Parser.AST.VarTemplateSpecialization s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearSpecializations() - { - __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); - } - - public uint SpecializationsCount - { - get - { - var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } } public unsafe partial class VarTemplateSpecialization : global::CppSharp.Parser.AST.Variable, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 180)] + [StructLayout(LayoutKind.Explicit, Size = 192)] public new partial struct __Internal { [FieldOffset(0)] @@ -11869,24 +12306,27 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] public global::System.IntPtr originalPtr; - [FieldOffset(124)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(128)] + [FieldOffset(140)] public global::Std.BasicString.__Internal Mangled; - [FieldOffset(152)] + [FieldOffset(164)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(160)] + [FieldOffset(172)] public global::System.IntPtr templatedDecl; - [FieldOffset(164)] + [FieldOffset(176)] internal global::Std.Vector.__Internal Arguments; - [FieldOffset(176)] + [FieldOffset(188)] public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] @@ -12052,7 +12492,7 @@ namespace CppSharp public unsafe partial class VarTemplatePartialSpecialization : global::CppSharp.Parser.AST.VarTemplateSpecialization, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 180)] + [StructLayout(LayoutKind.Explicit, Size = 192)] public new partial struct __Internal { [FieldOffset(0)] @@ -12101,24 +12541,27 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] public global::System.IntPtr originalPtr; - [FieldOffset(124)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(128)] + [FieldOffset(140)] public global::Std.BasicString.__Internal Mangled; - [FieldOffset(152)] + [FieldOffset(164)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(160)] + [FieldOffset(172)] public global::System.IntPtr templatedDecl; - [FieldOffset(164)] + [FieldOffset(176)] internal global::Std.Vector.__Internal Arguments; - [FieldOffset(176)] + [FieldOffset(188)] public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] @@ -12202,9 +12645,9 @@ namespace CppSharp } } - public unsafe partial class Namespace : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + public unsafe partial class VarTemplate : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 252)] + [StructLayout(LayoutKind.Explicit, Size = 168)] public new partial struct __Internal { [FieldOffset(0)] @@ -12253,88 +12696,84 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] public global::System.IntPtr originalPtr; - [FieldOffset(124)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(128)] - internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(140)] - internal global::Std.Vector.__Internal Enums; - - [FieldOffset(152)] - internal global::Std.Vector.__Internal Functions; - - [FieldOffset(164)] - internal global::Std.Vector.__Internal Classes; - - [FieldOffset(176)] - internal global::Std.Vector.__Internal Templates; - - [FieldOffset(188)] - internal global::Std.Vector.__Internal Typedefs; + public global::System.IntPtr TemplatedDecl; - [FieldOffset(200)] - internal global::Std.Vector.__Internal TypeAliases; + [FieldOffset(144)] + internal global::Std.Vector.__Internal Parameters; - [FieldOffset(212)] - internal global::Std.Vector.__Internal Variables; + [FieldOffset(156)] + internal global::Std.Vector.__Internal Specializations; - [FieldOffset(224)] - internal global::Std.Vector.__Internal Friends; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0VarTemplate@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - [FieldOffset(236)] - internal global::Std.Map.__Internal anonymous; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0VarTemplate@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(244)] - public byte isAnonymous; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??1VarTemplate@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); - [FieldOffset(248)] - public byte isInline; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getSpecializations@VarTemplate@AST@CppParser@CppSharp@@QAEPAVVarTemplateSpecialization@234@I@Z")] + internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Namespace@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + EntryPoint="?addSpecializations@VarTemplate@AST@CppParser@CppSharp@@QAEXAAPAVVarTemplateSpecialization@234@@Z")] + internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0Namespace@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="?clearSpecializations@VarTemplate@AST@CppParser@CppSharp@@QAEXXZ")] + internal static extern void ClearSpecializations_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1Namespace@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + EntryPoint="?getSpecializationsCount@VarTemplate@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Namespace __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Namespace(native.ToPointer(), skipVTables); + return new VarTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Namespace __CreateInstance(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) { - return new Namespace(native, skipVTables); + return new VarTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Namespace.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.VarTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); - global::CppSharp.Parser.AST.Namespace.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); + global::CppSharp.Parser.AST.VarTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Namespace(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + private VarTemplate(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Namespace(void* native, bool skipVTables = false) + protected VarTemplate(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -12343,19 +12782,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Namespace() + public VarTemplate() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Namespace(global::CppSharp.Parser.AST.Namespace _0) + public VarTemplate(global::CppSharp.Parser.AST.VarTemplate _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -12374,149 +12813,36 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public bool IsInline - { - get - { - return ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline = (byte) (value ? 1 : 0); - } - } - } - - public unsafe partial class PreprocessedEntity : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 12)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.MacroLocation macroLocation; - - [FieldOffset(4)] - public global::System.IntPtr originalPtr; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0PreprocessedEntity@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0PreprocessedEntity@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new PreprocessedEntity(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) - { - return new PreprocessedEntity(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); - *(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) ret = native; - return ret.ToPointer(); - } - - private PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected PreprocessedEntity(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public PreprocessedEntity() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public global::CppSharp.Parser.AST.VarTemplateSpecialization GetSpecializations(uint i) { - global::CppSharp.Parser.AST.PreprocessedEntity __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.VarTemplateSpecialization __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.VarTemplateSpecialization) global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.VarTemplateSpecialization.__CreateInstance(__ret); + return __result0; } - public global::CppSharp.Parser.AST.MacroLocation MacroLocation + public void AddSpecializations(global::CppSharp.Parser.AST.VarTemplateSpecialization s) { - get - { - return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation; - } - - set - { - ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation = value; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); } - public global::System.IntPtr OriginalPtr + public void ClearSpecializations() { - get - { - return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr; - } - - set - { - ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; - } + __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.DeclarationKind Kind + public uint SpecializationsCount { get { - return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind = value; + var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } @@ -12874,7 +13200,7 @@ namespace CppSharp public unsafe partial class TranslationUnit : global::CppSharp.Parser.AST.Namespace, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 292)] + [StructLayout(LayoutKind.Explicit, Size = 304)] public new partial struct __Internal { [FieldOffset(0)] @@ -12923,54 +13249,57 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(120)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(132)] public global::System.IntPtr originalPtr; - [FieldOffset(124)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(128)] + [FieldOffset(140)] internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(140)] + [FieldOffset(152)] internal global::Std.Vector.__Internal Enums; - [FieldOffset(152)] + [FieldOffset(164)] internal global::Std.Vector.__Internal Functions; - [FieldOffset(164)] + [FieldOffset(176)] internal global::Std.Vector.__Internal Classes; - [FieldOffset(176)] + [FieldOffset(188)] internal global::Std.Vector.__Internal Templates; - [FieldOffset(188)] + [FieldOffset(200)] internal global::Std.Vector.__Internal Typedefs; - [FieldOffset(200)] + [FieldOffset(212)] internal global::Std.Vector.__Internal TypeAliases; - [FieldOffset(212)] + [FieldOffset(224)] internal global::Std.Vector.__Internal Variables; - [FieldOffset(224)] + [FieldOffset(236)] internal global::Std.Vector.__Internal Friends; - [FieldOffset(236)] + [FieldOffset(248)] internal global::Std.Map.__Internal anonymous; - [FieldOffset(244)] + [FieldOffset(256)] public byte isAnonymous; - [FieldOffset(248)] + [FieldOffset(260)] public byte isInline; - [FieldOffset(252)] + [FieldOffset(264)] public global::Std.BasicString.__Internal FileName; - [FieldOffset(276)] + [FieldOffset(288)] public byte isSystemHeader; - [FieldOffset(280)] + [FieldOffset(292)] internal global::Std.Vector.__Internal Macros; [SuppressUnmanagedCodeSecurity] @@ -16094,192 +16423,6 @@ namespace CppSharp } } } - - public unsafe partial class RawComment : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 56)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.RawCommentKind kind; - - [FieldOffset(4)] - public global::Std.BasicString.__Internal Text; - - [FieldOffset(28)] - public global::Std.BasicString.__Internal BriefText; - - [FieldOffset(52)] - public global::System.IntPtr fullCommentBlock; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0RawComment@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??0RawComment@AST@CppParser@CppSharp@@QAE@ABV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="??1RawComment@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getText@RawComment@AST@CppParser@CppSharp@@QAEPBDXZ")] - internal static extern global::System.IntPtr Text_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?setText@RawComment@AST@CppParser@CppSharp@@QAEXPBD@Z")] - internal static extern void SetText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?getBriefText@RawComment@AST@CppParser@CppSharp@@QAEPBDXZ")] - internal static extern global::System.IntPtr BriefText_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, - EntryPoint="?setBriefText@RawComment@AST@CppParser@CppSharp@@QAEXPBD@Z")] - internal static extern void SetBriefText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new RawComment(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) - { - return new RawComment(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.RawComment.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); - global::CppSharp.Parser.AST.RawComment.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private RawComment(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected RawComment(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public RawComment() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public RawComment(global::CppSharp.Parser.AST.RawComment _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.RawComment __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.RawCommentKind Kind - { - get - { - return ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind = value; - } - } - - public global::CppSharp.Parser.AST.FullComment FullCommentBlock - { - get - { - global::CppSharp.Parser.AST.FullComment __result0; - if (((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FullComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock)) - __result0 = (global::CppSharp.Parser.AST.FullComment) global::CppSharp.Parser.AST.FullComment.NativeToManagedMap[((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock]; - else __result0 = global::CppSharp.Parser.AST.FullComment.__CreateInstance(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public string Text - { - get - { - var __ret = __Internal.Text_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetText_0((__Instance + __PointerAdjustment), value); - } - } - - public string BriefText - { - get - { - var __ret = __Internal.BriefText_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetBriefText_0((__Instance + __PointerAdjustment), value); - } - } - } } } } @@ -17173,6 +17316,53 @@ namespace CppSharp User = 4 } + public unsafe partial class Parser + { + [StructLayout(LayoutKind.Explicit, Size = 0)] + public partial struct __Internal + { + } + + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.Parser __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Parser(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.Parser __CreateInstance(global::CppSharp.Parser.Parser.__Internal native, bool skipVTables = false) + { + return new Parser(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.Parser.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.Parser.__Internal)); + *(global::CppSharp.Parser.Parser.__Internal*) ret = native; + return ret.ToPointer(); + } + + private Parser(global::CppSharp.Parser.Parser.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected Parser(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + } + public unsafe partial class CppParserOptions : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 156)] @@ -18207,6 +18397,24 @@ namespace CppSharp } } + public global::CppSharp.Parser.Parser CodeParser + { + get + { + global::CppSharp.Parser.Parser __result0; + if (((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.Parser.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser)) + __result0 = (global::CppSharp.Parser.Parser) global::CppSharp.Parser.Parser.NativeToManagedMap[((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser]; + else __result0 = global::CppSharp.Parser.Parser.__CreateInstance(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser); + return __result0; + } + + set + { + ((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + public uint DiagnosticsCount { get diff --git a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs index 7c902e4b..842e4056 100644 --- a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs +++ b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs @@ -202,21 +202,21 @@ namespace Std } [StructLayout(LayoutKind.Explicit, Size = 12)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_BlockContentComment___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 12)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Parameter___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_BlockContentComment___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 12)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Parameter___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; 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 b8445922..dd37730d 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 @@ -669,569 +669,525 @@ namespace CppSharp } } - public unsafe partial class TagType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class Declaration : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 16)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 192)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr declaration; + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.__1.BasicString.__Internal Name; + + [FieldOffset(56)] + public global::Std.__1.BasicString.__Internal USR; + + [FieldOffset(80)] + public global::Std.__1.BasicString.__Internal DebugText; + + [FieldOffset(104)] + public byte isIncomplete; + + [FieldOffset(105)] + public byte isDependent; + + [FieldOffset(106)] + public byte isImplicit; + + [FieldOffset(112)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(120)] + public uint definitionOrder; + + [FieldOffset(128)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; + + [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] + public global::System.IntPtr originalPtr; + + [FieldOffset(184)] + public global::System.IntPtr comment; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST7TagTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST7TagTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.TagType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new TagType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.TagType __CreateInstance(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) - { - return new TagType(native, skipVTables); - } + EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - private static void* __CopyValue(global::CppSharp.Parser.AST.TagType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); - global::CppSharp.Parser.AST.TagType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - private TagType(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration23getPreprocessedEntitiesEj")] + internal static extern global::System.IntPtr GetPreprocessedEntities_0(global::System.IntPtr instance, uint i); - protected TagType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration23addPreprocessedEntitiesERPNS1_18PreprocessedEntityE")] + internal static extern void AddPreprocessedEntities_0(global::System.IntPtr instance, global::System.IntPtr s); - public TagType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration25clearPreprocessedEntitiesEv")] + internal static extern void ClearPreprocessedEntities_0(global::System.IntPtr instance); - public TagType(global::CppSharp.Parser.AST.TagType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration17getRedeclarationsEj")] + internal static extern global::System.IntPtr GetRedeclarations_0(global::System.IntPtr instance, uint i); - public global::CppSharp.Parser.AST.Declaration Declaration - { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration); - return __result0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration17addRedeclarationsERPS2_")] + internal static extern void AddRedeclarations_0(global::System.IntPtr instance, global::System.IntPtr s); - set - { - ((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration19clearRedeclarationsEv")] + internal static extern void ClearRedeclarations_0(global::System.IntPtr instance); - public unsafe partial class ArrayType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 48)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration7getNameEv")] + internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); - [FieldOffset(4)] - public byte isDependent; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration7setNameEPKc")] + internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration6getUSREv")] + internal static extern global::System.IntPtr USR_0(global::System.IntPtr instance); - [FieldOffset(24)] - public global::CppSharp.Parser.AST.ArrayType.ArraySize sizeType; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration6setUSREPKc")] + internal static extern void SetUSR_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - [FieldOffset(32)] - public long size; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration12getDebugTextEv")] + internal static extern global::System.IntPtr DebugText_0(global::System.IntPtr instance); - [FieldOffset(40)] - public long elementSize; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration12setDebugTextEPKc")] + internal static extern void SetDebugText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ArrayTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration28getPreprocessedEntitiesCountEv")] + internal static extern uint GetPreprocessedEntitiesCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ArrayTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration22getRedeclarationsCountEv")] + internal static extern uint GetRedeclarationsCount_0(global::System.IntPtr instance); } - public enum ArraySize - { - Constant = 0, - Variable = 1, - Dependent = 2, - Incomplete = 3 - } + public global::System.IntPtr __Instance { get; protected set; } - internal static new global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ArrayType(native.ToPointer(), skipVTables); + return new Declaration(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) { - return new ArrayType(native, skipVTables); + return new Declaration(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ArrayType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Declaration.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); - global::CppSharp.Parser.AST.ArrayType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); + global::CppSharp.Parser.AST.Declaration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ArrayType(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) + private Declaration(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ArrayType(void* native, bool skipVTables = false) - : base((void*) null) + protected Declaration(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public ArrayType() - : this((void*) null) + public Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public ArrayType(global::CppSharp.Parser.AST.ArrayType _0) - : this((void*) null) + public Declaration(global::CppSharp.Parser.AST.Declaration _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public void Dispose() { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType); - } + Dispose(disposing: true); + } - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.ArrayType.ArraySize SizeType + public virtual void Dispose(bool disposing) { - get - { - return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType; - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType = value; - } + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public long Size + public global::CppSharp.Parser.AST.PreprocessedEntity GetPreprocessedEntities(uint i) { - get - { - return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size; - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size = value; - } + var __ret = __Internal.GetPreprocessedEntities_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.PreprocessedEntity __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.PreprocessedEntity) global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.PreprocessedEntity.__CreateInstance(__ret); + return __result0; } - public long ElementSize + public void AddPreprocessedEntities(global::CppSharp.Parser.AST.PreprocessedEntity s) { - get - { - return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize; - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize = value; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddPreprocessedEntities_0((__Instance + __PointerAdjustment), __arg0); } - } - public unsafe partial class FunctionType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 56)] - public new partial struct __Internal + public void ClearPreprocessedEntities() { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - - [FieldOffset(24)] - public global::CppSharp.Parser.AST.CallingConvention callingConvention; - - [FieldOffset(28)] - public global::CppSharp.Parser.AST.ExceptionSpecType exceptionSpecType; - - [FieldOffset(32)] - internal global::Std.__1.Vector.__Internal Parameters; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType13getParametersEj")] - internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType13addParametersERPNS1_9ParameterE")] - internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType15clearParametersEv")] - internal static extern void ClearParameters_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType18getParametersCountEv")] - internal static extern uint GetParametersCount_0(global::System.IntPtr instance); + __Internal.ClearPreprocessedEntities_0((__Instance + __PointerAdjustment)); } - internal static new global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public global::CppSharp.Parser.AST.Declaration GetRedeclarations(uint i) { - return new FunctionType(native.ToPointer(), skipVTables); + var __ret = __Internal.GetRedeclarations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Declaration __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(__ret); + return __result0; } - internal static global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) + public void AddRedeclarations(global::CppSharp.Parser.AST.Declaration s) { - return new FunctionType(native, skipVTables); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddRedeclarations_0((__Instance + __PointerAdjustment), __arg0); } - private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionType.__Internal native) + public void ClearRedeclarations() { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); - global::CppSharp.Parser.AST.FunctionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + __Internal.ClearRedeclarations_0((__Instance + __PointerAdjustment)); } - private FunctionType(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public static implicit operator global::CppSharp.Parser.AST.Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + return new global::CppSharp.Parser.AST.Declaration(kind); } - protected FunctionType(void* native, bool skipVTables = false) - : base((void*) null) + public global::CppSharp.Parser.AST.DeclarationKind Kind { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind; + } - public FunctionType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind = value; + } } - public FunctionType(global::CppSharp.Parser.AST.FunctionType _0) - : this((void*) null) + public global::CppSharp.Parser.AST.AccessSpecifier Access { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access; + } - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Type __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access = value; + } } - public global::CppSharp.Parser.AST.Parameter GetParameters(uint i) + public global::CppSharp.Parser.AST.DeclarationContext Namespace { - var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Parameter __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Parameter.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Parameter) global::CppSharp.Parser.AST.Parameter.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Parameter.__CreateInstance(__ret); - return __result0; - } + get + { + global::CppSharp.Parser.AST.DeclarationContext __result0; + if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace)) + __result0 = (global::CppSharp.Parser.AST.DeclarationContext) global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace]; + else __result0 = global::CppSharp.Parser.AST.DeclarationContext.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace); + return __result0; + } - public void AddParameters(global::CppSharp.Parser.AST.Parameter s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public void ClearParameters() + public global::CppSharp.Parser.SourceLocation Location { - __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); + get + { + return global::CppSharp.Parser.SourceLocation.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location); + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location = value.__Instance; + } } - public global::CppSharp.Parser.AST.QualifiedType ReturnType + public int LineNumberStart { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType); + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart; } set { - ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart = value; } } - public global::CppSharp.Parser.AST.CallingConvention CallingConvention + public int LineNumberEnd { get { - return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention; + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd; } set { - ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention = value; + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd = value; } } - public global::CppSharp.Parser.AST.ExceptionSpecType ExceptionSpecType + public bool IsIncomplete { get { - return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType; + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete != 0; } set { - ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType = value; + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete = (byte) (value ? 1 : 0); } } - public uint ParametersCount + public bool IsDependent { get { - var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent != 0; } - } - } - public unsafe partial class PointerType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 32)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedPointee; - - [FieldOffset(24)] - public global::CppSharp.Parser.AST.PointerType.TypeModifier modifier; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11PointerTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11PointerTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent = (byte) (value ? 1 : 0); + } } - public enum TypeModifier + public bool IsImplicit { - Value = 0, - Pointer = 1, - LVReference = 2, - RVReference = 3 - } + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit != 0; + } - internal static new global::CppSharp.Parser.AST.PointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new PointerType(native.ToPointer(), skipVTables); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit = (byte) (value ? 1 : 0); + } } - internal static global::CppSharp.Parser.AST.PointerType __CreateInstance(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) + public global::CppSharp.Parser.AST.Declaration CompleteDeclaration { - return new PointerType(native, skipVTables); + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - private static void* __CopyValue(global::CppSharp.Parser.AST.PointerType.__Internal native) + public uint DefinitionOrder { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); - global::CppSharp.Parser.AST.PointerType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder = value; + } } - private PointerType(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public global::System.IntPtr OriginalPtr { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; + } } - protected PointerType(void* native, bool skipVTables = false) - : base((void*) null) + public global::CppSharp.Parser.AST.RawComment Comment { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + get + { + global::CppSharp.Parser.AST.RawComment __result0; + if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.RawComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment)) + __result0 = (global::CppSharp.Parser.AST.RawComment) global::CppSharp.Parser.AST.RawComment.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment]; + else __result0 = global::CppSharp.Parser.AST.RawComment.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public PointerType() - : this((void*) null) + public string Name { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + get + { + var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetName_0((__Instance + __PointerAdjustment), value); + } } - public PointerType(global::CppSharp.Parser.AST.PointerType _0) - : this((void*) null) + public string USR { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + get + { + var __ret = __Internal.USR_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetUSR_0((__Instance + __PointerAdjustment), value); + } } - public global::CppSharp.Parser.AST.QualifiedType QualifiedPointee + public string DebugText { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee); + var __ret = __Internal.DebugText_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + __Internal.SetDebugText_0((__Instance + __PointerAdjustment), value); } } - public global::CppSharp.Parser.AST.PointerType.TypeModifier Modifier + public uint PreprocessedEntitiesCount { get { - return ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier; + var __ret = __Internal.GetPreprocessedEntitiesCount_0((__Instance + __PointerAdjustment)); + return __ret; } + } - set + public uint RedeclarationsCount + { + get { - ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier = value; + var __ret = __Internal.GetRedeclarationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class MemberPointerType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TagType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] + [StructLayout(LayoutKind.Explicit, Size = 16)] public new partial struct __Internal { [FieldOffset(0)] @@ -1241,44 +1197,44 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; + public global::System.IntPtr declaration; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17MemberPointerTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST7TagTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17MemberPointerTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST7TagTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TagType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new MemberPointerType(native.ToPointer(), skipVTables); + return new TagType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TagType __CreateInstance(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) { - return new MemberPointerType(native, skipVTables); + return new TagType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.MemberPointerType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TagType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); - global::CppSharp.Parser.AST.MemberPointerType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); + global::CppSharp.Parser.AST.TagType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) + private TagType(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected MemberPointerType(void* native, bool skipVTables = false) + protected TagType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1287,19 +1243,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public MemberPointerType() + public TagType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType _0) + public TagType(global::CppSharp.Parser.AST.TagType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1308,23 +1264,28 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Pointee + public global::CppSharp.Parser.AST.Declaration Declaration { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee); + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration); + return __result0; } set { - ((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class TypedefType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class ArrayType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 16)] + [StructLayout(LayoutKind.Explicit, Size = 48)] public new partial struct __Internal { [FieldOffset(0)] @@ -1334,44 +1295,61 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr declaration; + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(24)] + public global::CppSharp.Parser.AST.ArrayType.ArraySize sizeType; + + [FieldOffset(32)] + public long size; + + [FieldOffset(40)] + public long elementSize; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9ArrayTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST9ArrayTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public enum ArraySize { - return new TypedefType(native.ToPointer(), skipVTables); + Constant = 0, + Variable = 1, + Dependent = 2, + Incomplete = 3 } - internal static global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypedefType(native, skipVTables); + return new ArrayType(native.ToPointer(), skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefType.__Internal native) + internal static global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); - global::CppSharp.Parser.AST.TypedefType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + return new ArrayType(native, skipVTables); } - private TypedefType(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + private static void* __CopyValue(global::CppSharp.Parser.AST.ArrayType.__Internal native) { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); + global::CppSharp.Parser.AST.ArrayType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - protected TypedefType(void* native, bool skipVTables = false) + private ArrayType(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected ArrayType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1380,19 +1358,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TypedefType() + public ArrayType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypedefType(global::CppSharp.Parser.AST.TypedefType _0) + public ArrayType(global::CppSharp.Parser.AST.ArrayType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1401,190 +1379,174 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.TypedefNameDecl Declaration + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - global::CppSharp.Parser.AST.TypedefNameDecl __result0; - if (((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.TypedefNameDecl) global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap[((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.TypedefNameDecl.__CreateInstance(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - } - - public unsafe partial class AttributedType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 40)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal modified; - - [FieldOffset(24)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal equivalent; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14AttributedTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14AttributedTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new AttributedType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) - { - return new AttributedType(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.AttributedType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); - global::CppSharp.Parser.AST.AttributedType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private AttributedType(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected AttributedType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - public AttributedType() - : this((void*) null) + public global::CppSharp.Parser.AST.ArrayType.ArraySize SizeType { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + get + { + return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType; + } - public AttributedType(global::CppSharp.Parser.AST.AttributedType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType = value; + } } - public global::CppSharp.Parser.AST.QualifiedType Modified + public long Size { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified); + return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size; } set { - ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size = value; } } - public global::CppSharp.Parser.AST.QualifiedType Equivalent + public long ElementSize { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent); + return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize; } set { - ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize = value; } } } - public unsafe partial class DecayedType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class Parameter : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 56)] + [StructLayout(LayoutKind.Explicit, Size = 224)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal decayed; + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; [FieldOffset(24)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal original; + public int lineNumberEnd; - [FieldOffset(40)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; + [FieldOffset(32)] + public global::Std.__1.BasicString.__Internal Name; + + [FieldOffset(56)] + public global::Std.__1.BasicString.__Internal USR; + + [FieldOffset(80)] + public global::Std.__1.BasicString.__Internal DebugText; + + [FieldOffset(104)] + public byte isIncomplete; + + [FieldOffset(105)] + public byte isDependent; + + [FieldOffset(106)] + public byte isImplicit; + + [FieldOffset(112)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(120)] + public uint definitionOrder; + + [FieldOffset(128)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; + + [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] + public global::System.IntPtr originalPtr; + + [FieldOffset(184)] + public global::System.IntPtr comment; + + [FieldOffset(192)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(208)] + public byte isIndirect; + + [FieldOffset(209)] + public byte hasDefaultValue; + + [FieldOffset(212)] + public uint index; + + [FieldOffset(216)] + public global::System.IntPtr defaultArgument; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DecayedTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DecayedTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Parameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DecayedType(native.ToPointer(), skipVTables); + return new Parameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Parameter __CreateInstance(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) { - return new DecayedType(native, skipVTables); + return new Parameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DecayedType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Parameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); - global::CppSharp.Parser.AST.DecayedType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); + global::CppSharp.Parser.AST.Parameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DecayedType(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) + private Parameter(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DecayedType(void* native, bool skipVTables = false) + protected Parameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1593,234 +1555,109 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public DecayedType() + public Parameter() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DecayedType(global::CppSharp.Parser.AST.DecayedType _0) + public Parameter(global::CppSharp.Parser.AST.Parameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Decayed + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType Original + public bool IsIndirect { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original); - } - - set - { - ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.QualifiedType Pointee - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee); + return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect != 0; } set { - ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect = (byte) (value ? 1 : 0); } } - } - - public unsafe partial class TemplateArgument : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 40)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind kind; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal type; - - [FieldOffset(24)] - public global::System.IntPtr declaration; - - [FieldOffset(32)] - public long integral; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16TemplateArgumentC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16TemplateArgumentC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - - public enum ArgumentKind - { - Type = 0, - Declaration = 1, - NullPtr = 2, - Integral = 3, - Template = 4, - TemplateExpansion = 5, - Expression = 6, - Pack = 7 - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new TemplateArgument(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) - { - return new TemplateArgument(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateArgument.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); - *(global::CppSharp.Parser.AST.TemplateArgument.__Internal*) ret = native; - return ret.ToPointer(); - } - - private TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected TemplateArgument(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public TemplateArgument() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.TemplateArgument __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind Kind + public bool HasDefaultValue { get { - return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind; + return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue != 0; } set { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind = value; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.QualifiedType Type + public uint Index { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type); + return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index; } set { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index = value; } } - public global::CppSharp.Parser.AST.Declaration Declaration + public global::CppSharp.Parser.AST.Expression DefaultArgument { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration); + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument); return __result0; } set { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public long Integral - { - get - { - return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral = value; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class TemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class FunctionType : global::CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 56)] public new partial struct __Internal @@ -1832,75 +1669,78 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - internal global::Std.__1.Vector.__Internal Arguments; + public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(32)] - public global::System.IntPtr _template; + [FieldOffset(24)] + public global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(40)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + [FieldOffset(28)] + public global::CppSharp.Parser.AST.ExceptionSpecType exceptionSpecType; + + [FieldOffset(32)] + internal global::Std.__1.Vector.__Internal Parameters; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType12getArgumentsEj")] - internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType13getParametersEj")] + internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType12addArgumentsERNS1_16TemplateArgumentE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType13addParametersERPNS1_9ParameterE")] + internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType15clearParametersEv")] + internal static extern void ClearParameters_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType18getParametersCountEv")] + internal static extern uint GetParametersCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateSpecializationType(native.ToPointer(), skipVTables); + return new FunctionType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) { - return new TemplateSpecializationType(native, skipVTables); + return new FunctionType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); - global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); + global::CppSharp.Parser.AST.FunctionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) + private FunctionType(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateSpecializationType(void* native, bool skipVTables = false) + protected FunctionType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1909,19 +1749,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateSpecializationType() + public FunctionType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType _0) + public FunctionType(global::CppSharp.Parser.AST.FunctionType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1940,70 +1780,82 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) + public global::CppSharp.Parser.AST.Parameter GetParameters(uint i) { - var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); - __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); + var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Parameter __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Parameter.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Parameter) global::CppSharp.Parser.AST.Parameter.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Parameter.__CreateInstance(__ret); + return __result0; } - public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) + public void AddParameters(global::CppSharp.Parser.AST.Parameter s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearArguments() + public void ClearParameters() { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.Template Template + public global::CppSharp.Parser.AST.QualifiedType ReturnType { get { - global::CppSharp.Parser.AST.Template __result0; - if (((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template)) - __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template]; - else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType); } set { - ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.CallingConvention CallingConvention { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared); + return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention; } set { - ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention = value; } } - public uint ArgumentsCount + public global::CppSharp.Parser.AST.ExceptionSpecType ExceptionSpecType { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); + return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType = value; + } + } + + public uint ParametersCount + { + get + { + var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class DependentTemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class PointerType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 48)] + [StructLayout(LayoutKind.Explicit, Size = 32)] public new partial struct __Internal { [FieldOffset(0)] @@ -2013,72 +1865,55 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - internal global::Std.__1.Vector.__Internal Arguments; + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedPointee; - [FieldOffset(32)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + [FieldOffset(24)] + public global::CppSharp.Parser.AST.PointerType.TypeModifier modifier; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11PointerTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType12getArgumentsEj")] - internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType12addArgumentsERNS1_16TemplateArgumentE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11PointerTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + public enum TypeModifier + { + Value = 0, + Pointer = 1, + LVReference = 2, + RVReference = 3 } - internal static new global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.PointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DependentTemplateSpecializationType(native.ToPointer(), skipVTables); + return new PointerType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.PointerType __CreateInstance(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) { - return new DependentTemplateSpecializationType(native, skipVTables); + return new PointerType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.PointerType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); - global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); + global::CppSharp.Parser.AST.PointerType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) + private PointerType(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DependentTemplateSpecializationType(void* native, bool skipVTables = false) + protected PointerType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2087,83 +1922,57 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public DependentTemplateSpecializationType() + public PointerType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType _0) + public PointerType(global::CppSharp.Parser.AST.PointerType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Type __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) - { - var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); - __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); - } - - public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearArguments() - { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.QualifiedType QualifiedPointee { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee); } set { - ((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public uint ArgumentsCount + public global::CppSharp.Parser.AST.PointerType.TypeModifier Modifier { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier; + } + + set + { + ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier = value; } } } - public unsafe partial class TemplateParameterType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class MemberPointerType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] + [StructLayout(LayoutKind.Explicit, Size = 24)] public new partial struct __Internal { [FieldOffset(0)] @@ -2173,58 +1982,44 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr parameter; - - [FieldOffset(16)] - public uint depth; - - [FieldOffset(20)] - public uint index; - - [FieldOffset(24)] - public byte isParameterPack; + public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST17MemberPointerTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST17MemberPointerTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateParameterType(native.ToPointer(), skipVTables); + return new MemberPointerType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) { - return new TemplateParameterType(native, skipVTables); + return new MemberPointerType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.MemberPointerType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); - global::CppSharp.Parser.AST.TemplateParameterType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); + global::CppSharp.Parser.AST.MemberPointerType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) + private MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateParameterType(void* native, bool skipVTables = false) + protected MemberPointerType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2233,148 +2028,144 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateParameterType() + public MemberPointerType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType _0) + public MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Type __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.TypeTemplateParameter Parameter + public global::CppSharp.Parser.AST.QualifiedType Pointee { get { - global::CppSharp.Parser.AST.TypeTemplateParameter __result0; - if (((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter)) - __result0 = (global::CppSharp.Parser.AST.TypeTemplateParameter) global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter]; - else __result0 = global::CppSharp.Parser.AST.TypeTemplateParameter.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee); } set { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } + } - public uint Depth + public unsafe partial class TypedefNameDecl : global::CppSharp.Parser.AST.Declaration, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 208)] + public new partial struct __Internal { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; - set - { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth = value; - } - } + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; - public uint Index - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index; - } + [FieldOffset(8)] + public global::System.IntPtr _namespace; - set - { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index = value; - } - } + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - public bool IsParameterPack - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack != 0; - } + [FieldOffset(20)] + public int lineNumberStart; - set - { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); - } - } - } + [FieldOffset(24)] + public int lineNumberEnd; - public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 32)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + [FieldOffset(32)] + public global::Std.__1.BasicString.__Internal Name; - [FieldOffset(4)] + [FieldOffset(56)] + public global::Std.__1.BasicString.__Internal USR; + + [FieldOffset(80)] + public global::Std.__1.BasicString.__Internal DebugText; + + [FieldOffset(104)] + public byte isIncomplete; + + [FieldOffset(105)] public byte isDependent; - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal replacement; + [FieldOffset(106)] + public byte isImplicit; - [FieldOffset(24)] - public global::System.IntPtr replacedParameter; + [FieldOffset(112)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(120)] + public uint definitionOrder; + + [FieldOffset(128)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; + + [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] + public global::System.IntPtr originalPtr; + + [FieldOffset(184)] + public global::System.IntPtr comment; + + [FieldOffset(192)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateParameterSubstitutionType(native.ToPointer(), skipVTables); + return new TypedefNameDecl(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) { - return new TemplateParameterSubstitutionType(native, skipVTables); + return new TypedefNameDecl(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); - global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); + global::CppSharp.Parser.AST.TypedefNameDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) + private TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateParameterSubstitutionType(void* native, bool skipVTables = false) + protected TypedefNameDecl(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2383,62 +2174,59 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateParameterSubstitutionType() + public TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0) + public TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Replacement + public override void Dispose(bool disposing) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement); - } + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - set - { - ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + public static implicit operator global::CppSharp.Parser.AST.TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) + { + return new global::CppSharp.Parser.AST.TypedefNameDecl(kind); } - public global::CppSharp.Parser.AST.TemplateParameterType ReplacedParameter + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - global::CppSharp.Parser.AST.TemplateParameterType __result0; - if (((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter)) - __result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter]; - else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TypedefType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] + [StructLayout(LayoutKind.Explicit, Size = 16)] public new partial struct __Internal { [FieldOffset(0)] @@ -2448,47 +2236,44 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal injectedSpecializationType; - - [FieldOffset(24)] - public global::System.IntPtr _class; + public global::System.IntPtr declaration; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21InjectedClassNameTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21InjectedClassNameTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new InjectedClassNameType(native.ToPointer(), skipVTables); + return new TypedefType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) { - return new InjectedClassNameType(native, skipVTables); + return new TypedefType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); - global::CppSharp.Parser.AST.InjectedClassNameType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); + global::CppSharp.Parser.AST.TypedefType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + private TypedefType(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected InjectedClassNameType(void* native, bool skipVTables = false) + protected TypedefType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2497,19 +2282,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public InjectedClassNameType() + public TypedefType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType _0) + public TypedefType(global::CppSharp.Parser.AST.TypedefType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2518,41 +2303,28 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType InjectedSpecializationType - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType); - } - - set - { - ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.Class Class + public global::CppSharp.Parser.AST.TypedefNameDecl Declaration { get { - global::CppSharp.Parser.AST.Class __result0; - if (((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class); + global::CppSharp.Parser.AST.TypedefNameDecl __result0; + if (((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.TypedefNameDecl) global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap[((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.TypedefNameDecl.__CreateInstance(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration); return __result0; } set { - ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class DependentNameType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class AttributedType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] + [StructLayout(LayoutKind.Explicit, Size = 40)] public new partial struct __Internal { [FieldOffset(0)] @@ -2562,44 +2334,47 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + public global::CppSharp.Parser.AST.QualifiedType.__Internal modified; + + [FieldOffset(24)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal equivalent; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17DependentNameTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST14AttributedTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17DependentNameTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST14AttributedTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DependentNameType(native.ToPointer(), skipVTables); + return new AttributedType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) { - return new DependentNameType(native, skipVTables); + return new AttributedType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DependentNameType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.AttributedType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); - global::CppSharp.Parser.AST.DependentNameType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); + global::CppSharp.Parser.AST.AttributedType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DependentNameType(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + private AttributedType(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DependentNameType(void* native, bool skipVTables = false) + protected AttributedType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2608,19 +2383,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public DependentNameType() + public AttributedType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DependentNameType(global::CppSharp.Parser.AST.DependentNameType _0) + public AttributedType(global::CppSharp.Parser.AST.AttributedType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2629,100 +2404,36 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.QualifiedType Modified { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified); } set { - ((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - } - public unsafe partial class PackExpansionType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 8)] - public new partial struct __Internal + public global::CppSharp.Parser.AST.QualifiedType Equivalent { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17PackExpansionTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17PackExpansionTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new PackExpansionType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) - { - return new PackExpansionType(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.PackExpansionType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); - global::CppSharp.Parser.AST.PackExpansionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected PackExpansionType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public PackExpansionType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent); + } - public PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } } - public unsafe partial class UnaryTransformType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class DecayedType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 40)] + [StructLayout(LayoutKind.Explicit, Size = 56)] public new partial struct __Internal { [FieldOffset(0)] @@ -2732,47 +2443,50 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + public global::CppSharp.Parser.AST.QualifiedType.__Internal decayed; [FieldOffset(24)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal baseType; + public global::CppSharp.Parser.AST.QualifiedType.__Internal original; + + [FieldOffset(40)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18UnaryTransformTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11DecayedTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18UnaryTransformTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST11DecayedTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new UnaryTransformType(native.ToPointer(), skipVTables); + return new DecayedType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) { - return new UnaryTransformType(native, skipVTables); + return new DecayedType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DecayedType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); - global::CppSharp.Parser.AST.UnaryTransformType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); + global::CppSharp.Parser.AST.DecayedType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) + private DecayedType(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected UnaryTransformType(void* native, bool skipVTables = false) + protected DecayedType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2781,19 +2495,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public UnaryTransformType() + public DecayedType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType _0) + public DecayedType(global::CppSharp.Parser.AST.DecayedType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2802,467 +2516,550 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.QualifiedType Decayed { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed); } set { - ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType BaseType + public global::CppSharp.Parser.AST.QualifiedType Original { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original); } set { - ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public global::CppSharp.Parser.AST.QualifiedType Pointee + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee); + } + + set + { + ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class VectorType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TemplateArgument : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 40)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind kind; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal elementType; + public global::CppSharp.Parser.AST.QualifiedType.__Internal type; [FieldOffset(24)] - public uint numElements; + public global::System.IntPtr declaration; + + [FieldOffset(32)] + public long integral; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10VectorTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST16TemplateArgumentC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10VectorTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST16TemplateArgumentC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.VectorType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public enum ArgumentKind { - return new VectorType(native.ToPointer(), skipVTables); + Type = 0, + Declaration = 1, + NullPtr = 2, + Integral = 3, + Template = 4, + TemplateExpansion = 5, + Expression = 6, + Pack = 7 } - internal static global::CppSharp.Parser.AST.VectorType __CreateInstance(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VectorType(native, skipVTables); + return new TemplateArgument(native.ToPointer(), skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VectorType.__Internal native) + internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); - global::CppSharp.Parser.AST.VectorType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return new TemplateArgument(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateArgument.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); + *(global::CppSharp.Parser.AST.TemplateArgument.__Internal*) ret = native; return ret.ToPointer(); } - private VectorType(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + private TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VectorType(void* native, bool skipVTables = false) - : base((void*) null) + protected TemplateArgument(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VectorType() - : this((void*) null) + public TemplateArgument() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VectorType(global::CppSharp.Parser.AST.VectorType _0) - : this((void*) null) + public TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) _0.__Instance); } - public global::CppSharp.Parser.AST.QualifiedType ElementType + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.TemplateArgument __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind Kind { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType); + return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind; } set { - ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind = value; } } - public uint NumElements + public global::CppSharp.Parser.AST.QualifiedType Type { get { - return ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type); } set { - ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements = value; + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - } - public unsafe partial class BuiltinType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 12)] - public new partial struct __Internal + public global::CppSharp.Parser.AST.Declaration Declaration { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.PrimitiveType type; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11BuiltinTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11BuiltinTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new BuiltinType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) - { - return new BuiltinType(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.BuiltinType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); - global::CppSharp.Parser.AST.BuiltinType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private BuiltinType(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected BuiltinType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public BuiltinType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration); + return __result0; + } - public BuiltinType(global::CppSharp.Parser.AST.BuiltinType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public global::CppSharp.Parser.AST.PrimitiveType Type + public long Integral { get { - return ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type; + return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral; } set { - ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type = value; + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral = value; } } } - public unsafe partial class VTableComponent : IDisposable + public unsafe partial class Template : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 16)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 224)] + public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.VTableComponentKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public uint offset; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr declaration; + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.__1.BasicString.__Internal Name; + + [FieldOffset(56)] + public global::Std.__1.BasicString.__Internal USR; + + [FieldOffset(80)] + public global::Std.__1.BasicString.__Internal DebugText; + + [FieldOffset(104)] + public byte isIncomplete; + + [FieldOffset(105)] + public byte isDependent; + + [FieldOffset(106)] + public byte isImplicit; + + [FieldOffset(112)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(120)] + public uint definitionOrder; + + [FieldOffset(128)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; + + [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] + public global::System.IntPtr originalPtr; + + [FieldOffset(184)] + public global::System.IntPtr comment; + + [FieldOffset(192)] + public global::System.IntPtr TemplatedDecl; + + [FieldOffset(200)] + internal global::Std.__1.Vector.__Internal Parameters; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15VTableComponentC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15VTableComponentC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } + EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2Ev")] + internal static extern void ctor_1(global::System.IntPtr instance); - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2ERKS2_")] + internal static extern void cctor_3(global::System.IntPtr instance, global::System.IntPtr _0); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Template13getParametersEj")] + internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); - internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Template13addParametersERPNS1_11DeclarationE")] + internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Template15clearParametersEv")] + internal static extern void ClearParameters_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Template18getParametersCountEv")] + internal static extern uint GetParametersCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.Template __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VTableComponent(native.ToPointer(), skipVTables); + return new Template(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Template __CreateInstance(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) { - return new VTableComponent(native, skipVTables); + return new Template(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VTableComponent.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Template.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); - *(global::CppSharp.Parser.AST.VTableComponent.__Internal*) ret = native; + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); + global::CppSharp.Parser.AST.Template.__Internal.cctor_3(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VTableComponent(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + private Template(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VTableComponent(void* native, bool skipVTables = false) + protected Template(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VTableComponent() + public Template(global::CppSharp.Parser.AST.DeclarationKind kind) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public VTableComponent(global::CppSharp.Parser.AST.VTableComponent _0) + public Template() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) _0.__Instance); + __Internal.ctor_1((__Instance + __PointerAdjustment)); } - public void Dispose() + public Template(global::CppSharp.Parser.AST.Template _0) + : this((void*) null) { - Dispose(disposing: true); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_3((__Instance + __PointerAdjustment), __arg0); } - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.VTableComponent __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.VTableComponentKind Kind + public global::CppSharp.Parser.AST.Declaration GetParameters(uint i) { - get - { - return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind = value; - } + var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Declaration __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(__ret); + return __result0; } - public uint Offset + public void AddParameters(global::CppSharp.Parser.AST.Declaration s) { - get - { - return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); + } - set - { - ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset = value; - } + public void ClearParameters() + { + __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.Declaration Declaration + public static implicit operator global::CppSharp.Parser.AST.Template(global::CppSharp.Parser.AST.DeclarationKind kind) + { + return new global::CppSharp.Parser.AST.Template(kind); + } + + public global::CppSharp.Parser.AST.Declaration TemplatedDecl { get { global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration); + if (((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl); return __result0; } set { - ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public uint ParametersCount + { + get + { + var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class VTableLayout : IDisposable + public unsafe partial class TemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 56)] + public new partial struct __Internal { [FieldOffset(0)] - internal global::Std.__1.Vector.__Internal Components; + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + internal global::Std.__1.Vector.__Internal Arguments; + + [FieldOffset(32)] + public global::System.IntPtr _template; + + [FieldOffset(40)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout13getComponentsEj")] - internal static extern global::CppSharp.Parser.AST.VTableComponent.__Internal GetComponents_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType12getArgumentsEj")] + internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout13addComponentsERNS1_15VTableComponentE")] - internal static extern void AddComponents_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType12addArgumentsERNS1_16TemplateArgumentE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout15clearComponentsEv")] - internal static extern void ClearComponents_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout18getComponentsCountEv")] - internal static extern uint GetComponentsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VTableLayout(native.ToPointer(), skipVTables); + return new TemplateSpecializationType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) { - return new VTableLayout(native, skipVTables); + return new TemplateSpecializationType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VTableLayout.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); - global::CppSharp.Parser.AST.VTableLayout.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); + global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VTableLayout(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + private TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VTableLayout(void* native, bool skipVTables = false) + protected TemplateSpecializationType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VTableLayout() + public TemplateSpecializationType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VTableLayout(global::CppSharp.Parser.AST.VTableLayout _0) + public TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -3271,14 +3068,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.VTableLayout __dummy; + global::CppSharp.Parser.AST.Type __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -3286,118 +3078,166 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.VTableComponent GetComponents(uint i) + public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) { - var __ret = __Internal.GetComponents_0((__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.VTableComponent.__CreateInstance(__ret); + var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); + __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); } - public void AddComponents(global::CppSharp.Parser.AST.VTableComponent s) + public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddComponents_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearComponents() + public void ClearArguments() { - __Internal.ClearComponents_0((__Instance + __PointerAdjustment)); + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint ComponentsCount + public global::CppSharp.Parser.AST.Template Template { get { - var __ret = __Internal.GetComponentsCount_0((__Instance + __PointerAdjustment)); + global::CppSharp.Parser.AST.Template __result0; + if (((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template)) + __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template]; + else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public global::CppSharp.Parser.AST.QualifiedType Desugared + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared); + } + + set + { + ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public uint ArgumentsCount + { + get + { + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class VFTableInfo : IDisposable + public unsafe partial class DependentTemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 40)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 48)] + public new partial struct __Internal { [FieldOffset(0)] - public ulong VBTableIndex; + public global::CppSharp.Parser.AST.TypeKind kind; - [FieldOffset(8)] - public uint VFPtrOffset; + [FieldOffset(4)] + public byte isDependent; - [FieldOffset(12)] - public uint VFPtrFullOffset; + [FieldOffset(8)] + internal global::Std.__1.Vector.__Internal Arguments; - [FieldOffset(16)] - public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; + [FieldOffset(32)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); - } - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType12getArgumentsEj")] + internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType12addArgumentsERNS1_16TemplateArgumentE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); - internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VFTableInfo(native.ToPointer(), skipVTables); + return new DependentTemplateSpecializationType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) { - return new VFTableInfo(native, skipVTables); + return new DependentTemplateSpecializationType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VFTableInfo.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); - global::CppSharp.Parser.AST.VFTableInfo.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); + global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + private DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VFTableInfo(void* native, bool skipVTables = false) + protected DependentTemplateSpecializationType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VFTableInfo() + public DependentTemplateSpecializationType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo _0) + public DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -3406,14 +3246,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.VFTableInfo __dummy; + global::CppSharp.Parser.AST.Type __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -3421,168 +3256,193 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public ulong VBTableIndex + public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) { - get - { - return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex; - } - - set - { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex = value; - } + var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); + __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); } - public uint VFPtrOffset + public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) { - get - { - return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + } - set - { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset = value; - } + public void ClearArguments() + { + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint VFPtrFullOffset + public global::CppSharp.Parser.AST.QualifiedType Desugared { get { - return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared); } set { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset = value; + ((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.VTableLayout Layout + public uint ArgumentsCount { get { - return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout); - } - - set - { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class LayoutField : IDisposable + public unsafe partial class TypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 56)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 224)] + public new partial struct __Internal { [FieldOffset(0)] - public uint offset; + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::Std.__1.BasicString.__Internal Name; + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; [FieldOffset(32)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + public global::Std.__1.BasicString.__Internal Name; - [FieldOffset(48)] - public global::System.IntPtr fieldPtr; + [FieldOffset(56)] + public global::Std.__1.BasicString.__Internal USR; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(80)] + public global::Std.__1.BasicString.__Internal DebugText; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr other); + [FieldOffset(104)] + public byte isIncomplete; + + [FieldOffset(105)] + public byte isDependent; + + [FieldOffset(106)] + public byte isImplicit; + + [FieldOffset(112)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(120)] + public uint definitionOrder; + + [FieldOffset(128)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; + + [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] + public global::System.IntPtr originalPtr; + + [FieldOffset(184)] + public global::System.IntPtr comment; + + [FieldOffset(192)] + public uint depth; + + [FieldOffset(196)] + public uint index; + + [FieldOffset(200)] + public byte isParameterPack; + + [FieldOffset(208)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal defaultArgument; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutField7getNameEv")] - internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutField7setNameEPKc")] - internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new LayoutField(native.ToPointer(), skipVTables); + return new TypeTemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) { - return new LayoutField(native, skipVTables); + return new TypeTemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutField.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); - global::CppSharp.Parser.AST.LayoutField.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); + global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private LayoutField(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) + private TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected LayoutField(void* native, bool skipVTables = false) + protected TypeTemplateParameter(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public LayoutField() + public TypeTemplateParameter() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public LayoutField(global::CppSharp.Parser.AST.LayoutField other) + public TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(other, null)) - throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = other.__Instance; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.LayoutField __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -3590,153 +3450,116 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public uint Offset + public global::CppSharp.Parser.AST.QualifiedType DefaultArgument { get { - return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument); } set { - ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset = value; + ((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } + } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public unsafe partial class TemplateParameterType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 32)] + public new partial struct __Internal { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType); - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; - set - { - ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } + [FieldOffset(4)] + public byte isDependent; - public global::System.IntPtr FieldPtr - { - get - { - return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr; - } + [FieldOffset(8)] + public global::System.IntPtr parameter; - set - { - ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr = (global::System.IntPtr) value; - } - } + [FieldOffset(16)] + public uint depth; - public string Name - { - get - { - var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } + [FieldOffset(20)] + public uint index; - set - { - __Internal.SetName_0((__Instance + __PointerAdjustment), value); - } - } - } - - public unsafe partial class LayoutBase : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 16)] - public partial struct __Internal - { - [FieldOffset(0)] - public uint offset; - - [FieldOffset(8)] - public global::System.IntPtr _class; + [FieldOffset(24)] + public byte isParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr other); + EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new LayoutBase(native.ToPointer(), skipVTables); + return new TemplateParameterType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) { - return new LayoutBase(native, skipVTables); + return new TemplateParameterType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutBase.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); - global::CppSharp.Parser.AST.LayoutBase.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); + global::CppSharp.Parser.AST.TemplateParameterType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private LayoutBase(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) + private TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected LayoutBase(void* native, bool skipVTables = false) + protected TemplateParameterType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public LayoutBase() + public TemplateParameterType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public LayoutBase(global::CppSharp.Parser.AST.LayoutBase other) + public TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(other, null)) - throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = other.__Instance; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.LayoutBase __dummy; + global::CppSharp.Parser.AST.Type __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -3744,199 +3567,138 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public uint Offset + public global::CppSharp.Parser.AST.TypeTemplateParameter Parameter { get { - return ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset; + global::CppSharp.Parser.AST.TypeTemplateParameter __result0; + if (((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter)) + __result0 = (global::CppSharp.Parser.AST.TypeTemplateParameter) global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter]; + else __result0 = global::CppSharp.Parser.AST.TypeTemplateParameter.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter); + return __result0; } set { - ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset = value; + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public global::CppSharp.Parser.AST.Class Class + public uint Depth { get { - global::CppSharp.Parser.AST.Class __result0; - if (((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class); - return __result0; + return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth; } set { - ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth = value; } } - } - public unsafe partial class ClassLayout : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 136)] - public partial struct __Internal + public uint Index { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.CppAbi ABI; - - [FieldOffset(8)] - internal global::Std.__1.Vector.__Internal VFTables; - - [FieldOffset(32)] - public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; + get + { + return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index; + } - [FieldOffset(56)] - public byte hasOwnVFPtr; + set + { + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index = value; + } + } - [FieldOffset(64)] - public long VBPtrOffset; + public bool IsParameterPack + { + get + { + return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack != 0; + } - [FieldOffset(72)] - public int alignment; + set + { + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); + } + } + } - [FieldOffset(76)] - public int size; + public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 32)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; - [FieldOffset(80)] - public int dataSize; + [FieldOffset(4)] + public byte isDependent; - [FieldOffset(88)] - internal global::Std.__1.Vector.__Internal Fields; + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal replacement; - [FieldOffset(112)] - internal global::Std.__1.Vector.__Internal Bases; + [FieldOffset(24)] + public global::System.IntPtr replacedParameter; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11getVFTablesEj")] - internal static extern void GetVFTables_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11addVFTablesERNS1_11VFTableInfoE")] - internal static extern void AddVFTables_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout13clearVFTablesEv")] - internal static extern void ClearVFTables_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout9getFieldsEj")] - internal static extern void GetFields_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout9addFieldsERNS1_11LayoutFieldE")] - internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11clearFieldsEv")] - internal static extern void ClearFields_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout8getBasesEj")] - internal static extern void GetBases_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout8addBasesERNS1_10LayoutBaseE")] - internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout10clearBasesEv")] - internal static extern void ClearBases_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout16getVFTablesCountEv")] - internal static extern uint GetVFTablesCount_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout14getFieldsCountEv")] - internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout13getBasesCountEv")] - internal static extern uint GetBasesCount_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassLayout(native.ToPointer(), skipVTables); + return new TemplateParameterSubstitutionType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) { - return new ClassLayout(native, skipVTables); + return new TemplateParameterSubstitutionType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassLayout.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); - global::CppSharp.Parser.AST.ClassLayout.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); + global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassLayout(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) + private TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassLayout(void* native, bool skipVTables = false) + protected TemplateParameterSubstitutionType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public ClassLayout() + public TemplateParameterSubstitutionType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public ClassLayout(global::CppSharp.Parser.AST.ClassLayout _0) + public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -3945,204 +3707,42 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.ClassLayout __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.VFTableInfo GetVFTables(uint i) - { - var __ret = new global::CppSharp.Parser.AST.VFTableInfo.__Internal(); - __Internal.GetVFTables_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.VFTableInfo.__CreateInstance(__ret); - } - - public void AddVFTables(global::CppSharp.Parser.AST.VFTableInfo s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddVFTables_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearVFTables() - { - __Internal.ClearVFTables_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.LayoutField GetFields(uint i) - { - var __ret = new global::CppSharp.Parser.AST.LayoutField.__Internal(); - __Internal.GetFields_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.LayoutField.__CreateInstance(__ret); - } - - public void AddFields(global::CppSharp.Parser.AST.LayoutField s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearFields() - { - __Internal.ClearFields_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.LayoutBase GetBases(uint i) - { - var __ret = new global::CppSharp.Parser.AST.LayoutBase.__Internal(); - __Internal.GetBases_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.LayoutBase.__CreateInstance(__ret); - } - - public void AddBases(global::CppSharp.Parser.AST.LayoutBase s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearBases() - { - __Internal.ClearBases_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.CppAbi ABI - { - get - { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI; - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI = value; - } - } - - public global::CppSharp.Parser.AST.VTableLayout Layout - { - get - { - return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout); - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; - } - } - - public bool HasOwnVFPtr - { - get - { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr != 0; - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr = (byte) (value ? 1 : 0); - } - } - - public long VBPtrOffset - { - get - { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset; - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset = value; - } - } - - public int Alignment - { - get - { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment; - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment = value; - } - } - - public int Size + public global::CppSharp.Parser.AST.QualifiedType Replacement { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement); } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size = value; + ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public int DataSize + public global::CppSharp.Parser.AST.TemplateParameterType ReplacedParameter { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize; + global::CppSharp.Parser.AST.TemplateParameterType __result0; + if (((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter)) + __result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter]; + else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter); + return __result0; } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize = value; - } - } - - public uint VFTablesCount - { - get - { - var __ret = __Internal.GetVFTablesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint FieldsCount - { - get - { - var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint BasesCount - { - get - { - var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class Declaration : IDisposable + public unsafe partial class Class : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 168)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 560)] + public new partial struct __Internal { [FieldOffset(0)] public global::CppSharp.Parser.AST.DeclarationKind kind; @@ -4190,127 +3790,234 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] public global::System.IntPtr originalPtr; - [FieldOffset(160)] + [FieldOffset(184)] public global::System.IntPtr comment; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + [FieldOffset(192)] + internal global::Std.__1.Vector.__Internal Namespaces; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(216)] + internal global::Std.__1.Vector.__Internal Enums; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + [FieldOffset(240)] + internal global::Std.__1.Vector.__Internal Functions; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration23getPreprocessedEntitiesEj")] - internal static extern global::System.IntPtr GetPreprocessedEntities_0(global::System.IntPtr instance, uint i); + [FieldOffset(264)] + internal global::Std.__1.Vector.__Internal Classes; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration23addPreprocessedEntitiesERPNS1_18PreprocessedEntityE")] - internal static extern void AddPreprocessedEntities_0(global::System.IntPtr instance, global::System.IntPtr s); + [FieldOffset(288)] + internal global::Std.__1.Vector.__Internal Templates; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration25clearPreprocessedEntitiesEv")] - internal static extern void ClearPreprocessedEntities_0(global::System.IntPtr instance); + [FieldOffset(312)] + internal global::Std.__1.Vector.__Internal Typedefs; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration7getNameEv")] - internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); + [FieldOffset(336)] + internal global::Std.__1.Vector.__Internal TypeAliases; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration7setNameEPKc")] - internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + [FieldOffset(360)] + internal global::Std.__1.Vector.__Internal Variables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration6getUSREv")] - internal static extern global::System.IntPtr USR_0(global::System.IntPtr instance); + [FieldOffset(384)] + internal global::Std.__1.Vector.__Internal Friends; + + [FieldOffset(408)] + internal global::Std.__1.Map.__Internal anonymous; + + [FieldOffset(432)] + public byte isAnonymous; + + [FieldOffset(440)] + internal global::Std.__1.Vector.__Internal Bases; + + [FieldOffset(464)] + internal global::Std.__1.Vector.__Internal Fields; + + [FieldOffset(488)] + internal global::Std.__1.Vector.__Internal Methods; + + [FieldOffset(512)] + internal global::Std.__1.Vector.__Internal Specifiers; + + [FieldOffset(536)] + public byte isPOD; + + [FieldOffset(537)] + public byte isAbstract; + + [FieldOffset(538)] + public byte isUnion; + + [FieldOffset(539)] + public byte isDynamic; + + [FieldOffset(540)] + public byte isPolymorphic; + + [FieldOffset(541)] + public byte hasNonTrivialDefaultConstructor; + + [FieldOffset(542)] + public byte hasNonTrivialCopyConstructor; + + [FieldOffset(543)] + public byte hasNonTrivialDestructor; + + [FieldOffset(544)] + public byte isExternCContext; + + [FieldOffset(545)] + public byte isInjected; + + [FieldOffset(552)] + public global::System.IntPtr layout; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration6setUSREPKc")] - internal static extern void SetUSR_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="_ZN8CppSharp9CppParser3AST5ClassC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration12getDebugTextEv")] - internal static extern global::System.IntPtr DebugText_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST5ClassC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration12setDebugTextEPKc")] - internal static extern void SetDebugText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="_ZN8CppSharp9CppParser3AST5ClassD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration28getPreprocessedEntitiesCountEv")] - internal static extern uint GetPreprocessedEntitiesCount_0(global::System.IntPtr instance); - } + EntryPoint="_ZN8CppSharp9CppParser3AST5Class8getBasesEj")] + internal static extern global::System.IntPtr GetBases_0(global::System.IntPtr instance, uint i); - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class8addBasesERPNS1_18BaseClassSpecifierE")] + internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class10clearBasesEv")] + internal static extern void ClearBases_0(global::System.IntPtr instance); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class9getFieldsEj")] + internal static extern global::System.IntPtr GetFields_0(global::System.IntPtr instance, uint i); - internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class9addFieldsERPNS1_5FieldE")] + internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class11clearFieldsEv")] + internal static extern void ClearFields_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class10getMethodsEj")] + internal static extern global::System.IntPtr GetMethods_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class10addMethodsERPNS1_6MethodE")] + internal static extern void AddMethods_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class12clearMethodsEv")] + internal static extern void ClearMethods_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class13getSpecifiersEj")] + internal static extern global::System.IntPtr GetSpecifiers_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class13addSpecifiersERPNS1_19AccessSpecifierDeclE")] + internal static extern void AddSpecifiers_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class15clearSpecifiersEv")] + internal static extern void ClearSpecifiers_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class13getBasesCountEv")] + internal static extern uint GetBasesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class14getFieldsCountEv")] + internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class15getMethodsCountEv")] + internal static extern uint GetMethodsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class18getSpecifiersCountEv")] + internal static extern uint GetSpecifiersCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.Class __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Declaration(native.ToPointer(), skipVTables); + return new Class(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Class __CreateInstance(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) { - return new Declaration(native, skipVTables); + return new Class(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Declaration.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Class.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); - global::CppSharp.Parser.AST.Declaration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); + global::CppSharp.Parser.AST.Class.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Declaration(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) + private Class(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Declaration(void* native, bool skipVTables = false) + protected Class(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) + public Class() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Declaration(global::CppSharp.Parser.AST.Declaration _0) + public Class(global::CppSharp.Parser.AST.Class _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -4319,12 +4026,7 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); @@ -4334,613 +4036,1588 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.PreprocessedEntity GetPreprocessedEntities(uint i) + public global::CppSharp.Parser.AST.BaseClassSpecifier GetBases(uint i) { - var __ret = __Internal.GetPreprocessedEntities_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.PreprocessedEntity __result0; + var __ret = __Internal.GetBases_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.BaseClassSpecifier __result0; if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.PreprocessedEntity) global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.PreprocessedEntity.__CreateInstance(__ret); + else if (global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.BaseClassSpecifier) global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.BaseClassSpecifier.__CreateInstance(__ret); return __result0; } - public void AddPreprocessedEntities(global::CppSharp.Parser.AST.PreprocessedEntity s) + public void AddBases(global::CppSharp.Parser.AST.BaseClassSpecifier s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddPreprocessedEntities_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearPreprocessedEntities() + public void ClearBases() { - __Internal.ClearPreprocessedEntities_0((__Instance + __PointerAdjustment)); + __Internal.ClearBases_0((__Instance + __PointerAdjustment)); } - public static implicit operator global::CppSharp.Parser.AST.Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) + public global::CppSharp.Parser.AST.Field GetFields(uint i) { - return new global::CppSharp.Parser.AST.Declaration(kind); + var __ret = __Internal.GetFields_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Field __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Field.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Field) global::CppSharp.Parser.AST.Field.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Field.__CreateInstance(__ret); + return __result0; } - public global::CppSharp.Parser.AST.DeclarationKind Kind + public void AddFields(global::CppSharp.Parser.AST.Field s) { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind = value; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.AccessSpecifier Access + public void ClearFields() { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access; - } - - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access = value; - } + __Internal.ClearFields_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.DeclarationContext Namespace + public global::CppSharp.Parser.AST.Method GetMethods(uint i) { - get - { - global::CppSharp.Parser.AST.DeclarationContext __result0; - if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace)) - __result0 = (global::CppSharp.Parser.AST.DeclarationContext) global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace]; - else __result0 = global::CppSharp.Parser.AST.DeclarationContext.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + var __ret = __Internal.GetMethods_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Method __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Method.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Method) global::CppSharp.Parser.AST.Method.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Method.__CreateInstance(__ret); + return __result0; } - public global::CppSharp.Parser.SourceLocation Location + public void AddMethods(global::CppSharp.Parser.AST.Method s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddMethods_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearMethods() + { + __Internal.ClearMethods_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.AccessSpecifierDecl GetSpecifiers(uint i) + { + var __ret = __Internal.GetSpecifiers_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.AccessSpecifierDecl __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.AccessSpecifierDecl) global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.AccessSpecifierDecl.__CreateInstance(__ret); + return __result0; + } + + public void AddSpecifiers(global::CppSharp.Parser.AST.AccessSpecifierDecl s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecifiers_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearSpecifiers() + { + __Internal.ClearSpecifiers_0((__Instance + __PointerAdjustment)); + } + + public bool IsPOD { get { - return global::CppSharp.Parser.SourceLocation.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location); + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location = value.__Instance; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD = (byte) (value ? 1 : 0); } } - public int LineNumberStart + public bool IsAbstract { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract = (byte) (value ? 1 : 0); } } - public int LineNumberEnd + public bool IsUnion { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion = (byte) (value ? 1 : 0); } } - public bool IsIncomplete + public bool IsDynamic { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete != 0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic = (byte) (value ? 1 : 0); } } - public bool IsDependent + public bool IsPolymorphic { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent != 0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic = (byte) (value ? 1 : 0); } } - public bool IsImplicit + public bool HasNonTrivialDefaultConstructor { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit != 0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.Declaration CompleteDeclaration + public bool HasNonTrivialCopyConstructor { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration); - return __result0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor = (byte) (value ? 1 : 0); } } - public uint DefinitionOrder + public bool HasNonTrivialDestructor { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor = (byte) (value ? 1 : 0); } } - public global::System.IntPtr OriginalPtr + public bool IsExternCContext { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.RawComment Comment + public bool IsInjected { get { - global::CppSharp.Parser.AST.RawComment __result0; - if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.RawComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment)) - __result0 = (global::CppSharp.Parser.AST.RawComment) global::CppSharp.Parser.AST.RawComment.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment]; - else __result0 = global::CppSharp.Parser.AST.RawComment.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment); - return __result0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected = (byte) (value ? 1 : 0); } } - public string Name + public global::CppSharp.Parser.AST.ClassLayout Layout { get { - var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + global::CppSharp.Parser.AST.ClassLayout __result0; + if (((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout)) + __result0 = (global::CppSharp.Parser.AST.ClassLayout) global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap[((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout]; + else __result0 = global::CppSharp.Parser.AST.ClassLayout.__CreateInstance(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout); + return __result0; } set { - __Internal.SetName_0((__Instance + __PointerAdjustment), value); + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public string USR + public uint BasesCount { get { - var __ret = __Internal.USR_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetUSR_0((__Instance + __PointerAdjustment), value); + var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); + return __ret; } } - public string DebugText + public uint FieldsCount { get { - var __ret = __Internal.DebugText_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); + return __ret; } + } - set + public uint MethodsCount + { + get { - __Internal.SetDebugText_0((__Instance + __PointerAdjustment), value); + var __ret = __Internal.GetMethodsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } - public uint PreprocessedEntitiesCount + public uint SpecifiersCount { get { - var __ret = __Internal.GetPreprocessedEntitiesCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetSpecifiersCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class DeclarationContext : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 416)] + [StructLayout(LayoutKind.Explicit, Size = 32)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.TypeKind kind; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; + public global::CppSharp.Parser.AST.QualifiedType.__Internal injectedSpecializationType; [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.__1.BasicString.__Internal Name; + public global::System.IntPtr _class; - [FieldOffset(56)] - public global::Std.__1.BasicString.__Internal USR; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST21InjectedClassNameTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(80)] - public global::Std.__1.BasicString.__Internal DebugText; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST21InjectedClassNameTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } - [FieldOffset(104)] - public byte isIncomplete; + internal static new global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new InjectedClassNameType(native.ToPointer(), skipVTables); + } - [FieldOffset(105)] - public byte isDependent; + internal static global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + { + return new InjectedClassNameType(native, skipVTables); + } - [FieldOffset(106)] - public byte isImplicit; + private static void* __CopyValue(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + global::CppSharp.Parser.AST.InjectedClassNameType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [FieldOffset(112)] - public global::System.IntPtr completeDeclaration; + private InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [FieldOffset(120)] - public uint definitionOrder; + protected InjectedClassNameType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [FieldOffset(128)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; + public InjectedClassNameType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(152)] - public global::System.IntPtr originalPtr; + public InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(160)] - public global::System.IntPtr comment; + public global::CppSharp.Parser.AST.QualifiedType InjectedSpecializationType + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType); + } - [FieldOffset(168)] - internal global::Std.__1.Vector.__Internal Namespaces; + set + { + ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } - [FieldOffset(192)] - internal global::Std.__1.Vector.__Internal Enums; + public global::CppSharp.Parser.AST.Class Class + { + get + { + global::CppSharp.Parser.AST.Class __result0; + if (((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + } + + public unsafe partial class DependentNameType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 24)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17DependentNameTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17DependentNameTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } + + internal static new global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new DependentNameType(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + { + return new DependentNameType(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.DependentNameType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + global::CppSharp.Parser.AST.DependentNameType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private DependentNameType(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected DependentNameType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public DependentNameType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public DependentNameType(global::CppSharp.Parser.AST.DependentNameType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } + + public global::CppSharp.Parser.AST.QualifiedType Desugared + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared); + } + + set + { + ((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + } + + public unsafe partial class PackExpansionType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 8)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17PackExpansionTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17PackExpansionTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } + + internal static new global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new PackExpansionType(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) + { + return new PackExpansionType(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.PackExpansionType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + global::CppSharp.Parser.AST.PackExpansionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected PackExpansionType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public PackExpansionType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } + } + + public unsafe partial class UnaryTransformType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 40)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + + [FieldOffset(24)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal baseType; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18UnaryTransformTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18UnaryTransformTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } + + internal static new global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new UnaryTransformType(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) + { + return new UnaryTransformType(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + global::CppSharp.Parser.AST.UnaryTransformType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected UnaryTransformType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public UnaryTransformType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } + + public global::CppSharp.Parser.AST.QualifiedType Desugared + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared); + } + + set + { + ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public global::CppSharp.Parser.AST.QualifiedType BaseType + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType); + } + + set + { + ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + } + + public unsafe partial class VectorType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 32)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal elementType; + + [FieldOffset(24)] + public uint numElements; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10VectorTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10VectorTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } + + internal static new global::CppSharp.Parser.AST.VectorType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new VectorType(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.VectorType __CreateInstance(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + { + return new VectorType(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.VectorType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + global::CppSharp.Parser.AST.VectorType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private VectorType(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected VectorType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public VectorType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public VectorType(global::CppSharp.Parser.AST.VectorType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } + + public global::CppSharp.Parser.AST.QualifiedType ElementType + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType); + } + + set + { + ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public uint NumElements + { + get + { + return ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements; + } + + set + { + ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements = value; + } + } + } + + public unsafe partial class BuiltinType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 12)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + public global::CppSharp.Parser.AST.PrimitiveType type; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11BuiltinTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11BuiltinTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } + + internal static new global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new BuiltinType(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) + { + return new BuiltinType(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.BuiltinType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + global::CppSharp.Parser.AST.BuiltinType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private BuiltinType(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected BuiltinType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public BuiltinType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public BuiltinType(global::CppSharp.Parser.AST.BuiltinType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } + + public global::CppSharp.Parser.AST.PrimitiveType Type + { + get + { + return ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type; + } + + set + { + ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type = value; + } + } + } + + public unsafe partial class VTableComponent : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 16)] + public partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.VTableComponentKind kind; + + [FieldOffset(4)] + public uint offset; + + [FieldOffset(8)] + public global::System.IntPtr declaration; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST15VTableComponentC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST15VTableComponentC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + } + + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new VTableComponent(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + { + return new VTableComponent(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.VTableComponent.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + *(global::CppSharp.Parser.AST.VTableComponent.__Internal*) ret = native; + return ret.ToPointer(); + } + + private VTableComponent(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected VTableComponent(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public VTableComponent() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public VTableComponent(global::CppSharp.Parser.AST.VTableComponent _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) _0.__Instance); + } + + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.VTableComponent __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.VTableComponentKind Kind + { + get + { + return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind; + } + + set + { + ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind = value; + } + } + + public uint Offset + { + get + { + return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset; + } + + set + { + ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset = value; + } + } + + public global::CppSharp.Parser.AST.Declaration Declaration + { + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + } + + public unsafe partial class VTableLayout : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 24)] + public partial struct __Internal + { + [FieldOffset(0)] + internal global::Std.__1.Vector.__Internal Components; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(216)] - internal global::Std.__1.Vector.__Internal Functions; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(240)] - internal global::Std.__1.Vector.__Internal Classes; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - [FieldOffset(264)] - internal global::Std.__1.Vector.__Internal Templates; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout13getComponentsEj")] + internal static extern global::CppSharp.Parser.AST.VTableComponent.__Internal GetComponents_0(global::System.IntPtr instance, uint i); - [FieldOffset(288)] - internal global::Std.__1.Vector.__Internal Typedefs; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout13addComponentsERNS1_15VTableComponentE")] + internal static extern void AddComponents_0(global::System.IntPtr instance, global::System.IntPtr s); - [FieldOffset(312)] - internal global::Std.__1.Vector.__Internal TypeAliases; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout15clearComponentsEv")] + internal static extern void ClearComponents_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout18getComponentsCountEv")] + internal static extern uint GetComponentsCount_0(global::System.IntPtr instance); + } + + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new VTableLayout(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + { + return new VTableLayout(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.VTableLayout.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + global::CppSharp.Parser.AST.VTableLayout.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private VTableLayout(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected VTableLayout(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public VTableLayout() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public VTableLayout(global::CppSharp.Parser.AST.VTableLayout _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.VTableLayout __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.VTableComponent GetComponents(uint i) + { + var __ret = __Internal.GetComponents_0((__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.VTableComponent.__CreateInstance(__ret); + } + + public void AddComponents(global::CppSharp.Parser.AST.VTableComponent s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddComponents_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearComponents() + { + __Internal.ClearComponents_0((__Instance + __PointerAdjustment)); + } + + public uint ComponentsCount + { + get + { + var __ret = __Internal.GetComponentsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + } + + public unsafe partial class VFTableInfo : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 40)] + public partial struct __Internal + { + [FieldOffset(0)] + public ulong VBTableIndex; + + [FieldOffset(8)] + public uint VFPtrOffset; + + [FieldOffset(12)] + public uint VFPtrFullOffset; + + [FieldOffset(16)] + public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + } + + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new VFTableInfo(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + { + return new VFTableInfo(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.VFTableInfo.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + global::CppSharp.Parser.AST.VFTableInfo.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected VFTableInfo(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public VFTableInfo() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.VFTableInfo __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public ulong VBTableIndex + { + get + { + return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex; + } + + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex = value; + } + } - [FieldOffset(336)] - internal global::Std.__1.Vector.__Internal Variables; + public uint VFPtrOffset + { + get + { + return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset; + } - [FieldOffset(360)] - internal global::Std.__1.Vector.__Internal Friends; + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset = value; + } + } - [FieldOffset(384)] - internal global::Std.__1.Map.__Internal anonymous; + public uint VFPtrFullOffset + { + get + { + return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset; + } - [FieldOffset(408)] - public byte isAnonymous; + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + public global::CppSharp.Parser.AST.VTableLayout Layout + { + get + { + return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; + } + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + public unsafe partial class LayoutField : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 56)] + public partial struct __Internal + { + [FieldOffset(0)] + public uint offset; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13getNamespacesEj")] - internal static extern global::System.IntPtr GetNamespaces_0(global::System.IntPtr instance, uint i); + [FieldOffset(8)] + public global::Std.__1.BasicString.__Internal Name; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13addNamespacesERPNS1_9NamespaceE")] - internal static extern void AddNamespaces_0(global::System.IntPtr instance, global::System.IntPtr s); + [FieldOffset(32)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15clearNamespacesEv")] - internal static extern void ClearNamespaces_0(global::System.IntPtr instance); + [FieldOffset(48)] + public global::System.IntPtr fieldPtr; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext8getEnumsEj")] - internal static extern global::System.IntPtr GetEnums_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext8addEnumsERPNS1_11EnumerationE")] - internal static extern void AddEnums_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr other); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10clearEnumsEv")] - internal static extern void ClearEnums_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getFunctionsEj")] - internal static extern global::System.IntPtr GetFunctions_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutField7getNameEv")] + internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addFunctionsERPNS1_8FunctionE")] - internal static extern void AddFunctions_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutField7setNameEPKc")] + internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearFunctionsEv")] - internal static extern void ClearFunctions_0(global::System.IntPtr instance); + public global::System.IntPtr __Instance { get; protected set; } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10getClassesEj")] - internal static extern global::System.IntPtr GetClasses_0(global::System.IntPtr instance, uint i); + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10addClassesERPNS1_5ClassE")] - internal static extern void AddClasses_0(global::System.IntPtr instance, global::System.IntPtr s); + protected bool __ownsNativeInstance; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12clearClassesEv")] - internal static extern void ClearClasses_0(global::System.IntPtr instance); + internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new LayoutField(native.ToPointer(), skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getTemplatesEj")] - internal static extern global::System.IntPtr GetTemplates_0(global::System.IntPtr instance, uint i); + internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) + { + return new LayoutField(native, skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addTemplatesERPNS1_8TemplateE")] - internal static extern void AddTemplates_0(global::System.IntPtr instance, global::System.IntPtr s); + private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutField.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + global::CppSharp.Parser.AST.LayoutField.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearTemplatesEv")] - internal static extern void ClearTemplates_0(global::System.IntPtr instance); + private LayoutField(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext11getTypedefsEj")] - internal static extern global::System.IntPtr GetTypedefs_0(global::System.IntPtr instance, uint i); + protected LayoutField(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext11addTypedefsERPNS1_11TypedefDeclE")] - internal static extern void AddTypedefs_0(global::System.IntPtr instance, global::System.IntPtr s); + public LayoutField() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13clearTypedefsEv")] - internal static extern void ClearTypedefs_0(global::System.IntPtr instance); + public LayoutField(global::CppSharp.Parser.AST.LayoutField other) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(other, null)) + throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = other.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14getTypeAliasesEj")] - internal static extern global::System.IntPtr GetTypeAliases_0(global::System.IntPtr instance, uint i); + public void Dispose() + { + Dispose(disposing: true); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14addTypeAliasesERPNS1_9TypeAliasE")] - internal static extern void AddTypeAliases_0(global::System.IntPtr instance, global::System.IntPtr s); + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.LayoutField __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext16clearTypeAliasesEv")] - internal static extern void ClearTypeAliases_0(global::System.IntPtr instance); + public uint Offset + { + get + { + return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getVariablesEj")] - internal static extern global::System.IntPtr GetVariables_0(global::System.IntPtr instance, uint i); + set + { + ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addVariablesERPNS1_8VariableE")] - internal static extern void AddVariables_0(global::System.IntPtr instance, global::System.IntPtr s); + public global::CppSharp.Parser.AST.QualifiedType QualifiedType + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearVariablesEv")] - internal static extern void ClearVariables_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10getFriendsEj")] - internal static extern global::System.IntPtr GetFriends_0(global::System.IntPtr instance, uint i); + public global::System.IntPtr FieldPtr + { + get + { + return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10addFriendsERPNS1_6FriendE")] - internal static extern void AddFriends_0(global::System.IntPtr instance, global::System.IntPtr s); + set + { + ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr = (global::System.IntPtr) value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12clearFriendsEv")] - internal static extern void ClearFriends_0(global::System.IntPtr instance); + public string Name + { + get + { + var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext18getNamespacesCountEv")] - internal static extern uint GetNamespacesCount_0(global::System.IntPtr instance); + set + { + __Internal.SetName_0((__Instance + __PointerAdjustment), value); + } + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13getEnumsCountEv")] - internal static extern uint GetEnumsCount_0(global::System.IntPtr instance); + public unsafe partial class LayoutBase : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 16)] + public partial struct __Internal + { + [FieldOffset(0)] + public uint offset; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getFunctionsCountEv")] - internal static extern uint GetFunctionsCount_0(global::System.IntPtr instance); + [FieldOffset(8)] + public global::System.IntPtr _class; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15getClassesCountEv")] - internal static extern uint GetClassesCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getTemplatesCountEv")] - internal static extern uint GetTemplatesCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr other); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext16getTypedefsCountEv")] - internal static extern uint GetTypedefsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext19getTypeAliasesCountEv")] - internal static extern uint GetTypeAliasesCount_0(global::System.IntPtr instance); + public global::System.IntPtr __Instance { get; protected set; } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getVariablesCountEv")] - internal static extern uint GetVariablesCount_0(global::System.IntPtr instance); + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15getFriendsCountEv")] - internal static extern uint GetFriendsCount_0(global::System.IntPtr instance); - } + protected bool __ownsNativeInstance; - internal static new global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DeclarationContext(native.ToPointer(), skipVTables); + return new LayoutBase(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) { - return new DeclarationContext(native, skipVTables); + return new LayoutBase(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DeclarationContext.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutBase.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); - global::CppSharp.Parser.AST.DeclarationContext.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + global::CppSharp.Parser.AST.LayoutBase.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) + private LayoutBase(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DeclarationContext(void* native, bool skipVTables = false) - : base((void*) null) + protected LayoutBase(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) - : this((void*) null) + public LayoutBase() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext _0) - : this((void*) null) + public LayoutBase(global::CppSharp.Parser.AST.LayoutBase other) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + if (ReferenceEquals(other, null)) + throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = other.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.LayoutBase __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -4948,325 +5625,404 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Namespace GetNamespaces(uint i) - { - var __ret = __Internal.GetNamespaces_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Namespace __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Namespace.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Namespace) global::CppSharp.Parser.AST.Namespace.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Namespace.__CreateInstance(__ret); - return __result0; - } + public uint Offset + { + get + { + return ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset; + } + + set + { + ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset = value; + } + } + + public global::CppSharp.Parser.AST.Class Class + { + get + { + global::CppSharp.Parser.AST.Class __result0; + if (((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + } + + public unsafe partial class ClassLayout : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 136)] + public partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.CppAbi ABI; + + [FieldOffset(8)] + internal global::Std.__1.Vector.__Internal VFTables; + + [FieldOffset(32)] + public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; + + [FieldOffset(56)] + public byte hasOwnVFPtr; + + [FieldOffset(64)] + public long VBPtrOffset; + + [FieldOffset(72)] + public int alignment; + + [FieldOffset(76)] + public int size; + + [FieldOffset(80)] + public int dataSize; + + [FieldOffset(88)] + internal global::Std.__1.Vector.__Internal Fields; + + [FieldOffset(112)] + internal global::Std.__1.Vector.__Internal Bases; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11getVFTablesEj")] + internal static extern void GetVFTables_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11addVFTablesERNS1_11VFTableInfoE")] + internal static extern void AddVFTables_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout13clearVFTablesEv")] + internal static extern void ClearVFTables_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout9getFieldsEj")] + internal static extern void GetFields_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout9addFieldsERNS1_11LayoutFieldE")] + internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11clearFieldsEv")] + internal static extern void ClearFields_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout8getBasesEj")] + internal static extern void GetBases_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout8addBasesERNS1_10LayoutBaseE")] + internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout10clearBasesEv")] + internal static extern void ClearBases_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout16getVFTablesCountEv")] + internal static extern uint GetVFTablesCount_0(global::System.IntPtr instance); - public void AddNamespaces(global::CppSharp.Parser.AST.Namespace s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddNamespaces_0((__Instance + __PointerAdjustment), __arg0); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout14getFieldsCountEv")] + internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); - public void ClearNamespaces() - { - __Internal.ClearNamespaces_0((__Instance + __PointerAdjustment)); + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout13getBasesCountEv")] + internal static extern uint GetBasesCount_0(global::System.IntPtr instance); } - public global::CppSharp.Parser.AST.Enumeration GetEnums(uint i) - { - var __ret = __Internal.GetEnums_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Enumeration __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Enumeration) global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Enumeration.__CreateInstance(__ret); - return __result0; - } + public global::System.IntPtr __Instance { get; protected set; } - public void AddEnums(global::CppSharp.Parser.AST.Enumeration s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddEnums_0((__Instance + __PointerAdjustment), __arg0); - } + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - public void ClearEnums() - { - __Internal.ClearEnums_0((__Instance + __PointerAdjustment)); - } + protected bool __ownsNativeInstance; - public global::CppSharp.Parser.AST.Function GetFunctions(uint i) + internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - var __ret = __Internal.GetFunctions_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Function __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(__ret); - return __result0; + return new ClassLayout(native.ToPointer(), skipVTables); } - public void AddFunctions(global::CppSharp.Parser.AST.Function s) + internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFunctions_0((__Instance + __PointerAdjustment), __arg0); + return new ClassLayout(native, skipVTables); } - public void ClearFunctions() + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassLayout.__Internal native) { - __Internal.ClearFunctions_0((__Instance + __PointerAdjustment)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + global::CppSharp.Parser.AST.ClassLayout.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public global::CppSharp.Parser.AST.Class GetClasses(uint i) + private ClassLayout(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - var __ret = __Internal.GetClasses_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Class __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(__ret); - return __result0; + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public void AddClasses(global::CppSharp.Parser.AST.Class s) + protected ClassLayout(void* native, bool skipVTables = false) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddClasses_0((__Instance + __PointerAdjustment), __arg0); + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public void ClearClasses() + public ClassLayout() { - __Internal.ClearClasses_0((__Instance + __PointerAdjustment)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.Template GetTemplates(uint i) + public ClassLayout(global::CppSharp.Parser.AST.ClassLayout _0) { - var __ret = __Internal.GetTemplates_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Template __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(__ret); - return __result0; + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public void AddTemplates(global::CppSharp.Parser.AST.Template s) + public void Dispose() { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddTemplates_0((__Instance + __PointerAdjustment), __arg0); + Dispose(disposing: true); } - public void ClearTemplates() + public virtual void Dispose(bool disposing) { - __Internal.ClearTemplates_0((__Instance + __PointerAdjustment)); + global::CppSharp.Parser.AST.ClassLayout __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.TypedefDecl GetTypedefs(uint i) + public global::CppSharp.Parser.AST.VFTableInfo GetVFTables(uint i) { - var __ret = __Internal.GetTypedefs_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.TypedefDecl __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.TypedefDecl) global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.TypedefDecl.__CreateInstance(__ret); - return __result0; + var __ret = new global::CppSharp.Parser.AST.VFTableInfo.__Internal(); + __Internal.GetVFTables_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.VFTableInfo.__CreateInstance(__ret); } - public void AddTypedefs(global::CppSharp.Parser.AST.TypedefDecl s) + public void AddVFTables(global::CppSharp.Parser.AST.VFTableInfo s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddTypedefs_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddVFTables_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearTypedefs() + public void ClearVFTables() { - __Internal.ClearTypedefs_0((__Instance + __PointerAdjustment)); + __Internal.ClearVFTables_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.TypeAlias GetTypeAliases(uint i) + public global::CppSharp.Parser.AST.LayoutField GetFields(uint i) { - var __ret = __Internal.GetTypeAliases_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.TypeAlias __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.TypeAlias) global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.TypeAlias.__CreateInstance(__ret); - return __result0; + var __ret = new global::CppSharp.Parser.AST.LayoutField.__Internal(); + __Internal.GetFields_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.LayoutField.__CreateInstance(__ret); } - public void AddTypeAliases(global::CppSharp.Parser.AST.TypeAlias s) + public void AddFields(global::CppSharp.Parser.AST.LayoutField s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddTypeAliases_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearTypeAliases() + public void ClearFields() { - __Internal.ClearTypeAliases_0((__Instance + __PointerAdjustment)); + __Internal.ClearFields_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.Variable GetVariables(uint i) + public global::CppSharp.Parser.AST.LayoutBase GetBases(uint i) { - var __ret = __Internal.GetVariables_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Variable __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Variable.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Variable) global::CppSharp.Parser.AST.Variable.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Variable.__CreateInstance(__ret); - return __result0; + var __ret = new global::CppSharp.Parser.AST.LayoutBase.__Internal(); + __Internal.GetBases_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.LayoutBase.__CreateInstance(__ret); } - public void AddVariables(global::CppSharp.Parser.AST.Variable s) + public void AddBases(global::CppSharp.Parser.AST.LayoutBase s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddVariables_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearVariables() + public void ClearBases() { - __Internal.ClearVariables_0((__Instance + __PointerAdjustment)); + __Internal.ClearBases_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.Friend GetFriends(uint i) + public global::CppSharp.Parser.AST.CppAbi ABI { - var __ret = __Internal.GetFriends_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Friend __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Friend.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Friend) global::CppSharp.Parser.AST.Friend.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Friend.__CreateInstance(__ret); - return __result0; - } + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI; + } - public void AddFriends(global::CppSharp.Parser.AST.Friend s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFriends_0((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI = value; + } } - public void ClearFriends() + public global::CppSharp.Parser.AST.VTableLayout Layout { - __Internal.ClearFriends_0((__Instance + __PointerAdjustment)); - } + get + { + return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout); + } - public static implicit operator global::CppSharp.Parser.AST.DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) - { - return new global::CppSharp.Parser.AST.DeclarationContext(kind); + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; + } } - public bool IsAnonymous + public bool HasOwnVFPtr { get { - return ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous != 0; + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr != 0; } set { - ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr = (byte) (value ? 1 : 0); } } - public uint NamespacesCount + public long VBPtrOffset { get { - var __ret = __Internal.GetNamespacesCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset = value; } } - public uint EnumsCount + public int Alignment { get { - var __ret = __Internal.GetEnumsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment; } - } - public uint FunctionsCount - { - get + set { - var __ret = __Internal.GetFunctionsCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment = value; } } - public uint ClassesCount + public int Size { get { - var __ret = __Internal.GetClassesCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size; } - } - public uint TemplatesCount - { - get + set { - var __ret = __Internal.GetTemplatesCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size = value; } } - public uint TypedefsCount + public int DataSize { get { - var __ret = __Internal.GetTypedefsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize = value; } } - public uint TypeAliasesCount + public uint VFTablesCount { get { - var __ret = __Internal.GetTypeAliasesCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetVFTablesCount_0((__Instance + __PointerAdjustment)); return __ret; } } - public uint VariablesCount + public uint FieldsCount { get { - var __ret = __Internal.GetVariablesCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); return __ret; } } - public uint FriendsCount + public uint BasesCount { get { - var __ret = __Internal.GetFriendsCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class TypedefNameDecl : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class DeclarationContext : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 184)] + [StructLayout(LayoutKind.Explicit, Size = 440)] public new partial struct __Internal { [FieldOffset(0)] @@ -5314,56 +6070,269 @@ namespace CppSharp [FieldOffset(128)] internal global::Std.__1.Vector.__Internal PreprocessedEntities; - [FieldOffset(152)] - public global::System.IntPtr originalPtr; + [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] + public global::System.IntPtr originalPtr; + + [FieldOffset(184)] + public global::System.IntPtr comment; + + [FieldOffset(192)] + internal global::Std.__1.Vector.__Internal Namespaces; + + [FieldOffset(216)] + internal global::Std.__1.Vector.__Internal Enums; + + [FieldOffset(240)] + internal global::Std.__1.Vector.__Internal Functions; + + [FieldOffset(264)] + internal global::Std.__1.Vector.__Internal Classes; + + [FieldOffset(288)] + internal global::Std.__1.Vector.__Internal Templates; + + [FieldOffset(312)] + internal global::Std.__1.Vector.__Internal Typedefs; + + [FieldOffset(336)] + internal global::Std.__1.Vector.__Internal TypeAliases; + + [FieldOffset(360)] + internal global::Std.__1.Vector.__Internal Variables; + + [FieldOffset(384)] + internal global::Std.__1.Vector.__Internal Friends; + + [FieldOffset(408)] + internal global::Std.__1.Map.__Internal anonymous; + + [FieldOffset(432)] + public byte isAnonymous; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13getNamespacesEj")] + internal static extern global::System.IntPtr GetNamespaces_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13addNamespacesERPNS1_9NamespaceE")] + internal static extern void AddNamespaces_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15clearNamespacesEv")] + internal static extern void ClearNamespaces_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext8getEnumsEj")] + internal static extern global::System.IntPtr GetEnums_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext8addEnumsERPNS1_11EnumerationE")] + internal static extern void AddEnums_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10clearEnumsEv")] + internal static extern void ClearEnums_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getFunctionsEj")] + internal static extern global::System.IntPtr GetFunctions_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addFunctionsERPNS1_8FunctionE")] + internal static extern void AddFunctions_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearFunctionsEv")] + internal static extern void ClearFunctions_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10getClassesEj")] + internal static extern global::System.IntPtr GetClasses_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10addClassesERPNS1_5ClassE")] + internal static extern void AddClasses_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12clearClassesEv")] + internal static extern void ClearClasses_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getTemplatesEj")] + internal static extern global::System.IntPtr GetTemplates_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addTemplatesERPNS1_8TemplateE")] + internal static extern void AddTemplates_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearTemplatesEv")] + internal static extern void ClearTemplates_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext11getTypedefsEj")] + internal static extern global::System.IntPtr GetTypedefs_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext11addTypedefsERPNS1_11TypedefDeclE")] + internal static extern void AddTypedefs_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13clearTypedefsEv")] + internal static extern void ClearTypedefs_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14getTypeAliasesEj")] + internal static extern global::System.IntPtr GetTypeAliases_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14addTypeAliasesERPNS1_9TypeAliasE")] + internal static extern void AddTypeAliases_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext16clearTypeAliasesEv")] + internal static extern void ClearTypeAliases_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getVariablesEj")] + internal static extern global::System.IntPtr GetVariables_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addVariablesERPNS1_8VariableE")] + internal static extern void AddVariables_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearVariablesEv")] + internal static extern void ClearVariables_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10getFriendsEj")] + internal static extern global::System.IntPtr GetFriends_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10addFriendsERPNS1_6FriendE")] + internal static extern void AddFriends_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12clearFriendsEv")] + internal static extern void ClearFriends_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext18getNamespacesCountEv")] + internal static extern uint GetNamespacesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13getEnumsCountEv")] + internal static extern uint GetEnumsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getFunctionsCountEv")] + internal static extern uint GetFunctionsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15getClassesCountEv")] + internal static extern uint GetClassesCount_0(global::System.IntPtr instance); - [FieldOffset(160)] - public global::System.IntPtr comment; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getTemplatesCountEv")] + internal static extern uint GetTemplatesCount_0(global::System.IntPtr instance); - [FieldOffset(168)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext16getTypedefsCountEv")] + internal static extern uint GetTypedefsCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext19getTypeAliasesCountEv")] + internal static extern uint GetTypeAliasesCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getVariablesCountEv")] + internal static extern uint GetVariablesCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15getFriendsCountEv")] + internal static extern uint GetFriendsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypedefNameDecl(native.ToPointer(), skipVTables); + return new DeclarationContext(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) { - return new TypedefNameDecl(native, skipVTables); + return new DeclarationContext(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DeclarationContext.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); - global::CppSharp.Parser.AST.TypedefNameDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + global::CppSharp.Parser.AST.DeclarationContext.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) + private DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypedefNameDecl(void* native, bool skipVTables = false) + protected DeclarationContext(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -5372,25 +6341,25 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) + public DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl _0) + public DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } public override void Dispose(bool disposing) @@ -5403,447 +6372,425 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public static implicit operator global::CppSharp.Parser.AST.TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) + public global::CppSharp.Parser.AST.Namespace GetNamespaces(uint i) { - return new global::CppSharp.Parser.AST.TypedefNameDecl(kind); + var __ret = __Internal.GetNamespaces_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Namespace __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Namespace.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Namespace) global::CppSharp.Parser.AST.Namespace.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Namespace.__CreateInstance(__ret); + return __result0; } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public void AddNamespaces(global::CppSharp.Parser.AST.Namespace s) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddNamespaces_0((__Instance + __PointerAdjustment), __arg0); } - } - public unsafe partial class TypedefDecl : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 184)] - public new partial struct __Internal + public void ClearNamespaces() { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; + __Internal.ClearNamespaces_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(24)] - public int lineNumberEnd; + public global::CppSharp.Parser.AST.Enumeration GetEnums(uint i) + { + var __ret = __Internal.GetEnums_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Enumeration __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Enumeration) global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Enumeration.__CreateInstance(__ret); + return __result0; + } - [FieldOffset(32)] - public global::Std.__1.BasicString.__Internal Name; + public void AddEnums(global::CppSharp.Parser.AST.Enumeration s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddEnums_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(56)] - public global::Std.__1.BasicString.__Internal USR; + public void ClearEnums() + { + __Internal.ClearEnums_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(80)] - public global::Std.__1.BasicString.__Internal DebugText; + public global::CppSharp.Parser.AST.Function GetFunctions(uint i) + { + var __ret = __Internal.GetFunctions_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Function __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(__ret); + return __result0; + } - [FieldOffset(104)] - public byte isIncomplete; + public void AddFunctions(global::CppSharp.Parser.AST.Function s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFunctions_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(105)] - public byte isDependent; + public void ClearFunctions() + { + __Internal.ClearFunctions_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(106)] - public byte isImplicit; + public global::CppSharp.Parser.AST.Class GetClasses(uint i) + { + var __ret = __Internal.GetClasses_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Class __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(__ret); + return __result0; + } - [FieldOffset(112)] - public global::System.IntPtr completeDeclaration; + public void AddClasses(global::CppSharp.Parser.AST.Class s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddClasses_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(120)] - public uint definitionOrder; + public void ClearClasses() + { + __Internal.ClearClasses_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(128)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; + public global::CppSharp.Parser.AST.Template GetTemplates(uint i) + { + var __ret = __Internal.GetTemplates_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Template __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(__ret); + return __result0; + } - [FieldOffset(152)] - public global::System.IntPtr originalPtr; + public void AddTemplates(global::CppSharp.Parser.AST.Template s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddTemplates_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(160)] - public global::System.IntPtr comment; + public void ClearTemplates() + { + __Internal.ClearTemplates_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(168)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + public global::CppSharp.Parser.AST.TypedefDecl GetTypedefs(uint i) + { + var __ret = __Internal.GetTypedefs_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.TypedefDecl __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.TypedefDecl) global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.TypedefDecl.__CreateInstance(__ret); + return __result0; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + public void AddTypedefs(global::CppSharp.Parser.AST.TypedefDecl s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddTypedefs_0((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public void ClearTypedefs() + { + __Internal.ClearTypedefs_0((__Instance + __PointerAdjustment)); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + public global::CppSharp.Parser.AST.TypeAlias GetTypeAliases(uint i) + { + var __ret = __Internal.GetTypeAliases_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.TypeAlias __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.TypeAlias) global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.TypeAlias.__CreateInstance(__ret); + return __result0; } - internal static new global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public void AddTypeAliases(global::CppSharp.Parser.AST.TypeAlias s) { - return new TypedefDecl(native.ToPointer(), skipVTables); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddTypeAliases_0((__Instance + __PointerAdjustment), __arg0); } - internal static global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) + public void ClearTypeAliases() { - return new TypedefDecl(native, skipVTables); + __Internal.ClearTypeAliases_0((__Instance + __PointerAdjustment)); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefDecl.__Internal native) + public global::CppSharp.Parser.AST.Variable GetVariables(uint i) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); - global::CppSharp.Parser.AST.TypedefDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + var __ret = __Internal.GetVariables_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Variable __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Variable.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Variable) global::CppSharp.Parser.AST.Variable.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Variable.__CreateInstance(__ret); + return __result0; } - private TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public void AddVariables(global::CppSharp.Parser.AST.Variable s) { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddVariables_0((__Instance + __PointerAdjustment), __arg0); } - protected TypedefDecl(void* native, bool skipVTables = false) - : base((void*) null) + public void ClearVariables() { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + __Internal.ClearVariables_0((__Instance + __PointerAdjustment)); } - public TypedefDecl() - : this((void*) null) + public global::CppSharp.Parser.AST.Friend GetFriends(uint i) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetFriends_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Friend __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Friend.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Friend) global::CppSharp.Parser.AST.Friend.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Friend.__CreateInstance(__ret); + return __result0; } - public TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl _0) - : this((void*) null) + public void AddFriends(global::CppSharp.Parser.AST.Friend s) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFriends_0((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void ClearFriends() { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + __Internal.ClearFriends_0((__Instance + __PointerAdjustment)); } - } - public unsafe partial class TypeAlias : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 192)] - public new partial struct __Internal + public static implicit operator global::CppSharp.Parser.AST.DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.__1.BasicString.__Internal Name; - - [FieldOffset(56)] - public global::Std.__1.BasicString.__Internal USR; - - [FieldOffset(80)] - public global::Std.__1.BasicString.__Internal DebugText; - - [FieldOffset(104)] - public byte isIncomplete; - - [FieldOffset(105)] - public byte isDependent; - - [FieldOffset(106)] - public byte isImplicit; - - [FieldOffset(112)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(120)] - public uint definitionOrder; - - [FieldOffset(128)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; - - [FieldOffset(152)] - public global::System.IntPtr originalPtr; - - [FieldOffset(160)] - public global::System.IntPtr comment; - - [FieldOffset(168)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - - [FieldOffset(184)] - public global::System.IntPtr describedAliasTemplate; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + return new global::CppSharp.Parser.AST.DeclarationContext(kind); } - internal static new global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public bool IsAnonymous { - return new TypeAlias(native.ToPointer(), skipVTables); + get + { + return ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous != 0; + } + + set + { + ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous = (byte) (value ? 1 : 0); + } } - internal static global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) + public uint NamespacesCount { - return new TypeAlias(native, skipVTables); + get + { + var __ret = __Internal.GetNamespacesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAlias.__Internal native) + public uint EnumsCount { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); - global::CppSharp.Parser.AST.TypeAlias.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + get + { + var __ret = __Internal.GetEnumsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - private TypeAlias(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public uint FunctionsCount { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + get + { + var __ret = __Internal.GetFunctionsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - protected TypeAlias(void* native, bool skipVTables = false) - : base((void*) null) + public uint ClassesCount { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + get + { + var __ret = __Internal.GetClassesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - public TypeAlias() - : this((void*) null) + public uint TemplatesCount { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + get + { + var __ret = __Internal.GetTemplatesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - public TypeAlias(global::CppSharp.Parser.AST.TypeAlias _0) - : this((void*) null) + public uint TypedefsCount { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + get + { + var __ret = __Internal.GetTypedefsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - public override void Dispose(bool disposing) + public uint TypeAliasesCount { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + get + { + var __ret = __Internal.GetTypeAliasesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - public global::CppSharp.Parser.AST.TypeAliasTemplate DescribedAliasTemplate + public uint VariablesCount { get { - global::CppSharp.Parser.AST.TypeAliasTemplate __result0; - if (((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate)) - __result0 = (global::CppSharp.Parser.AST.TypeAliasTemplate) global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate]; - else __result0 = global::CppSharp.Parser.AST.TypeAliasTemplate.__CreateInstance(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate); - return __result0; + var __ret = __Internal.GetVariablesCount_0((__Instance + __PointerAdjustment)); + return __ret; } + } - set + public uint FriendsCount + { + get { - ((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + var __ret = __Internal.GetFriendsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class Friend : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class RawComment : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 176)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 64)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::CppSharp.Parser.AST.RawCommentKind kind; [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; + public global::Std.__1.BasicString.__Internal Text; [FieldOffset(32)] - public global::Std.__1.BasicString.__Internal Name; + public global::Std.__1.BasicString.__Internal BriefText; [FieldOffset(56)] - public global::Std.__1.BasicString.__Internal USR; - - [FieldOffset(80)] - public global::Std.__1.BasicString.__Internal DebugText; - - [FieldOffset(104)] - public byte isIncomplete; - - [FieldOffset(105)] - public byte isDependent; - - [FieldOffset(106)] - public byte isImplicit; - - [FieldOffset(112)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(120)] - public uint definitionOrder; + public global::System.IntPtr fullCommentBlock; - [FieldOffset(128)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(152)] - public global::System.IntPtr originalPtr; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(160)] - public global::System.IntPtr comment; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - [FieldOffset(168)] - public global::System.IntPtr declaration; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment7getTextEv")] + internal static extern global::System.IntPtr Text_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6FriendC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment7setTextEPKc")] + internal static extern void SetText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6FriendC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment12getBriefTextEv")] + internal static extern global::System.IntPtr BriefText_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6FriendD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment12setBriefTextEPKc")] + internal static extern void SetBriefText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - internal static new global::CppSharp.Parser.AST.Friend __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Friend(native.ToPointer(), skipVTables); + return new RawComment(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Friend __CreateInstance(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) { - return new Friend(native, skipVTables); + return new RawComment(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Friend.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.RawComment.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); - global::CppSharp.Parser.AST.Friend.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); + global::CppSharp.Parser.AST.RawComment.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Friend(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) + private RawComment(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Friend(void* native, bool skipVTables = false) - : base((void*) null) + protected RawComment(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public Friend() - : this((void*) null) + public RawComment() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Friend(global::CppSharp.Parser.AST.Friend _0) - : this((void*) null) + public RawComment(global::CppSharp.Parser.AST.RawComment _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -5852,9 +6799,14 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.RawComment __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -5862,108 +6814,144 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Declaration Declaration + public global::CppSharp.Parser.AST.RawCommentKind Kind { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration); + return ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind; + } + + set + { + ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind = value; + } + } + + public global::CppSharp.Parser.AST.FullComment FullCommentBlock + { + get + { + global::CppSharp.Parser.AST.FullComment __result0; + if (((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FullComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock)) + __result0 = (global::CppSharp.Parser.AST.FullComment) global::CppSharp.Parser.AST.FullComment.NativeToManagedMap[((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock]; + else __result0 = global::CppSharp.Parser.AST.FullComment.__CreateInstance(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock); return __result0; } set { - ((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public string Text + { + get + { + var __ret = __Internal.Text_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetText_0((__Instance + __PointerAdjustment), value); + } + } + + public string BriefText + { + get + { + var __ret = __Internal.BriefText_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetBriefText_0((__Instance + __PointerAdjustment), value); } } } - public unsafe partial class Statement : IDisposable + public unsafe partial class PreprocessedEntity : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 40)] + [StructLayout(LayoutKind.Explicit, Size = 24)] public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + public global::CppSharp.Parser.AST.MacroLocation macroLocation; [FieldOffset(8)] - public global::System.IntPtr decl; + public global::System.IntPtr originalPtr; [FieldOffset(16)] - public global::Std.__1.BasicString.__Internal String; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9StatementC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9StatementD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + public global::CppSharp.Parser.AST.DeclarationKind kind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9Statement9getStringEv")] - internal static extern global::System.IntPtr String_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST18PreprocessedEntityC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9Statement9setStringEPKc")] - internal static extern void SetString_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="_ZN8CppSharp9CppParser3AST18PreprocessedEntityC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } 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(); + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); protected void*[] __OriginalVTables; protected bool __ownsNativeInstance; - internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Statement(native.ToPointer(), skipVTables); + return new PreprocessedEntity(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) { - return new Statement(native, skipVTables); + return new PreprocessedEntity(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Statement.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); - global::CppSharp.Parser.AST.Statement.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); + *(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) ret = native; return ret.ToPointer(); } - private Statement(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + private PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Statement(void* native, bool skipVTables = false) + protected PreprocessedEntity(void* native, bool skipVTables = false) { if (native == null) return; __Instance = new global::System.IntPtr(native); } - public Statement(global::CppSharp.Parser.AST.Statement _0) + public PreprocessedEntity() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) _0.__Instance); } public void Dispose() @@ -5973,364 +6961,408 @@ namespace CppSharp public virtual void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Statement __dummy; + global::CppSharp.Parser.AST.PreprocessedEntity __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.StatementClass Class + public global::CppSharp.Parser.AST.MacroLocation MacroLocation { get { - return ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class; + return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation; } set { - ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class = value; + ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation = value; } } - public global::CppSharp.Parser.AST.Declaration Decl + public global::System.IntPtr OriginalPtr { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl); - return __result0; + return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr; } set { - ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; } } - public string String + public global::CppSharp.Parser.AST.DeclarationKind Kind { get { - var __ret = __Internal.String_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind; } set { - __Internal.SetString_0((__Instance + __PointerAdjustment), value); + ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind = value; } } } - public unsafe partial class Expression : global::CppSharp.Parser.AST.Statement, IDisposable + public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 40)] + [StructLayout(LayoutKind.Explicit, Size = 480)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr decl; + public global::System.IntPtr _namespace; [FieldOffset(16)] - public global::Std.__1.BasicString.__Internal String; + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.__1.BasicString.__Internal Name; + + [FieldOffset(56)] + public global::Std.__1.BasicString.__Internal USR; + + [FieldOffset(80)] + public global::Std.__1.BasicString.__Internal DebugText; + + [FieldOffset(104)] + public byte isIncomplete; + + [FieldOffset(105)] + public byte isDependent; + + [FieldOffset(106)] + public byte isImplicit; + + [FieldOffset(112)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(120)] + public uint definitionOrder; + + [FieldOffset(128)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; + + [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] + public global::System.IntPtr originalPtr; + + [FieldOffset(184)] + public global::System.IntPtr comment; + + [FieldOffset(192)] + internal global::Std.__1.Vector.__Internal Namespaces; + + [FieldOffset(216)] + internal global::Std.__1.Vector.__Internal Enums; + + [FieldOffset(240)] + internal global::Std.__1.Vector.__Internal Functions; + + [FieldOffset(264)] + internal global::Std.__1.Vector.__Internal Classes; + + [FieldOffset(288)] + internal global::Std.__1.Vector.__Internal Templates; + + [FieldOffset(312)] + internal global::Std.__1.Vector.__Internal Typedefs; + + [FieldOffset(336)] + internal global::Std.__1.Vector.__Internal TypeAliases; + + [FieldOffset(360)] + internal global::Std.__1.Vector.__Internal Variables; + + [FieldOffset(384)] + internal global::Std.__1.Vector.__Internal Friends; + + [FieldOffset(408)] + internal global::Std.__1.Map.__Internal anonymous; + + [FieldOffset(432)] + public byte isAnonymous; + + [FieldOffset(436)] + public global::CppSharp.Parser.AST.Enumeration.EnumModifiers modifiers; + + [FieldOffset(440)] + public global::System.IntPtr type; + + [FieldOffset(448)] + public global::System.IntPtr builtinType; + + [FieldOffset(456)] + internal global::Std.__1.Vector.__Internal Items; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10ExpressionC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10ExpressionD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); - } - internal static new global::CppSharp.Parser.AST.Expression __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new Expression(native.ToPointer(), skipVTables); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration8getItemsEj")] + internal static extern global::System.IntPtr GetItems_0(global::System.IntPtr instance, uint i); - internal static global::CppSharp.Parser.AST.Expression __CreateInstance(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) - { - return new Expression(native, skipVTables); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration8addItemsERPNS2_4ItemE")] + internal static extern void AddItems_0(global::System.IntPtr instance, global::System.IntPtr s); - private static void* __CopyValue(global::CppSharp.Parser.AST.Expression.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); - global::CppSharp.Parser.AST.Expression.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration10clearItemsEv")] + internal static extern void ClearItems_0(global::System.IntPtr instance); - private Expression(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration13getItemsCountEv")] + internal static extern uint GetItemsCount_0(global::System.IntPtr instance); } - protected Expression(void* native, bool skipVTables = false) - : base((void*) null) + [Flags] + public enum EnumModifiers { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + Anonymous = 1, + Scoped = 2, + Flags = 4 } - public Expression(global::CppSharp.Parser.AST.Expression _0) - : this((void*) null) + public unsafe partial class Item : global::CppSharp.Parser.AST.Declaration, IDisposable { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [StructLayout(LayoutKind.Explicit, Size = 224)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Statement __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - } + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; - public unsafe partial class BinaryOperator : global::CppSharp.Parser.AST.Expression, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 80)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + [FieldOffset(8)] + public global::System.IntPtr _namespace; - [FieldOffset(8)] - public global::System.IntPtr decl; + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - [FieldOffset(16)] - public global::Std.__1.BasicString.__Internal String; + [FieldOffset(20)] + public int lineNumberStart; - [FieldOffset(40)] - public global::System.IntPtr LHS; + [FieldOffset(24)] + public int lineNumberEnd; - [FieldOffset(48)] - public global::System.IntPtr RHS; + [FieldOffset(32)] + public global::Std.__1.BasicString.__Internal Name; - [FieldOffset(56)] - public global::Std.__1.BasicString.__Internal OpcodeStr; + [FieldOffset(56)] + public global::Std.__1.BasicString.__Internal USR; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperatorC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(80)] + public global::Std.__1.BasicString.__Internal DebugText; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperatorD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + [FieldOffset(104)] + public byte isIncomplete; + + [FieldOffset(105)] + public byte isDependent; + + [FieldOffset(106)] + public byte isImplicit; + + [FieldOffset(112)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(120)] + public uint definitionOrder; + + [FieldOffset(128)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperator12getOpcodeStrEv")] - internal static extern global::System.IntPtr OpcodeStr_0(global::System.IntPtr instance); + [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperator12setOpcodeStrEPKc")] - internal static extern void SetOpcodeStr_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - } + [FieldOffset(176)] + public global::System.IntPtr originalPtr; - internal static new global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new BinaryOperator(native.ToPointer(), skipVTables); - } + [FieldOffset(184)] + public global::System.IntPtr comment; - internal static global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) - { - return new BinaryOperator(native, skipVTables); - } + [FieldOffset(192)] + public global::Std.__1.BasicString.__Internal Expression; - private static void* __CopyValue(global::CppSharp.Parser.AST.BinaryOperator.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); - global::CppSharp.Parser.AST.BinaryOperator.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [FieldOffset(216)] + public ulong value; - private BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - protected BinaryOperator(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemC2ERKS3_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - public BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Statement __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4Item13getExpressionEv")] + internal static extern global::System.IntPtr Expression_0(global::System.IntPtr instance); - public global::CppSharp.Parser.AST.Expression LHS - { - get - { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS); - return __result0; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4Item13setExpressionEPKc")] + internal static extern void SetExpression_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - set + internal static new global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + return new Item(native.ToPointer(), skipVTables); } - } - public global::CppSharp.Parser.AST.Expression RHS - { - get + internal static global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS); - return __result0; + return new Item(native, skipVTables); } - set + private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native) { - ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); + global::CppSharp.Parser.AST.Enumeration.Item.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - } - public string OpcodeStr - { - get + private Item(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - var __ret = __Internal.OpcodeStr_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - set + protected Item(void* native, bool skipVTables = false) + : base((void*) null) { - __Internal.SetOpcodeStr_0((__Instance + __PointerAdjustment), value); + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - } - } - - public unsafe partial class CallExpr : global::CppSharp.Parser.AST.Expression, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 64)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; - - [FieldOffset(8)] - public global::System.IntPtr decl; - - [FieldOffset(16)] - public global::Std.__1.BasicString.__Internal String; - [FieldOffset(40)] - internal global::Std.__1.Vector.__Internal Arguments; + public Item() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExprC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public Item(global::CppSharp.Parser.AST.Enumeration.Item _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExprD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr12getArgumentsEj")] - internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); + public ulong Value + { + get + { + return ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr12addArgumentsERPNS1_10ExpressionE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + set + { + ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + public string Expression + { + get + { + var __ret = __Internal.Expression_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + set + { + __Internal.SetExpression_0((__Instance + __PointerAdjustment), value); + } + } } - internal static new global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new CallExpr(native.ToPointer(), skipVTables); + return new Enumeration(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) { - return new CallExpr(native, skipVTables); + return new Enumeration(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.CallExpr.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); - global::CppSharp.Parser.AST.CallExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + global::CppSharp.Parser.AST.Enumeration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private CallExpr(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) + private Enumeration(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected CallExpr(void* native, bool skipVTables = false) + protected Enumeration(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -6339,10 +7371,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public CallExpr(global::CppSharp.Parser.AST.CallExpr _0) + public Enumeration() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public Enumeration(global::CppSharp.Parser.AST.Enumeration _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -6353,7 +7394,7 @@ namespace CppSharp public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Statement __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -6361,113 +7402,293 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Expression GetArguments(uint i) + public global::CppSharp.Parser.AST.Enumeration.Item GetItems(uint i) { - var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Expression __result0; + var __ret = __Internal.GetItems_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Enumeration.Item __result0; if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); + else if (global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Enumeration.Item) global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Enumeration.Item.__CreateInstance(__ret); return __result0; } - public void AddArguments(global::CppSharp.Parser.AST.Expression s) + public void AddItems(global::CppSharp.Parser.AST.Enumeration.Item s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddItems_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearArguments() + public void ClearItems() { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + __Internal.ClearItems_0((__Instance + __PointerAdjustment)); } - public uint ArgumentsCount + public global::CppSharp.Parser.AST.Enumeration.EnumModifiers Modifiers { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); + return ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers; + } + + set + { + ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers = value; + } + } + + public global::CppSharp.Parser.AST.Type Type + { + get + { + global::CppSharp.Parser.AST.Type __result0; + if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type)) + __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type]; + else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public global::CppSharp.Parser.AST.BuiltinType BuiltinType + { + get + { + global::CppSharp.Parser.AST.BuiltinType __result0; + if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType)) + __result0 = (global::CppSharp.Parser.AST.BuiltinType) global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType]; + else __result0 = global::CppSharp.Parser.AST.BuiltinType.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public uint ItemsCount + { + get + { + var __ret = __Internal.GetItemsCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class CXXConstructExpr : global::CppSharp.Parser.AST.Expression, IDisposable + public unsafe partial class Function : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 64)] + [StructLayout(LayoutKind.Explicit, Size = 360)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr decl; + public global::System.IntPtr _namespace; [FieldOffset(16)] - public global::Std.__1.BasicString.__Internal String; + public global::CppSharp.Parser.SourceLocation.__Internal location; - [FieldOffset(40)] - internal global::Std.__1.Vector.__Internal Arguments; + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.__1.BasicString.__Internal Name; + + [FieldOffset(56)] + public global::Std.__1.BasicString.__Internal USR; + + [FieldOffset(80)] + public global::Std.__1.BasicString.__Internal DebugText; + + [FieldOffset(104)] + public byte isIncomplete; + + [FieldOffset(105)] + public byte isDependent; + + [FieldOffset(106)] + public byte isImplicit; + + [FieldOffset(112)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(120)] + public uint definitionOrder; + + [FieldOffset(128)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; + + [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] + public global::System.IntPtr originalPtr; + + [FieldOffset(184)] + public global::System.IntPtr comment; + + [FieldOffset(192)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; + + [FieldOffset(208)] + public byte isReturnIndirect; + + [FieldOffset(209)] + public byte hasThisReturn; + + [FieldOffset(210)] + public byte isConstExpr; + + [FieldOffset(211)] + public byte isVariadic; + + [FieldOffset(212)] + public byte isInline; + + [FieldOffset(213)] + public byte isPure; + + [FieldOffset(214)] + public byte isDeleted; + + [FieldOffset(216)] + public global::CppSharp.Parser.AST.FriendKind friendKind; + + [FieldOffset(220)] + public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; + + [FieldOffset(224)] + public global::Std.__1.BasicString.__Internal Mangled; + + [FieldOffset(248)] + public global::Std.__1.BasicString.__Internal Signature; + + [FieldOffset(272)] + public global::Std.__1.BasicString.__Internal Body; + + [FieldOffset(296)] + public global::CppSharp.Parser.AST.CallingConvention callingConvention; + + [FieldOffset(304)] + internal global::Std.__1.Vector.__Internal Parameters; + + [FieldOffset(328)] + public global::System.IntPtr specializationInfo; + + [FieldOffset(336)] + public global::System.IntPtr instantiatedFrom; + + [FieldOffset(344)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExprC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST8FunctionC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8FunctionC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExprD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST8FunctionD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr12getArgumentsEj")] - internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST8Function13getParametersEj")] + internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr12addArgumentsERPNS1_10ExpressionE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST8Function13addParametersERPNS1_9ParameterE")] + internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST8Function15clearParametersEv")] + internal static extern void ClearParameters_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST8Function10getMangledEv")] + internal static extern global::System.IntPtr Mangled_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Function10setMangledEPKc")] + internal static extern void SetMangled_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Function12getSignatureEv")] + internal static extern global::System.IntPtr Signature_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Function12setSignatureEPKc")] + internal static extern void SetSignature_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Function7getBodyEv")] + internal static extern global::System.IntPtr Body_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Function7setBodyEPKc")] + internal static extern void SetBody_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Function18getParametersCountEv")] + internal static extern uint GetParametersCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Function __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new CXXConstructExpr(native.ToPointer(), skipVTables); + return new Function(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Function __CreateInstance(global::CppSharp.Parser.AST.Function.__Internal native, bool skipVTables = false) { - return new CXXConstructExpr(native, skipVTables); + return new Function(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Function.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); - global::CppSharp.Parser.AST.CXXConstructExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Function.__Internal)); + global::CppSharp.Parser.AST.Function.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) + private Function(global::CppSharp.Parser.AST.Function.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected CXXConstructExpr(void* native, bool skipVTables = false) + protected Function(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -6476,10 +7697,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr _0) + public Function() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Function.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public Function(global::CppSharp.Parser.AST.Function _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Function.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -6490,7 +7720,7 @@ namespace CppSharp public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Statement __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -6498,265 +7728,277 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Expression GetArguments(uint i) + public global::CppSharp.Parser.AST.Parameter GetParameters(uint i) { - var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Expression __result0; + var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Parameter __result0; if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); + else if (global::CppSharp.Parser.AST.Parameter.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Parameter) global::CppSharp.Parser.AST.Parameter.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Parameter.__CreateInstance(__ret); return __result0; } - public void AddArguments(global::CppSharp.Parser.AST.Expression s) + public void AddParameters(global::CppSharp.Parser.AST.Parameter s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearArguments() + public void ClearParameters() { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); } - public uint ArgumentsCount + public global::CppSharp.Parser.AST.QualifiedType ReturnType { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->returnType); + } + + set + { + ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->returnType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - } - public unsafe partial class Parameter : global::CppSharp.Parser.AST.Declaration, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 200)] - public new partial struct __Internal + public bool IsReturnIndirect { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.__1.BasicString.__Internal Name; - - [FieldOffset(56)] - public global::Std.__1.BasicString.__Internal USR; - - [FieldOffset(80)] - public global::Std.__1.BasicString.__Internal DebugText; - - [FieldOffset(104)] - public byte isIncomplete; - - [FieldOffset(105)] - public byte isDependent; - - [FieldOffset(106)] - public byte isImplicit; - - [FieldOffset(112)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(120)] - public uint definitionOrder; - - [FieldOffset(128)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; - - [FieldOffset(152)] - public global::System.IntPtr originalPtr; - - [FieldOffset(160)] - public global::System.IntPtr comment; - - [FieldOffset(168)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + get + { + return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isReturnIndirect != 0; + } - [FieldOffset(184)] - public byte isIndirect; + set + { + ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isReturnIndirect = (byte) (value ? 1 : 0); + } + } - [FieldOffset(185)] - public byte hasDefaultValue; + public bool HasThisReturn + { + get + { + return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->hasThisReturn != 0; + } - [FieldOffset(188)] - public uint index; + set + { + ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->hasThisReturn = (byte) (value ? 1 : 0); + } + } - [FieldOffset(192)] - public global::System.IntPtr defaultArgument; + public bool IsConstExpr + { + get + { + return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isConstExpr != 0; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isConstExpr = (byte) (value ? 1 : 0); + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public bool IsVariadic + { + get + { + return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isVariadic != 0; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isVariadic = (byte) (value ? 1 : 0); + } } - internal static new global::CppSharp.Parser.AST.Parameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public bool IsInline { - return new Parameter(native.ToPointer(), skipVTables); + get + { + return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isInline != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isInline = (byte) (value ? 1 : 0); + } } - internal static global::CppSharp.Parser.AST.Parameter __CreateInstance(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) + public bool IsPure { - return new Parameter(native, skipVTables); + get + { + return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isPure != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isPure = (byte) (value ? 1 : 0); + } } - private static void* __CopyValue(global::CppSharp.Parser.AST.Parameter.__Internal native) + public bool IsDeleted { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); - global::CppSharp.Parser.AST.Parameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + get + { + return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isDeleted != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isDeleted = (byte) (value ? 1 : 0); + } } - private Parameter(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public global::CppSharp.Parser.AST.FriendKind FriendKind { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + get + { + return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->friendKind; + } + + set + { + ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->friendKind = value; + } } - protected Parameter(void* native, bool skipVTables = false) - : base((void*) null) + public global::CppSharp.Parser.AST.CXXOperatorKind OperatorKind { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + get + { + return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->operatorKind; + } + + set + { + ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->operatorKind = value; + } } - public Parameter() - : this((void*) null) + public global::CppSharp.Parser.AST.CallingConvention CallingConvention { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + get + { + return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->callingConvention; + } + + set + { + ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->callingConvention = value; + } } - public Parameter(global::CppSharp.Parser.AST.Parameter _0) - : this((void*) null) + public global::CppSharp.Parser.AST.FunctionTemplateSpecialization SpecializationInfo { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + get + { + global::CppSharp.Parser.AST.FunctionTemplateSpecialization __result0; + if (((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->specializationInfo == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->specializationInfo)) + __result0 = (global::CppSharp.Parser.AST.FunctionTemplateSpecialization) global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap[((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->specializationInfo]; + else __result0 = global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__CreateInstance(((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->specializationInfo); + return __result0; + } - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + set + { + ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->specializationInfo = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public global::CppSharp.Parser.AST.Function InstantiatedFrom { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType); + global::CppSharp.Parser.AST.Function __result0; + if (((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->instantiatedFrom == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->instantiatedFrom)) + __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->instantiatedFrom]; + else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->instantiatedFrom); + return __result0; } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->instantiatedFrom = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsIndirect + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect != 0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public bool HasDefaultValue + public string Mangled { get { - return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue != 0; + var __ret = __Internal.Mangled_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue = (byte) (value ? 1 : 0); + __Internal.SetMangled_0((__Instance + __PointerAdjustment), value); } } - public uint Index + public string Signature { get { - return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index; + var __ret = __Internal.Signature_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index = value; + __Internal.SetSignature_0((__Instance + __PointerAdjustment), value); } } - public global::CppSharp.Parser.AST.Expression DefaultArgument + public string Body { get { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument); - return __result0; + var __ret = __Internal.Body_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + __Internal.SetBody_0((__Instance + __PointerAdjustment), value); + } + } + + public uint ParametersCount + { + get + { + var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class Function : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class TypedefDecl : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 336)] + [StructLayout(LayoutKind.Explicit, Size = 208)] public new partial struct __Internal { [FieldOffset(0)] @@ -6805,156 +8047,58 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(152)] - public global::System.IntPtr originalPtr; - - [FieldOffset(160)] - public global::System.IntPtr comment; + internal global::Std.__1.Vector.__Internal Redeclarations; - [FieldOffset(168)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; + [FieldOffset(176)] + public global::System.IntPtr originalPtr; [FieldOffset(184)] - public byte isReturnIndirect; - - [FieldOffset(185)] - public byte hasThisReturn; - - [FieldOffset(186)] - public byte isConstExpr; - - [FieldOffset(187)] - public byte isVariadic; - - [FieldOffset(188)] - public byte isInline; - - [FieldOffset(189)] - public byte isPure; - - [FieldOffset(190)] - public byte isDeleted; + public global::System.IntPtr comment; [FieldOffset(192)] - public global::CppSharp.Parser.AST.FriendKind friendKind; - - [FieldOffset(196)] - public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - - [FieldOffset(200)] - public global::Std.__1.BasicString.__Internal Mangled; - - [FieldOffset(224)] - public global::Std.__1.BasicString.__Internal Signature; - - [FieldOffset(248)] - public global::Std.__1.BasicString.__Internal Body; - - [FieldOffset(272)] - public global::CppSharp.Parser.AST.CallingConvention callingConvention; - - [FieldOffset(280)] - internal global::Std.__1.Vector.__Internal Parameters; - - [FieldOffset(304)] - public global::System.IntPtr specializationInfo; - - [FieldOffset(312)] - public global::System.IntPtr instantiatedFrom; - - [FieldOffset(320)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8FunctionC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8FunctionC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8FunctionD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Function13getParametersEj")] - internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Function13addParametersERPNS1_9ParameterE")] - internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Function15clearParametersEv")] - internal static extern void ClearParameters_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Function10getMangledEv")] - internal static extern global::System.IntPtr Mangled_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Function10setMangledEPKc")] - internal static extern void SetMangled_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Function12getSignatureEv")] - internal static extern global::System.IntPtr Signature_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Function12setSignatureEPKc")] - internal static extern void SetSignature_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Function7getBodyEv")] - internal static extern global::System.IntPtr Body_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Function7setBodyEPKc")] - internal static extern void SetBody_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Function18getParametersCountEv")] - internal static extern uint GetParametersCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Function __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Function(native.ToPointer(), skipVTables); + return new TypedefDecl(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Function __CreateInstance(global::CppSharp.Parser.AST.Function.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) { - return new Function(native, skipVTables); + return new TypedefDecl(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Function.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefDecl.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Function.__Internal)); - global::CppSharp.Parser.AST.Function.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + global::CppSharp.Parser.AST.TypedefDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Function(global::CppSharp.Parser.AST.Function.__Internal native, bool skipVTables = false) + private TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Function(void* native, bool skipVTables = false) + protected TypedefDecl(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -6963,19 +8107,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Function() + public TypedefDecl() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Function.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Function(global::CppSharp.Parser.AST.Function _0) + public TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Function.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -6993,278 +8137,175 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + } - public global::CppSharp.Parser.AST.Parameter GetParameters(uint i) + public unsafe partial class TypeAlias : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 216)] + public new partial struct __Internal { - var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Parameter __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Parameter.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Parameter) global::CppSharp.Parser.AST.Parameter.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Parameter.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; - public void AddParameters(global::CppSharp.Parser.AST.Parameter s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; - public void ClearParameters() - { - __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(8)] + public global::System.IntPtr _namespace; - public global::CppSharp.Parser.AST.QualifiedType ReturnType - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->returnType); - } + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - set - { - ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->returnType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } + [FieldOffset(20)] + public int lineNumberStart; - public bool IsReturnIndirect - { - get - { - return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isReturnIndirect != 0; - } + [FieldOffset(24)] + public int lineNumberEnd; - set - { - ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isReturnIndirect = (byte) (value ? 1 : 0); - } - } + [FieldOffset(32)] + public global::Std.__1.BasicString.__Internal Name; + + [FieldOffset(56)] + public global::Std.__1.BasicString.__Internal USR; - public bool HasThisReturn - { - get - { - return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->hasThisReturn != 0; - } + [FieldOffset(80)] + public global::Std.__1.BasicString.__Internal DebugText; - set - { - ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->hasThisReturn = (byte) (value ? 1 : 0); - } - } + [FieldOffset(104)] + public byte isIncomplete; - public bool IsConstExpr - { - get - { - return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isConstExpr != 0; - } + [FieldOffset(105)] + public byte isDependent; - set - { - ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isConstExpr = (byte) (value ? 1 : 0); - } - } + [FieldOffset(106)] + public byte isImplicit; - public bool IsVariadic - { - get - { - return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isVariadic != 0; - } + [FieldOffset(112)] + public global::System.IntPtr completeDeclaration; - set - { - ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isVariadic = (byte) (value ? 1 : 0); - } - } + [FieldOffset(120)] + public uint definitionOrder; - public bool IsInline - { - get - { - return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isInline != 0; - } + [FieldOffset(128)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; - set - { - ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isInline = (byte) (value ? 1 : 0); - } - } + [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; - public bool IsPure - { - get - { - return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isPure != 0; - } + [FieldOffset(176)] + public global::System.IntPtr originalPtr; - set - { - ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isPure = (byte) (value ? 1 : 0); - } - } + [FieldOffset(184)] + public global::System.IntPtr comment; - public bool IsDeleted - { - get - { - return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isDeleted != 0; - } + [FieldOffset(192)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - set - { - ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->isDeleted = (byte) (value ? 1 : 0); - } - } + [FieldOffset(208)] + public global::System.IntPtr describedAliasTemplate; - public global::CppSharp.Parser.AST.FriendKind FriendKind - { - get - { - return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->friendKind; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - set - { - ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->friendKind = value; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - public global::CppSharp.Parser.AST.CXXOperatorKind OperatorKind + internal static new global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - get - { - return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->operatorKind; - } - - set - { - ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->operatorKind = value; - } + return new TypeAlias(native.ToPointer(), skipVTables); } - public global::CppSharp.Parser.AST.CallingConvention CallingConvention + internal static global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) { - get - { - return ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->callingConvention; - } - - set - { - ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->callingConvention = value; - } + return new TypeAlias(native, skipVTables); } - public global::CppSharp.Parser.AST.FunctionTemplateSpecialization SpecializationInfo + private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAlias.__Internal native) { - get - { - global::CppSharp.Parser.AST.FunctionTemplateSpecialization __result0; - if (((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->specializationInfo == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->specializationInfo)) - __result0 = (global::CppSharp.Parser.AST.FunctionTemplateSpecialization) global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap[((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->specializationInfo]; - else __result0 = global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__CreateInstance(((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->specializationInfo); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->specializationInfo = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); + global::CppSharp.Parser.AST.TypeAlias.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public global::CppSharp.Parser.AST.Function InstantiatedFrom + private TypeAlias(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - get - { - global::CppSharp.Parser.AST.Function __result0; - if (((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->instantiatedFrom == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->instantiatedFrom)) - __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->instantiatedFrom]; - else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->instantiatedFrom); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->instantiatedFrom = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + protected TypeAlias(void* native, bool skipVTables = false) + : base((void*) null) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.Function.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public string Mangled + public TypeAlias() + : this((void*) null) { - get - { - var __ret = __Internal.Mangled_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetMangled_0((__Instance + __PointerAdjustment), value); - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public string Signature + public TypeAlias(global::CppSharp.Parser.AST.TypeAlias _0) + : this((void*) null) { - get - { - var __ret = __Internal.Signature_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetSignature_0((__Instance + __PointerAdjustment), value); - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public string Body + public override void Dispose(bool disposing) { - get - { - var __ret = __Internal.Body_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetBody_0((__Instance + __PointerAdjustment), value); - } + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public uint ParametersCount + public global::CppSharp.Parser.AST.TypeAliasTemplate DescribedAliasTemplate { get { - var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); - return __ret; + global::CppSharp.Parser.AST.TypeAliasTemplate __result0; + if (((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate)) + __result0 = (global::CppSharp.Parser.AST.TypeAliasTemplate) global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate]; + else __result0 = global::CppSharp.Parser.AST.TypeAliasTemplate.__CreateInstance(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable + public unsafe partial class Namespace : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 376)] + [StructLayout(LayoutKind.Explicit, Size = 440)] public new partial struct __Internal { [FieldOffset(0)] @@ -7313,139 +8354,91 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(152)] - public global::System.IntPtr originalPtr; - - [FieldOffset(160)] - public global::System.IntPtr comment; + internal global::Std.__1.Vector.__Internal Redeclarations; - [FieldOffset(168)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; + [FieldOffset(176)] + public global::System.IntPtr originalPtr; [FieldOffset(184)] - public byte isReturnIndirect; - - [FieldOffset(185)] - public byte hasThisReturn; - - [FieldOffset(186)] - public byte isConstExpr; - - [FieldOffset(187)] - public byte isVariadic; - - [FieldOffset(188)] - public byte isInline; - - [FieldOffset(189)] - public byte isPure; - - [FieldOffset(190)] - public byte isDeleted; + public global::System.IntPtr comment; [FieldOffset(192)] - public global::CppSharp.Parser.AST.FriendKind friendKind; - - [FieldOffset(196)] - public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - - [FieldOffset(200)] - public global::Std.__1.BasicString.__Internal Mangled; - - [FieldOffset(224)] - public global::Std.__1.BasicString.__Internal Signature; + internal global::Std.__1.Vector.__Internal Namespaces; - [FieldOffset(248)] - public global::Std.__1.BasicString.__Internal Body; + [FieldOffset(216)] + internal global::Std.__1.Vector.__Internal Enums; - [FieldOffset(272)] - public global::CppSharp.Parser.AST.CallingConvention callingConvention; + [FieldOffset(240)] + internal global::Std.__1.Vector.__Internal Functions; - [FieldOffset(280)] - internal global::Std.__1.Vector.__Internal Parameters; + [FieldOffset(264)] + internal global::Std.__1.Vector.__Internal Classes; - [FieldOffset(304)] - public global::System.IntPtr specializationInfo; + [FieldOffset(288)] + internal global::Std.__1.Vector.__Internal Templates; [FieldOffset(312)] - public global::System.IntPtr instantiatedFrom; - - [FieldOffset(320)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + internal global::Std.__1.Vector.__Internal Typedefs; [FieldOffset(336)] - public byte isVirtual; - - [FieldOffset(337)] - public byte isStatic; - - [FieldOffset(338)] - public byte isConst; - - [FieldOffset(339)] - public byte isExplicit; - - [FieldOffset(340)] - public byte isOverride; - - [FieldOffset(344)] - public global::CppSharp.Parser.AST.CXXMethodKind methodKind; + internal global::Std.__1.Vector.__Internal TypeAliases; - [FieldOffset(348)] - public byte isDefaultConstructor; + [FieldOffset(360)] + internal global::Std.__1.Vector.__Internal Variables; - [FieldOffset(349)] - public byte isCopyConstructor; + [FieldOffset(384)] + internal global::Std.__1.Vector.__Internal Friends; - [FieldOffset(350)] - public byte isMoveConstructor; + [FieldOffset(408)] + internal global::Std.__1.Map.__Internal anonymous; - [FieldOffset(352)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; + [FieldOffset(432)] + public byte isAnonymous; - [FieldOffset(368)] - public global::CppSharp.Parser.AST.RefQualifierKind refQualifier; + [FieldOffset(433)] + public byte isInline; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6MethodD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Namespace __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Method(native.ToPointer(), skipVTables); + return new Namespace(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Method __CreateInstance(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Namespace __CreateInstance(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) { - return new Method(native, skipVTables); + return new Namespace(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Method.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Namespace.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); - global::CppSharp.Parser.AST.Method.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + global::CppSharp.Parser.AST.Namespace.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Method(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) + private Namespace(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Method(void* native, bool skipVTables = false) + protected Namespace(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -7454,184 +8447,54 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Method() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public Method(global::CppSharp.Parser.AST.Method _0) + public Namespace() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public bool IsVirtual - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); - } - } - - public bool IsStatic - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic = (byte) (value ? 1 : 0); - } - } - - public bool IsConst - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst = (byte) (value ? 1 : 0); - } - } - - public bool IsExplicit - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit = (byte) (value ? 1 : 0); - } - } - - public bool IsOverride - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride = (byte) (value ? 1 : 0); - } - } - - public global::CppSharp.Parser.AST.CXXMethodKind MethodKind - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind = value; - } - } - - public bool IsDefaultConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor = (byte) (value ? 1 : 0); - } - } - - public bool IsCopyConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor = (byte) (value ? 1 : 0); - } - } - - public bool IsMoveConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor = (byte) (value ? 1 : 0); - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.QualifiedType ConversionType + public Namespace(global::CppSharp.Parser.AST.Namespace _0) + : this((void*) null) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType); - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.RefQualifierKind RefQualifier + public bool IsInline { get { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier; + return ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline != 0; } set { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value; + ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline = (byte) (value ? 1 : 0); } } } - public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 456)] + [StructLayout(LayoutKind.Explicit, Size = 224)] public new partial struct __Internal { [FieldOffset(0)] @@ -7679,306 +8542,62 @@ namespace CppSharp [FieldOffset(128)] internal global::Std.__1.Vector.__Internal PreprocessedEntities; - [FieldOffset(152)] - public global::System.IntPtr originalPtr; - - [FieldOffset(160)] - public global::System.IntPtr comment; - - [FieldOffset(168)] - internal global::Std.__1.Vector.__Internal Namespaces; - - [FieldOffset(192)] - internal global::Std.__1.Vector.__Internal Enums; - - [FieldOffset(216)] - internal global::Std.__1.Vector.__Internal Functions; - - [FieldOffset(240)] - internal global::Std.__1.Vector.__Internal Classes; - - [FieldOffset(264)] - internal global::Std.__1.Vector.__Internal Templates; - - [FieldOffset(288)] - internal global::Std.__1.Vector.__Internal Typedefs; - - [FieldOffset(312)] - internal global::Std.__1.Vector.__Internal TypeAliases; - - [FieldOffset(336)] - internal global::Std.__1.Vector.__Internal Variables; - - [FieldOffset(360)] - internal global::Std.__1.Vector.__Internal Friends; - - [FieldOffset(384)] - internal global::Std.__1.Map.__Internal anonymous; - - [FieldOffset(408)] - public byte isAnonymous; - - [FieldOffset(412)] - public global::CppSharp.Parser.AST.Enumeration.EnumModifiers modifiers; - - [FieldOffset(416)] - public global::System.IntPtr type; - - [FieldOffset(424)] - public global::System.IntPtr builtinType; - - [FieldOffset(432)] - internal global::Std.__1.Vector.__Internal Items; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration8getItemsEj")] - internal static extern global::System.IntPtr GetItems_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration8addItemsERPNS2_4ItemE")] - internal static extern void AddItems_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration10clearItemsEv")] - internal static extern void ClearItems_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration13getItemsCountEv")] - internal static extern uint GetItemsCount_0(global::System.IntPtr instance); - } - - [Flags] - public enum EnumModifiers - { - Anonymous = 1, - Scoped = 2, - Flags = 4 - } - - public unsafe partial class Item : global::CppSharp.Parser.AST.Declaration, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 200)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.__1.BasicString.__Internal Name; - - [FieldOffset(56)] - public global::Std.__1.BasicString.__Internal USR; - - [FieldOffset(80)] - public global::Std.__1.BasicString.__Internal DebugText; - - [FieldOffset(104)] - public byte isIncomplete; - - [FieldOffset(105)] - public byte isDependent; - - [FieldOffset(106)] - public byte isImplicit; - - [FieldOffset(112)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(120)] - public uint definitionOrder; - - [FieldOffset(128)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; - - [FieldOffset(152)] - public global::System.IntPtr originalPtr; - - [FieldOffset(160)] - public global::System.IntPtr comment; - - [FieldOffset(168)] - public global::Std.__1.BasicString.__Internal Expression; - - [FieldOffset(192)] - public ulong value; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemC2ERKS3_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4Item13getExpressionEv")] - internal static extern global::System.IntPtr Expression_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4Item13setExpressionEPKc")] - internal static extern void SetExpression_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - } - - internal static new global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new Item(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) - { - return new Item(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); - global::CppSharp.Parser.AST.Enumeration.Item.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private Item(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected Item(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public Item() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public Item(global::CppSharp.Parser.AST.Enumeration.Item _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } + [FieldOffset(176)] + public global::System.IntPtr originalPtr; - public ulong Value - { - get - { - return ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value; - } + [FieldOffset(184)] + public global::System.IntPtr comment; - set - { - ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value = value; - } - } + [FieldOffset(192)] + public global::System.IntPtr TemplatedDecl; - public string Expression - { - get - { - var __ret = __Internal.Expression_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } + [FieldOffset(200)] + internal global::Std.__1.Vector.__Internal Parameters; - set - { - __Internal.SetExpression_0((__Instance + __PointerAdjustment), value); - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Enumeration(native.ToPointer(), skipVTables); + return new TypeAliasTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) { - return new Enumeration(native, skipVTables); + return new TypeAliasTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); - global::CppSharp.Parser.AST.Enumeration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); + global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Enumeration(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) + private TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Enumeration(void* native, bool skipVTables = false) + protected TypeAliasTemplate(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -7987,19 +8606,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Enumeration() + public TypeAliasTemplate() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Enumeration(global::CppSharp.Parser.AST.Enumeration _0) + public TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8017,93 +8636,11 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - - public global::CppSharp.Parser.AST.Enumeration.Item GetItems(uint i) - { - var __ret = __Internal.GetItems_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Enumeration.Item __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Enumeration.Item) global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Enumeration.Item.__CreateInstance(__ret); - return __result0; - } - - public void AddItems(global::CppSharp.Parser.AST.Enumeration.Item s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddItems_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearItems() - { - __Internal.ClearItems_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.Enumeration.EnumModifiers Modifiers - { - get - { - return ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers; - } - - set - { - ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers = value; - } - } - - public global::CppSharp.Parser.AST.Type Type - { - get - { - global::CppSharp.Parser.AST.Type __result0; - if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type)) - __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type]; - else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public global::CppSharp.Parser.AST.BuiltinType BuiltinType - { - get - { - global::CppSharp.Parser.AST.BuiltinType __result0; - if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType)) - __result0 = (global::CppSharp.Parser.AST.BuiltinType) global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType]; - else __result0 = global::CppSharp.Parser.AST.BuiltinType.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public uint ItemsCount - { - get - { - var __ret = __Internal.GetItemsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } } - public unsafe partial class Variable : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class ClassTemplate : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 208)] + [StructLayout(LayoutKind.Explicit, Size = 248)] public new partial struct __Internal { [FieldOffset(0)] @@ -8152,68 +8689,84 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] public global::System.IntPtr originalPtr; - [FieldOffset(160)] + [FieldOffset(184)] public global::System.IntPtr comment; - [FieldOffset(168)] - public global::Std.__1.BasicString.__Internal Mangled; - [FieldOffset(192)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + public global::System.IntPtr TemplatedDecl; + + [FieldOffset(200)] + internal global::Std.__1.Vector.__Internal Parameters; + + [FieldOffset(224)] + internal global::Std.__1.Vector.__Internal Specializations; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8VariableC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8VariableC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8VariableD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Variable10getMangledEv")] - internal static extern global::System.IntPtr Mangled_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate18getSpecializationsEj")] + internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Variable10setMangledEPKc")] - internal static extern void SetMangled_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate18addSpecializationsERPNS1_27ClassTemplateSpecializationE")] + internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate20clearSpecializationsEv")] + internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate23getSpecializationsCountEv")] + internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Variable __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Variable(native.ToPointer(), skipVTables); + return new ClassTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Variable __CreateInstance(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) { - return new Variable(native, skipVTables); + return new ClassTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Variable.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); - global::CppSharp.Parser.AST.Variable.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); + global::CppSharp.Parser.AST.ClassTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Variable(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) + private ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Variable(void* native, bool skipVTables = false) + protected ClassTemplate(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -8222,19 +8775,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Variable() + public ClassTemplate() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Variable(global::CppSharp.Parser.AST.Variable _0) + public ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8253,191 +8806,245 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public global::CppSharp.Parser.AST.ClassTemplateSpecialization GetSpecializations(uint i) + { + var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.ClassTemplateSpecialization __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.ClassTemplateSpecialization) global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.ClassTemplateSpecialization.__CreateInstance(__ret); + return __result0; + } + + public void AddSpecializations(global::CppSharp.Parser.AST.ClassTemplateSpecialization s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearSpecializations() { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); } - public string Mangled + public uint SpecializationsCount { get { - var __ret = __Internal.Mangled_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetMangled_0((__Instance + __PointerAdjustment), value); + var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class BaseClassSpecifier : IDisposable + public unsafe partial class FunctionTemplate : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 248)] + public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isVirtual; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr type; + public global::System.IntPtr _namespace; [FieldOffset(16)] - public int offset; + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.__1.BasicString.__Internal Name; + + [FieldOffset(56)] + public global::Std.__1.BasicString.__Internal USR; + + [FieldOffset(80)] + public global::Std.__1.BasicString.__Internal DebugText; + + [FieldOffset(104)] + public byte isIncomplete; + + [FieldOffset(105)] + public byte isDependent; + + [FieldOffset(106)] + public byte isImplicit; + + [FieldOffset(112)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(120)] + public uint definitionOrder; + + [FieldOffset(128)] + internal global::Std.__1.Vector.__Internal PreprocessedEntities; + + [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] + public global::System.IntPtr originalPtr; + + [FieldOffset(184)] + public global::System.IntPtr comment; + + [FieldOffset(192)] + public global::System.IntPtr TemplatedDecl; + + [FieldOffset(200)] + internal global::Std.__1.Vector.__Internal Parameters; + + [FieldOffset(224)] + internal global::Std.__1.Vector.__Internal Specializations; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18BaseClassSpecifierC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18BaseClassSpecifierC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate18getSpecializationsEj")] + internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate18addSpecializationsERPNS1_30FunctionTemplateSpecializationE")] + internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); - internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate20clearSpecializationsEv")] + internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate23getSpecializationsCountEv")] + internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new BaseClassSpecifier(native.ToPointer(), skipVTables); + return new FunctionTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) { - return new BaseClassSpecifier(native, skipVTables); + return new FunctionTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); - *(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) ret = native; + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); + global::CppSharp.Parser.AST.FunctionTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) + private FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected BaseClassSpecifier(void* native, bool skipVTables = false) + protected FunctionTemplate(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public BaseClassSpecifier() + public FunctionTemplate() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier _0) + public FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.BaseClassSpecifier __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.AccessSpecifier Access + public global::CppSharp.Parser.AST.FunctionTemplateSpecialization GetSpecializations(uint i) { - get - { - return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access = value; - } + var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.FunctionTemplateSpecialization __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.FunctionTemplateSpecialization) global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__CreateInstance(__ret); + return __result0; } - public bool IsVirtual + public void AddSpecializations(global::CppSharp.Parser.AST.FunctionTemplateSpecialization s) { - get - { - return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual != 0; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.Type Type + public void ClearSpecializations() { - get - { - global::CppSharp.Parser.AST.Type __result0; - if (((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type)) - __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type]; - else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); } - public int Offset + public uint SpecializationsCount { get { - return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset = value; + var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class Field : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class Variable : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 200)] + [StructLayout(LayoutKind.Explicit, Size = 232)] public new partial struct __Internal { [FieldOffset(0)] @@ -8486,64 +9093,71 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(152)] - public global::System.IntPtr originalPtr; - - [FieldOffset(160)] - public global::System.IntPtr comment; + internal global::Std.__1.Vector.__Internal Redeclarations; - [FieldOffset(168)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(176)] + public global::System.IntPtr originalPtr; [FieldOffset(184)] - public global::System.IntPtr _class; + public global::System.IntPtr comment; [FieldOffset(192)] - public byte isBitField; + public global::Std.__1.BasicString.__Internal Mangled; - [FieldOffset(196)] - public uint bitWidth; + [FieldOffset(216)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5FieldC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST8VariableC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5FieldC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST8VariableC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8VariableD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Variable10getMangledEv")] + internal static extern global::System.IntPtr Mangled_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5FieldD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST8Variable10setMangledEPKc")] + internal static extern void SetMangled_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - internal static new global::CppSharp.Parser.AST.Field __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Variable __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Field(native.ToPointer(), skipVTables); + return new Variable(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Field __CreateInstance(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Variable __CreateInstance(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) { - return new Field(native, skipVTables); + return new Variable(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Field.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Variable.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); - global::CppSharp.Parser.AST.Field.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); + global::CppSharp.Parser.AST.Variable.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Field(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) + private Variable(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Field(void* native, bool skipVTables = false) + protected Variable(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -8552,19 +9166,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Field() + public Variable() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Field(global::CppSharp.Parser.AST.Field _0) + public Variable(global::CppSharp.Parser.AST.Variable _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8587,63 +9201,33 @@ namespace CppSharp { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.Class Class - { - get - { - global::CppSharp.Parser.AST.Class __result0; - if (((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public bool IsBitField - { - get - { - return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField != 0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public uint BitWidth + public string Mangled { get { - return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth; + var __ret = __Internal.Mangled_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth = value; + __Internal.SetMangled_0((__Instance + __PointerAdjustment), value); } } } - public unsafe partial class AccessSpecifierDecl : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class Friend : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 168)] + [StructLayout(LayoutKind.Explicit, Size = 200)] public new partial struct __Internal { [FieldOffset(0)] @@ -8692,52 +9276,58 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] public global::System.IntPtr originalPtr; - [FieldOffset(160)] + [FieldOffset(184)] public global::System.IntPtr comment; + [FieldOffset(192)] + public global::System.IntPtr declaration; + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST6FriendC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST6FriendC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST6FriendD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Friend __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new AccessSpecifierDecl(native.ToPointer(), skipVTables); + return new Friend(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Friend __CreateInstance(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) { - return new AccessSpecifierDecl(native, skipVTables); + return new Friend(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Friend.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); - global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); + global::CppSharp.Parser.AST.Friend.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) + private Friend(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected AccessSpecifierDecl(void* native, bool skipVTables = false) + protected Friend(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -8746,19 +9336,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public AccessSpecifierDecl() + public Friend() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl _0) + public Friend(global::CppSharp.Parser.AST.Friend _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8776,263 +9366,222 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + + public global::CppSharp.Parser.AST.Declaration Declaration + { + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } } - public unsafe partial class Class : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + public unsafe partial class Statement : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 536)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 40)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::CppSharp.Parser.AST.StatementClass _class; [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.__1.BasicString.__Internal Name; - - [FieldOffset(56)] - public global::Std.__1.BasicString.__Internal USR; - - [FieldOffset(80)] - public global::Std.__1.BasicString.__Internal DebugText; - - [FieldOffset(104)] - public byte isIncomplete; - - [FieldOffset(105)] - public byte isDependent; - - [FieldOffset(106)] - public byte isImplicit; - - [FieldOffset(112)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(120)] - public uint definitionOrder; - - [FieldOffset(128)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; - - [FieldOffset(152)] - public global::System.IntPtr originalPtr; - - [FieldOffset(160)] - public global::System.IntPtr comment; - - [FieldOffset(168)] - internal global::Std.__1.Vector.__Internal Namespaces; - - [FieldOffset(192)] - internal global::Std.__1.Vector.__Internal Enums; - - [FieldOffset(216)] - internal global::Std.__1.Vector.__Internal Functions; - - [FieldOffset(240)] - internal global::Std.__1.Vector.__Internal Classes; - - [FieldOffset(264)] - internal global::Std.__1.Vector.__Internal Templates; - - [FieldOffset(288)] - internal global::Std.__1.Vector.__Internal Typedefs; - - [FieldOffset(312)] - internal global::Std.__1.Vector.__Internal TypeAliases; - - [FieldOffset(336)] - internal global::Std.__1.Vector.__Internal Variables; - - [FieldOffset(360)] - internal global::Std.__1.Vector.__Internal Friends; - - [FieldOffset(384)] - internal global::Std.__1.Map.__Internal anonymous; - - [FieldOffset(408)] - public byte isAnonymous; - - [FieldOffset(416)] - internal global::Std.__1.Vector.__Internal Bases; - - [FieldOffset(440)] - internal global::Std.__1.Vector.__Internal Fields; - - [FieldOffset(464)] - internal global::Std.__1.Vector.__Internal Methods; - - [FieldOffset(488)] - internal global::Std.__1.Vector.__Internal Specifiers; - - [FieldOffset(512)] - public byte isPOD; - - [FieldOffset(513)] - public byte isAbstract; - - [FieldOffset(514)] - public byte isUnion; - - [FieldOffset(515)] - public byte isDynamic; - - [FieldOffset(516)] - public byte isPolymorphic; - - [FieldOffset(517)] - public byte hasNonTrivialDefaultConstructor; - - [FieldOffset(518)] - public byte hasNonTrivialCopyConstructor; - - [FieldOffset(519)] - public byte hasNonTrivialDestructor; - - [FieldOffset(520)] - public byte isExternCContext; - - [FieldOffset(521)] - public byte isInjected; - - [FieldOffset(528)] - public global::System.IntPtr layout; + public global::System.IntPtr decl; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5ClassC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(16)] + public global::Std.__1.BasicString.__Internal String; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5ClassC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST9StatementC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5ClassD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9StatementD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class8getBasesEj")] - internal static extern global::System.IntPtr GetBases_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST9Statement9getStringEv")] + internal static extern global::System.IntPtr String_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class8addBasesERPNS1_18BaseClassSpecifierE")] - internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST9Statement9setStringEPKc")] + internal static extern void SetString_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class10clearBasesEv")] - internal static extern void ClearBases_0(global::System.IntPtr instance); + public global::System.IntPtr __Instance { get; protected set; } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class9getFieldsEj")] - internal static extern global::System.IntPtr GetFields_0(global::System.IntPtr instance, uint i); + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class9addFieldsERPNS1_5FieldE")] - internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); + protected bool __ownsNativeInstance; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class11clearFieldsEv")] - internal static extern void ClearFields_0(global::System.IntPtr instance); + internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Statement(native.ToPointer(), skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class10getMethodsEj")] - internal static extern global::System.IntPtr GetMethods_0(global::System.IntPtr instance, uint i); + internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + { + return new Statement(native, skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class10addMethodsERPNS1_6MethodE")] - internal static extern void AddMethods_0(global::System.IntPtr instance, global::System.IntPtr s); + private static void* __CopyValue(global::CppSharp.Parser.AST.Statement.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); + global::CppSharp.Parser.AST.Statement.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class12clearMethodsEv")] - internal static extern void ClearMethods_0(global::System.IntPtr instance); + private Statement(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class13getSpecifiersEj")] - internal static extern global::System.IntPtr GetSpecifiers_0(global::System.IntPtr instance, uint i); + protected Statement(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class13addSpecifiersERPNS1_19AccessSpecifierDeclE")] - internal static extern void AddSpecifiers_0(global::System.IntPtr instance, global::System.IntPtr s); + public Statement(global::CppSharp.Parser.AST.Statement _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class15clearSpecifiersEv")] - internal static extern void ClearSpecifiers_0(global::System.IntPtr instance); + public void Dispose() + { + Dispose(disposing: true); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class13getBasesCountEv")] - internal static extern uint GetBasesCount_0(global::System.IntPtr instance); + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Statement __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class14getFieldsCountEv")] - internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); + public global::CppSharp.Parser.AST.StatementClass Class + { + get + { + return ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class; + } + + set + { + ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class = value; + } + } + + public global::CppSharp.Parser.AST.Declaration Decl + { + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public string String + { + get + { + var __ret = __Internal.String_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetString_0((__Instance + __PointerAdjustment), value); + } + } + } + + public unsafe partial class Expression : global::CppSharp.Parser.AST.Statement, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 40)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; + + [FieldOffset(8)] + public global::System.IntPtr decl; + + [FieldOffset(16)] + public global::Std.__1.BasicString.__Internal String; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class15getMethodsCountEv")] - internal static extern uint GetMethodsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST10ExpressionC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class18getSpecifiersCountEv")] - internal static extern uint GetSpecifiersCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST10ExpressionD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Class __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Expression __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Class(native.ToPointer(), skipVTables); + return new Expression(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Class __CreateInstance(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Expression __CreateInstance(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) { - return new Class(native, skipVTables); + return new Expression(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Class.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Expression.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); - global::CppSharp.Parser.AST.Class.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); + global::CppSharp.Parser.AST.Expression.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Class(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) + private Expression(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Class(void* native, bool skipVTables = false) + protected Expression(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -9041,19 +9590,10 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Class() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public Class(global::CppSharp.Parser.AST.Class _0) + public Expression(global::CppSharp.Parser.AST.Expression _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -9064,423 +9604,375 @@ namespace CppSharp public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Declaration __dummy; + global::CppSharp.Parser.AST.Statement __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + } - public global::CppSharp.Parser.AST.BaseClassSpecifier GetBases(uint i) + public unsafe partial class BinaryOperator : global::CppSharp.Parser.AST.Expression, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 80)] + public new partial struct __Internal { - var __ret = __Internal.GetBases_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.BaseClassSpecifier __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.BaseClassSpecifier) global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.BaseClassSpecifier.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; - public void AddBases(global::CppSharp.Parser.AST.BaseClassSpecifier s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(8)] + public global::System.IntPtr decl; + + [FieldOffset(16)] + public global::Std.__1.BasicString.__Internal String; + + [FieldOffset(40)] + public global::System.IntPtr LHS; + + [FieldOffset(48)] + public global::System.IntPtr RHS; - public void ClearBases() - { - __Internal.ClearBases_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(56)] + public global::Std.__1.BasicString.__Internal OpcodeStr; - public global::CppSharp.Parser.AST.Field GetFields(uint i) - { - var __ret = __Internal.GetFields_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Field __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Field.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Field) global::CppSharp.Parser.AST.Field.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Field.__CreateInstance(__ret); - return __result0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperatorC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - public void AddFields(global::CppSharp.Parser.AST.Field s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperatorD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperator12getOpcodeStrEv")] + internal static extern global::System.IntPtr OpcodeStr_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperator12setOpcodeStrEPKc")] + internal static extern void SetOpcodeStr_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - public void ClearFields() + internal static new global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - __Internal.ClearFields_0((__Instance + __PointerAdjustment)); + return new BinaryOperator(native.ToPointer(), skipVTables); } - public global::CppSharp.Parser.AST.Method GetMethods(uint i) + internal static global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) { - var __ret = __Internal.GetMethods_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Method __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Method.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Method) global::CppSharp.Parser.AST.Method.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Method.__CreateInstance(__ret); - return __result0; + return new BinaryOperator(native, skipVTables); } - public void AddMethods(global::CppSharp.Parser.AST.Method s) + private static void* __CopyValue(global::CppSharp.Parser.AST.BinaryOperator.__Internal native) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddMethods_0((__Instance + __PointerAdjustment), __arg0); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); + global::CppSharp.Parser.AST.BinaryOperator.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public void ClearMethods() + private BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - __Internal.ClearMethods_0((__Instance + __PointerAdjustment)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public global::CppSharp.Parser.AST.AccessSpecifierDecl GetSpecifiers(uint i) + protected BinaryOperator(void* native, bool skipVTables = false) + : base((void*) null) { - var __ret = __Internal.GetSpecifiers_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.AccessSpecifierDecl __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.AccessSpecifierDecl) global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.AccessSpecifierDecl.__CreateInstance(__ret); - return __result0; + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public void AddSpecifiers(global::CppSharp.Parser.AST.AccessSpecifierDecl s) + public BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator _0) + : this((void*) null) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecifiers_0((__Instance + __PointerAdjustment), __arg0); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void ClearSpecifiers() + public override void Dispose(bool disposing) { - __Internal.ClearSpecifiers_0((__Instance + __PointerAdjustment)); + global::CppSharp.Parser.AST.Statement __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public bool IsPOD + public global::CppSharp.Parser.AST.Expression LHS { get { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD != 0; + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS); + return __result0; } set { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsAbstract + public global::CppSharp.Parser.AST.Expression RHS { get { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract != 0; + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS); + return __result0; } set { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsUnion + public string OpcodeStr { get { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion != 0; + var __ret = __Internal.OpcodeStr_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion = (byte) (value ? 1 : 0); + __Internal.SetOpcodeStr_0((__Instance + __PointerAdjustment), value); } } + } - public bool IsDynamic + public unsafe partial class CallExpr : global::CppSharp.Parser.AST.Expression, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 64)] + public new partial struct __Internal { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic != 0; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic = (byte) (value ? 1 : 0); - } - } + [FieldOffset(8)] + public global::System.IntPtr decl; - public bool IsPolymorphic - { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic != 0; - } + [FieldOffset(16)] + public global::Std.__1.BasicString.__Internal String; - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic = (byte) (value ? 1 : 0); - } - } + [FieldOffset(40)] + internal global::Std.__1.Vector.__Internal Arguments; - public bool HasNonTrivialDefaultConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor != 0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExprC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor = (byte) (value ? 1 : 0); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExprD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr12getArgumentsEj")] + internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr12addArgumentsERPNS1_10ExpressionE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - public bool HasNonTrivialCopyConstructor + internal static new global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor = (byte) (value ? 1 : 0); - } + return new CallExpr(native.ToPointer(), skipVTables); } - public bool HasNonTrivialDestructor + internal static global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor != 0; - } + return new CallExpr(native, skipVTables); + } - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor = (byte) (value ? 1 : 0); - } + private static void* __CopyValue(global::CppSharp.Parser.AST.CallExpr.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); + global::CppSharp.Parser.AST.CallExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public bool IsExternCContext + private CallExpr(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext != 0; - } + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext = (byte) (value ? 1 : 0); - } + protected CallExpr(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public bool IsInjected + public CallExpr(global::CppSharp.Parser.AST.CallExpr _0) + : this((void*) null) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected = (byte) (value ? 1 : 0); - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.ClassLayout Layout + public override void Dispose(bool disposing) { - get - { - global::CppSharp.Parser.AST.ClassLayout __result0; - if (((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout)) - __result0 = (global::CppSharp.Parser.AST.ClassLayout) global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap[((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout]; - else __result0 = global::CppSharp.Parser.AST.ClassLayout.__CreateInstance(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + global::CppSharp.Parser.AST.Statement __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public uint BasesCount + public global::CppSharp.Parser.AST.Expression GetArguments(uint i) { - get - { - var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Expression __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); + return __result0; } - public uint FieldsCount + public void AddArguments(global::CppSharp.Parser.AST.Expression s) { - get - { - var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); } - public uint MethodsCount + public void ClearArguments() { - get - { - var __ret = __Internal.GetMethodsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint SpecifiersCount + public uint ArgumentsCount { get { - var __ret = __Internal.GetSpecifiersCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class Template : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class CXXConstructExpr : global::CppSharp.Parser.AST.Expression, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 200)] + [StructLayout(LayoutKind.Explicit, Size = 64)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::CppSharp.Parser.AST.StatementClass _class; [FieldOffset(8)] - public global::System.IntPtr _namespace; + public global::System.IntPtr decl; [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.__1.BasicString.__Internal Name; - - [FieldOffset(56)] - public global::Std.__1.BasicString.__Internal USR; - - [FieldOffset(80)] - public global::Std.__1.BasicString.__Internal DebugText; - - [FieldOffset(104)] - public byte isIncomplete; - - [FieldOffset(105)] - public byte isDependent; - - [FieldOffset(106)] - public byte isImplicit; - - [FieldOffset(112)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(120)] - public uint definitionOrder; - - [FieldOffset(128)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; - - [FieldOffset(152)] - public global::System.IntPtr originalPtr; - - [FieldOffset(160)] - public global::System.IntPtr comment; - - [FieldOffset(168)] - public global::System.IntPtr TemplatedDecl; - - [FieldOffset(176)] - internal global::Std.__1.Vector.__Internal Parameters; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + public global::Std.__1.BasicString.__Internal String; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2Ev")] - internal static extern void ctor_1(global::System.IntPtr instance); + [FieldOffset(40)] + internal global::Std.__1.Vector.__Internal Arguments; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2ERKS2_")] - internal static extern void cctor_3(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExprC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExprD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Template13getParametersEj")] - internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr12getArgumentsEj")] + internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Template13addParametersERPNS1_11DeclarationE")] - internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr12addArgumentsERPNS1_10ExpressionE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Template15clearParametersEv")] - internal static extern void ClearParameters_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Template18getParametersCountEv")] - internal static extern uint GetParametersCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Template __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Template(native.ToPointer(), skipVTables); + return new CXXConstructExpr(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Template __CreateInstance(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) { - return new Template(native, skipVTables); + return new CXXConstructExpr(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Template.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); - global::CppSharp.Parser.AST.Template.__Internal.cctor_3(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); + global::CppSharp.Parser.AST.CXXConstructExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Template(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) + private CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Template(void* native, bool skipVTables = false) + protected CXXConstructExpr(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -9489,39 +9981,21 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Template(global::CppSharp.Parser.AST.DeclarationKind kind) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); - } - - public Template() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_1((__Instance + __PointerAdjustment)); - } - - public Template(global::CppSharp.Parser.AST.Template _0) + public CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_3((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Declaration __dummy; + global::CppSharp.Parser.AST.Statement __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -9529,187 +10003,143 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Declaration GetParameters(uint i) + public global::CppSharp.Parser.AST.Expression GetArguments(uint i) { - var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Declaration __result0; + var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Expression __result0; if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(__ret); + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); return __result0; } - public void AddParameters(global::CppSharp.Parser.AST.Declaration s) + public void AddArguments(global::CppSharp.Parser.AST.Expression s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearParameters() - { - __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); - } - - public static implicit operator global::CppSharp.Parser.AST.Template(global::CppSharp.Parser.AST.DeclarationKind kind) - { - return new global::CppSharp.Parser.AST.Template(kind); + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.Declaration TemplatedDecl - { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + public void ClearArguments() + { + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint ParametersCount + public uint ArgumentsCount { get { - var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class FunctionTemplateSpecialization : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 200)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 48)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::System.IntPtr _template; [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; + internal global::Std.__1.Vector.__Internal Arguments; [FieldOffset(32)] - public global::Std.__1.BasicString.__Internal Name; - - [FieldOffset(56)] - public global::Std.__1.BasicString.__Internal USR; - - [FieldOffset(80)] - public global::Std.__1.BasicString.__Internal DebugText; - - [FieldOffset(104)] - public byte isIncomplete; - - [FieldOffset(105)] - public byte isDependent; - - [FieldOffset(106)] - public byte isImplicit; - - [FieldOffset(112)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(120)] - public uint definitionOrder; + public global::System.IntPtr specializedFunction; - [FieldOffset(128)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; + [FieldOffset(40)] + public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; - [FieldOffset(152)] - public global::System.IntPtr originalPtr; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(160)] - public global::System.IntPtr comment; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(168)] - public global::System.IntPtr TemplatedDecl; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - [FieldOffset(176)] - internal global::Std.__1.Vector.__Internal Parameters; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization12getArgumentsEj")] + internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypeAliasTemplate(native.ToPointer(), skipVTables); + return new FunctionTemplateSpecialization(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) { - return new TypeAliasTemplate(native, skipVTables); + return new FunctionTemplateSpecialization(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); - global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); + global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) + private FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypeAliasTemplate(void* native, bool skipVTables = false) - : base((void*) null) + protected FunctionTemplateSpecialization(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public TypeAliasTemplate() - : this((void*) null) + public FunctionTemplateSpecialization() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate _0) - : this((void*) null) + public FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -9718,20 +10148,103 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.FunctionTemplateSpecialization __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + + public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) + { + var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); + __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); + } + + public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearArguments() + { + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.FunctionTemplate Template + { + get + { + global::CppSharp.Parser.AST.FunctionTemplate __result0; + if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template)) + __result0 = (global::CppSharp.Parser.AST.FunctionTemplate) global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template]; + else __result0 = global::CppSharp.Parser.AST.FunctionTemplate.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public global::CppSharp.Parser.AST.Function SpecializedFunction + { + get + { + global::CppSharp.Parser.AST.Function __result0; + if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction)) + __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction]; + else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public global::CppSharp.Parser.AST.TemplateSpecializationKind SpecializationKind + { + get + { + return ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; + } + } + + public uint ArgumentsCount + { + get + { + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } } - public unsafe partial class TemplateParameter : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class AccessSpecifierDecl : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 184)] + [StructLayout(LayoutKind.Explicit, Size = 192)] public new partial struct __Internal { [FieldOffset(0)] @@ -9780,61 +10293,55 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] public global::System.IntPtr originalPtr; - [FieldOffset(160)] + [FieldOffset(184)] public global::System.IntPtr comment; - [FieldOffset(168)] - public uint depth; - - [FieldOffset(172)] - public uint index; - - [FieldOffset(176)] - public byte isParameterPack; - [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateParameter(native.ToPointer(), skipVTables); + return new AccessSpecifierDecl(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) { - return new TemplateParameter(native, skipVTables); + return new AccessSpecifierDecl(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); - global::CppSharp.Parser.AST.TemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) + private AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateParameter(void* native, bool skipVTables = false) + protected AccessSpecifierDecl(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -9843,19 +10350,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) + public AccessSpecifierDecl() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter _0) + public AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -9873,55 +10380,11 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - - public static implicit operator global::CppSharp.Parser.AST.TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) - { - return new global::CppSharp.Parser.AST.TemplateParameter(kind); - } - - public uint Depth - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth = value; - } - } - - public uint Index - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index = value; - } - } - - public bool IsParameterPack - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack != 0; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); - } - } } - public unsafe partial class TemplateTemplateParameter : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 208)] + [StructLayout(LayoutKind.Explicit, Size = 400)] public new partial struct __Internal { [FieldOffset(0)] @@ -9970,67 +10433,142 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] public global::System.IntPtr originalPtr; - [FieldOffset(160)] + [FieldOffset(184)] public global::System.IntPtr comment; - [FieldOffset(168)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(192)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(176)] + [FieldOffset(208)] + public byte isReturnIndirect; + + [FieldOffset(209)] + public byte hasThisReturn; + + [FieldOffset(210)] + public byte isConstExpr; + + [FieldOffset(211)] + public byte isVariadic; + + [FieldOffset(212)] + public byte isInline; + + [FieldOffset(213)] + public byte isPure; + + [FieldOffset(214)] + public byte isDeleted; + + [FieldOffset(216)] + public global::CppSharp.Parser.AST.FriendKind friendKind; + + [FieldOffset(220)] + public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; + + [FieldOffset(224)] + public global::Std.__1.BasicString.__Internal Mangled; + + [FieldOffset(248)] + public global::Std.__1.BasicString.__Internal Signature; + + [FieldOffset(272)] + public global::Std.__1.BasicString.__Internal Body; + + [FieldOffset(296)] + public global::CppSharp.Parser.AST.CallingConvention callingConvention; + + [FieldOffset(304)] internal global::Std.__1.Vector.__Internal Parameters; - [FieldOffset(200)] - public byte isParameterPack; + [FieldOffset(328)] + public global::System.IntPtr specializationInfo; - [FieldOffset(201)] - public byte isPackExpansion; + [FieldOffset(336)] + public global::System.IntPtr instantiatedFrom; - [FieldOffset(202)] - public byte isExpandedParameterPack; + [FieldOffset(344)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(360)] + public byte isVirtual; + + [FieldOffset(361)] + public byte isStatic; + + [FieldOffset(362)] + public byte isConst; + + [FieldOffset(363)] + public byte isExplicit; + + [FieldOffset(364)] + public byte isOverride; + + [FieldOffset(368)] + public global::CppSharp.Parser.AST.CXXMethodKind methodKind; + + [FieldOffset(372)] + public byte isDefaultConstructor; + + [FieldOffset(373)] + public byte isCopyConstructor; + + [FieldOffset(374)] + public byte isMoveConstructor; + + [FieldOffset(376)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; + + [FieldOffset(392)] + public global::CppSharp.Parser.AST.RefQualifierKind refQualifier; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST6MethodD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateTemplateParameter(native.ToPointer(), skipVTables); + return new Method(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Method __CreateInstance(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) { - return new TemplateTemplateParameter(native, skipVTables); + return new Method(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Method.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); - global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); + global::CppSharp.Parser.AST.Method.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) + private Method(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateTemplateParameter(void* native, bool skipVTables = false) + protected Method(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10039,19 +10577,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateTemplateParameter() + public Method() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter _0) + public Method(global::CppSharp.Parser.AST.Method _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10070,211 +10608,307 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public bool IsParameterPack + public bool IsVirtual + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); + } + } + + public bool IsStatic + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic = (byte) (value ? 1 : 0); + } + } + + public bool IsConst + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst = (byte) (value ? 1 : 0); + } + } + + public bool IsExplicit + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit = (byte) (value ? 1 : 0); + } + } + + public bool IsOverride + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride = (byte) (value ? 1 : 0); + } + } + + public global::CppSharp.Parser.AST.CXXMethodKind MethodKind + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind = value; + } + } + + public bool IsDefaultConstructor + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor = (byte) (value ? 1 : 0); + } + } + + public bool IsCopyConstructor + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor = (byte) (value ? 1 : 0); + } + } + + public bool IsMoveConstructor { get { - return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack != 0; + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor != 0; } set { - ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor = (byte) (value ? 1 : 0); } } - public bool IsPackExpansion + public global::CppSharp.Parser.AST.QualifiedType ConversionType { get { - return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType); } set { - ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public bool IsExpandedParameterPack + public global::CppSharp.Parser.AST.RefQualifierKind RefQualifier { get { - return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier; } set { - ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value; } } } - public unsafe partial class TypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable + public unsafe partial class BaseClassSpecifier : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 200)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 24)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public byte isVirtual; [FieldOffset(8)] - public global::System.IntPtr _namespace; + public global::System.IntPtr type; [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.__1.BasicString.__Internal Name; - - [FieldOffset(56)] - public global::Std.__1.BasicString.__Internal USR; - - [FieldOffset(80)] - public global::Std.__1.BasicString.__Internal DebugText; - - [FieldOffset(104)] - public byte isIncomplete; - - [FieldOffset(105)] - public byte isDependent; - - [FieldOffset(106)] - public byte isImplicit; - - [FieldOffset(112)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(120)] - public uint definitionOrder; - - [FieldOffset(128)] - internal global::Std.__1.Vector.__Internal PreprocessedEntities; - - [FieldOffset(152)] - public global::System.IntPtr originalPtr; - - [FieldOffset(160)] - public global::System.IntPtr comment; - - [FieldOffset(168)] - public uint depth; - - [FieldOffset(172)] - public uint index; - - [FieldOffset(176)] - public byte isParameterPack; - - [FieldOffset(184)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal defaultArgument; + public int offset; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST18BaseClassSpecifierC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST18BaseClassSpecifierC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypeTemplateParameter(native.ToPointer(), skipVTables); + return new BaseClassSpecifier(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) { - return new TypeTemplateParameter(native, skipVTables); + return new BaseClassSpecifier(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); - global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); + *(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) ret = native; return ret.ToPointer(); } - private TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) + private BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypeTemplateParameter(void* native, bool skipVTables = false) - : base((void*) null) + protected BaseClassSpecifier(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public TypeTemplateParameter() - : this((void*) null) + public BaseClassSpecifier() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter _0) - : this((void*) null) + public BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) _0.__Instance); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.BaseClassSpecifier __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.QualifiedType DefaultArgument + public global::CppSharp.Parser.AST.AccessSpecifier Access { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument); + return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access; } set { - ((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access = value; + } + } + + public bool IsVirtual + { + get + { + return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual != 0; + } + + set + { + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); + } + } + + public global::CppSharp.Parser.AST.Type Type + { + get + { + global::CppSharp.Parser.AST.Type __result0; + if (((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type)) + __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type]; + else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public int Offset + { + get + { + return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset; + } + + set + { + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset = value; } } } - public unsafe partial class NonTypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable + public unsafe partial class Field : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 200)] + [StructLayout(LayoutKind.Explicit, Size = 224)] public new partial struct __Internal { [FieldOffset(0)] @@ -10323,73 +10957,67 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(152)] - public global::System.IntPtr originalPtr; - - [FieldOffset(160)] - public global::System.IntPtr comment; - - [FieldOffset(168)] - public uint depth; - - [FieldOffset(172)] - public uint index; + internal global::Std.__1.Vector.__Internal Redeclarations; [FieldOffset(176)] - public byte isParameterPack; + public global::System.IntPtr originalPtr; [FieldOffset(184)] - public global::System.IntPtr defaultArgument; + public global::System.IntPtr comment; [FieldOffset(192)] - public uint position; + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(196)] - public byte isPackExpansion; + [FieldOffset(208)] + public global::System.IntPtr _class; - [FieldOffset(197)] - public byte isExpandedParameterPack; + [FieldOffset(216)] + public byte isBitField; + + [FieldOffset(220)] + public uint bitWidth; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST5FieldC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST5FieldC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST5FieldD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Field __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new NonTypeTemplateParameter(native.ToPointer(), skipVTables); + return new Field(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Field __CreateInstance(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) { - return new NonTypeTemplateParameter(native, skipVTables); + return new Field(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Field.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); - global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); + global::CppSharp.Parser.AST.Field.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) + private Field(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected NonTypeTemplateParameter(void* native, bool skipVTables = false) + protected Field(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10398,19 +11026,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public NonTypeTemplateParameter() + public Field() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter _0) + public Field(global::CppSharp.Parser.AST.Field _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10429,67 +11057,67 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Expression DefaultArgument + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public uint Position + public global::CppSharp.Parser.AST.Class Class { get { - return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position; + global::CppSharp.Parser.AST.Class __result0; + if (((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class); + return __result0; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position = value; + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsPackExpansion + public bool IsBitField { get { - return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField != 0; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField = (byte) (value ? 1 : 0); } } - public bool IsExpandedParameterPack + public uint BitWidth { get { - return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth = value; } } } - public unsafe partial class ClassTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class TemplateParameter : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 224)] + [StructLayout(LayoutKind.Explicit, Size = 208)] public new partial struct __Internal { [FieldOffset(0)] @@ -10538,81 +11166,64 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] public global::System.IntPtr originalPtr; - [FieldOffset(160)] + [FieldOffset(184)] public global::System.IntPtr comment; - [FieldOffset(168)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(192)] + public uint depth; - [FieldOffset(176)] - internal global::Std.__1.Vector.__Internal Parameters; + [FieldOffset(196)] + public uint index; [FieldOffset(200)] - internal global::Std.__1.Vector.__Internal Specializations; + public byte isParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate18getSpecializationsEj")] - internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate18addSpecializationsERPNS1_27ClassTemplateSpecializationE")] - internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate20clearSpecializationsEv")] - internal static extern void ClearSpecializations_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate23getSpecializationsCountEv")] - internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassTemplate(native.ToPointer(), skipVTables); + return new TemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) { - return new ClassTemplate(native, skipVTables); + return new TemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); - global::CppSharp.Parser.AST.ClassTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); + global::CppSharp.Parser.AST.TemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) + private TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassTemplate(void* native, bool skipVTables = false) + protected TemplateParameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10621,19 +11232,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public ClassTemplate() + public TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate _0) + public TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10652,43 +11263,54 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.ClassTemplateSpecialization GetSpecializations(uint i) + public static implicit operator global::CppSharp.Parser.AST.TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) { - var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.ClassTemplateSpecialization __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.ClassTemplateSpecialization) global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.ClassTemplateSpecialization.__CreateInstance(__ret); - return __result0; + return new global::CppSharp.Parser.AST.TemplateParameter(kind); } - public void AddSpecializations(global::CppSharp.Parser.AST.ClassTemplateSpecialization s) + public uint Depth { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); + get + { + return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth = value; + } } - public void ClearSpecializations() + public uint Index { - __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); + get + { + return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index = value; + } } - public uint SpecializationsCount + public bool IsParameterPack { get { - var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); } } } - public unsafe partial class ClassTemplateSpecialization : global::CppSharp.Parser.AST.Class, IDisposable + public unsafe partial class TemplateTemplateParameter : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 576)] + [StructLayout(LayoutKind.Explicit, Size = 232)] public new partial struct __Internal { [FieldOffset(0)] @@ -10737,159 +11359,70 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] public global::System.IntPtr originalPtr; - [FieldOffset(160)] + [FieldOffset(184)] public global::System.IntPtr comment; - [FieldOffset(168)] - internal global::Std.__1.Vector.__Internal Namespaces; - [FieldOffset(192)] - internal global::Std.__1.Vector.__Internal Enums; - - [FieldOffset(216)] - internal global::Std.__1.Vector.__Internal Functions; - - [FieldOffset(240)] - internal global::Std.__1.Vector.__Internal Classes; - - [FieldOffset(264)] - internal global::Std.__1.Vector.__Internal Templates; - - [FieldOffset(288)] - internal global::Std.__1.Vector.__Internal Typedefs; - - [FieldOffset(312)] - internal global::Std.__1.Vector.__Internal TypeAliases; - - [FieldOffset(336)] - internal global::Std.__1.Vector.__Internal Variables; - - [FieldOffset(360)] - internal global::Std.__1.Vector.__Internal Friends; - - [FieldOffset(384)] - internal global::Std.__1.Map.__Internal anonymous; - - [FieldOffset(408)] - public byte isAnonymous; - - [FieldOffset(416)] - internal global::Std.__1.Vector.__Internal Bases; - - [FieldOffset(440)] - internal global::Std.__1.Vector.__Internal Fields; - - [FieldOffset(464)] - internal global::Std.__1.Vector.__Internal Methods; - - [FieldOffset(488)] - internal global::Std.__1.Vector.__Internal Specifiers; - - [FieldOffset(512)] - public byte isPOD; - - [FieldOffset(513)] - public byte isAbstract; - - [FieldOffset(514)] - public byte isUnion; - - [FieldOffset(515)] - public byte isDynamic; - - [FieldOffset(516)] - public byte isPolymorphic; - - [FieldOffset(517)] - public byte hasNonTrivialDefaultConstructor; - - [FieldOffset(518)] - public byte hasNonTrivialCopyConstructor; - - [FieldOffset(519)] - public byte hasNonTrivialDestructor; - - [FieldOffset(520)] - public byte isExternCContext; - - [FieldOffset(521)] - public byte isInjected; - - [FieldOffset(528)] - public global::System.IntPtr layout; - - [FieldOffset(536)] - public global::System.IntPtr templatedDecl; - - [FieldOffset(544)] - internal global::Std.__1.Vector.__Internal Arguments; - - [FieldOffset(568)] - public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public global::System.IntPtr TemplatedDecl; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + [FieldOffset(200)] + internal global::Std.__1.Vector.__Internal Parameters; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization12getArgumentsEj")] - internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); + [FieldOffset(224)] + public byte isParameterPack; + + [FieldOffset(225)] + public byte isPackExpansion; + + [FieldOffset(226)] + public byte isExpandedParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassTemplateSpecialization(native.ToPointer(), skipVTables); + return new TemplateTemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) { - return new ClassTemplateSpecialization(native, skipVTables); + return new TemplateTemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); - global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); + global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) + private TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassTemplateSpecialization(void* native, bool skipVTables = false) + protected TemplateTemplateParameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10898,19 +11431,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public ClassTemplateSpecialization() + public TemplateTemplateParameter() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization _0) + public TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10929,70 +11462,49 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) - { - var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); - __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); - } - - public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearArguments() - { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.ClassTemplate TemplatedDecl + public bool IsParameterPack { get { - global::CppSharp.Parser.AST.ClassTemplate __result0; - if (((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl)) - __result0 = (global::CppSharp.Parser.AST.ClassTemplate) global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl]; - else __result0 = global::CppSharp.Parser.AST.ClassTemplate.__CreateInstance(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl); - return __result0; + return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack != 0; } set { - ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.TemplateSpecializationKind SpecializationKind + public bool IsPackExpansion { get { - return ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind; + return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; } set { - ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; + ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); } } - public uint ArgumentsCount + public bool IsExpandedParameterPack { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); } } } - public unsafe partial class ClassTemplatePartialSpecialization : global::CppSharp.Parser.AST.ClassTemplateSpecialization, IDisposable + public unsafe partial class NonTypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 576)] + [StructLayout(LayoutKind.Explicit, Size = 224)] public new partial struct __Internal { [FieldOffset(0)] @@ -11041,139 +11553,76 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] public global::System.IntPtr originalPtr; - [FieldOffset(160)] + [FieldOffset(184)] public global::System.IntPtr comment; - [FieldOffset(168)] - internal global::Std.__1.Vector.__Internal Namespaces; - [FieldOffset(192)] - internal global::Std.__1.Vector.__Internal Enums; - - [FieldOffset(216)] - internal global::Std.__1.Vector.__Internal Functions; - - [FieldOffset(240)] - internal global::Std.__1.Vector.__Internal Classes; - - [FieldOffset(264)] - internal global::Std.__1.Vector.__Internal Templates; - - [FieldOffset(288)] - internal global::Std.__1.Vector.__Internal Typedefs; - - [FieldOffset(312)] - internal global::Std.__1.Vector.__Internal TypeAliases; - - [FieldOffset(336)] - internal global::Std.__1.Vector.__Internal Variables; - - [FieldOffset(360)] - internal global::Std.__1.Vector.__Internal Friends; - - [FieldOffset(384)] - internal global::Std.__1.Map.__Internal anonymous; - - [FieldOffset(408)] - public byte isAnonymous; - - [FieldOffset(416)] - internal global::Std.__1.Vector.__Internal Bases; - - [FieldOffset(440)] - internal global::Std.__1.Vector.__Internal Fields; - - [FieldOffset(464)] - internal global::Std.__1.Vector.__Internal Methods; - - [FieldOffset(488)] - internal global::Std.__1.Vector.__Internal Specifiers; - - [FieldOffset(512)] - public byte isPOD; - - [FieldOffset(513)] - public byte isAbstract; - - [FieldOffset(514)] - public byte isUnion; - - [FieldOffset(515)] - public byte isDynamic; - - [FieldOffset(516)] - public byte isPolymorphic; - - [FieldOffset(517)] - public byte hasNonTrivialDefaultConstructor; - - [FieldOffset(518)] - public byte hasNonTrivialCopyConstructor; - - [FieldOffset(519)] - public byte hasNonTrivialDestructor; + public uint depth; - [FieldOffset(520)] - public byte isExternCContext; + [FieldOffset(196)] + public uint index; - [FieldOffset(521)] - public byte isInjected; + [FieldOffset(200)] + public byte isParameterPack; - [FieldOffset(528)] - public global::System.IntPtr layout; + [FieldOffset(208)] + public global::System.IntPtr defaultArgument; - [FieldOffset(536)] - public global::System.IntPtr templatedDecl; + [FieldOffset(216)] + public uint position; - [FieldOffset(544)] - internal global::Std.__1.Vector.__Internal Arguments; + [FieldOffset(220)] + public byte isPackExpansion; - [FieldOffset(568)] - public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; + [FieldOffset(221)] + public byte isExpandedParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassTemplatePartialSpecialization(native.ToPointer(), skipVTables); + return new NonTypeTemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) { - return new ClassTemplatePartialSpecialization(native, skipVTables); + return new NonTypeTemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); - global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) + private NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassTemplatePartialSpecialization(void* native, bool skipVTables = false) + protected NonTypeTemplateParameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -11182,41 +11631,98 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public ClassTemplatePartialSpecialization() - : this((void*) null) + public NonTypeTemplateParameter() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.Expression DefaultArgument + { + get + { + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public uint Position + { + get + { + return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position = value; + } + } + + public bool IsPackExpansion { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + get + { + return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + } - public ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + } } - public override void Dispose(bool disposing) + public bool IsExpandedParameterPack { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + get + { + return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); + } } } - public unsafe partial class FunctionTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class ClassTemplateSpecialization : global::CppSharp.Parser.AST.Class, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 224)] + [StructLayout(LayoutKind.Explicit, Size = 600)] public new partial struct __Internal { [FieldOffset(0)] @@ -11265,257 +11771,183 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] public global::System.IntPtr originalPtr; - [FieldOffset(160)] + [FieldOffset(184)] public global::System.IntPtr comment; - [FieldOffset(168)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(192)] + internal global::Std.__1.Vector.__Internal Namespaces; - [FieldOffset(176)] - internal global::Std.__1.Vector.__Internal Parameters; + [FieldOffset(216)] + internal global::Std.__1.Vector.__Internal Enums; - [FieldOffset(200)] - internal global::Std.__1.Vector.__Internal Specializations; + [FieldOffset(240)] + internal global::Std.__1.Vector.__Internal Functions; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(264)] + internal global::Std.__1.Vector.__Internal Classes; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(288)] + internal global::Std.__1.Vector.__Internal Templates; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + [FieldOffset(312)] + internal global::Std.__1.Vector.__Internal Typedefs; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate18getSpecializationsEj")] - internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); + [FieldOffset(336)] + internal global::Std.__1.Vector.__Internal TypeAliases; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate18addSpecializationsERPNS1_30FunctionTemplateSpecializationE")] - internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); + [FieldOffset(360)] + internal global::Std.__1.Vector.__Internal Variables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate20clearSpecializationsEv")] - internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + [FieldOffset(384)] + internal global::Std.__1.Vector.__Internal Friends; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate23getSpecializationsCountEv")] - internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); - } + [FieldOffset(408)] + internal global::Std.__1.Map.__Internal anonymous; - internal static new global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new FunctionTemplate(native.ToPointer(), skipVTables); - } + [FieldOffset(432)] + public byte isAnonymous; - internal static global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) - { - return new FunctionTemplate(native, skipVTables); - } + [FieldOffset(440)] + internal global::Std.__1.Vector.__Internal Bases; - private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); - global::CppSharp.Parser.AST.FunctionTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [FieldOffset(464)] + internal global::Std.__1.Vector.__Internal Fields; - private FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [FieldOffset(488)] + internal global::Std.__1.Vector.__Internal Methods; - protected FunctionTemplate(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [FieldOffset(512)] + internal global::Std.__1.Vector.__Internal Specifiers; - public FunctionTemplate() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(536)] + public byte isPOD; - public FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(537)] + public byte isAbstract; - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } + [FieldOffset(538)] + public byte isUnion; - public global::CppSharp.Parser.AST.FunctionTemplateSpecialization GetSpecializations(uint i) - { - var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.FunctionTemplateSpecialization __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.FunctionTemplateSpecialization) global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(539)] + public byte isDynamic; - public void AddSpecializations(global::CppSharp.Parser.AST.FunctionTemplateSpecialization s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(540)] + public byte isPolymorphic; - public void ClearSpecializations() - { - __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(541)] + public byte hasNonTrivialDefaultConstructor; - public uint SpecializationsCount - { - get - { - var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - } + [FieldOffset(542)] + public byte hasNonTrivialCopyConstructor; - public unsafe partial class FunctionTemplateSpecialization : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 48)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::System.IntPtr _template; + [FieldOffset(543)] + public byte hasNonTrivialDestructor; - [FieldOffset(8)] - internal global::Std.__1.Vector.__Internal Arguments; + [FieldOffset(544)] + public byte isExternCContext; - [FieldOffset(32)] - public global::System.IntPtr specializedFunction; + [FieldOffset(545)] + public byte isInjected; - [FieldOffset(40)] + [FieldOffset(552)] + public global::System.IntPtr layout; + + [FieldOffset(560)] + public global::System.IntPtr templatedDecl; + + [FieldOffset(568)] + internal global::Std.__1.Vector.__Internal Arguments; + + [FieldOffset(592)] public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization12getArgumentsEj")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization12getArgumentsEj")] internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE")] internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization14clearArgumentsEv")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization14clearArgumentsEv")] internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization17getArgumentsCountEv")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization17getArgumentsCountEv")] internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new FunctionTemplateSpecialization(native.ToPointer(), skipVTables); + return new ClassTemplateSpecialization(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) { - return new FunctionTemplateSpecialization(native, skipVTables); + return new ClassTemplateSpecialization(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); - global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); + global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) + private ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected FunctionTemplateSpecialization(void* native, bool skipVTables = false) + protected ClassTemplateSpecialization(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public FunctionTemplateSpecialization() + public ClassTemplateSpecialization() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization _0) + public ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -11524,14 +11956,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.FunctionTemplateSpecialization __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -11559,39 +11986,21 @@ namespace CppSharp __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.FunctionTemplate Template - { - get - { - global::CppSharp.Parser.AST.FunctionTemplate __result0; - if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template)) - __result0 = (global::CppSharp.Parser.AST.FunctionTemplate) global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template]; - else __result0 = global::CppSharp.Parser.AST.FunctionTemplate.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public global::CppSharp.Parser.AST.Function SpecializedFunction + public global::CppSharp.Parser.AST.ClassTemplate TemplatedDecl { get { - global::CppSharp.Parser.AST.Function __result0; - if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction)) - __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction]; - else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction); + global::CppSharp.Parser.AST.ClassTemplate __result0; + if (((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl)) + __result0 = (global::CppSharp.Parser.AST.ClassTemplate) global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl]; + else __result0 = global::CppSharp.Parser.AST.ClassTemplate.__CreateInstance(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl); return __result0; } set { - ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } @@ -11599,12 +12008,12 @@ namespace CppSharp { get { - return ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind; + return ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind; } set { - ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; + ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; } } @@ -11618,9 +12027,9 @@ namespace CppSharp } } - public unsafe partial class VarTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class ClassTemplatePartialSpecialization : global::CppSharp.Parser.AST.ClassTemplateSpecialization, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 224)] + [StructLayout(LayoutKind.Explicit, Size = 600)] public new partial struct __Internal { [FieldOffset(0)] @@ -11669,81 +12078,142 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] public global::System.IntPtr originalPtr; - [FieldOffset(160)] + [FieldOffset(184)] public global::System.IntPtr comment; - [FieldOffset(168)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(192)] + internal global::Std.__1.Vector.__Internal Namespaces; - [FieldOffset(176)] - internal global::Std.__1.Vector.__Internal Parameters; + [FieldOffset(216)] + internal global::Std.__1.Vector.__Internal Enums; - [FieldOffset(200)] - internal global::Std.__1.Vector.__Internal Specializations; + [FieldOffset(240)] + internal global::Std.__1.Vector.__Internal Functions; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(264)] + internal global::Std.__1.Vector.__Internal Classes; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(288)] + internal global::Std.__1.Vector.__Internal Templates; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + [FieldOffset(312)] + internal global::Std.__1.Vector.__Internal Typedefs; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate18getSpecializationsEj")] - internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); + [FieldOffset(336)] + internal global::Std.__1.Vector.__Internal TypeAliases; + + [FieldOffset(360)] + internal global::Std.__1.Vector.__Internal Variables; + + [FieldOffset(384)] + internal global::Std.__1.Vector.__Internal Friends; + + [FieldOffset(408)] + internal global::Std.__1.Map.__Internal anonymous; + + [FieldOffset(432)] + public byte isAnonymous; + + [FieldOffset(440)] + internal global::Std.__1.Vector.__Internal Bases; + + [FieldOffset(464)] + internal global::Std.__1.Vector.__Internal Fields; + + [FieldOffset(488)] + internal global::Std.__1.Vector.__Internal Methods; + + [FieldOffset(512)] + internal global::Std.__1.Vector.__Internal Specifiers; + + [FieldOffset(536)] + public byte isPOD; + + [FieldOffset(537)] + public byte isAbstract; + + [FieldOffset(538)] + public byte isUnion; + + [FieldOffset(539)] + public byte isDynamic; + + [FieldOffset(540)] + public byte isPolymorphic; + + [FieldOffset(541)] + public byte hasNonTrivialDefaultConstructor; + + [FieldOffset(542)] + public byte hasNonTrivialCopyConstructor; + + [FieldOffset(543)] + public byte hasNonTrivialDestructor; + + [FieldOffset(544)] + public byte isExternCContext; + + [FieldOffset(545)] + public byte isInjected; + + [FieldOffset(552)] + public global::System.IntPtr layout; + + [FieldOffset(560)] + public global::System.IntPtr templatedDecl; + + [FieldOffset(568)] + internal global::Std.__1.Vector.__Internal Arguments; + + [FieldOffset(592)] + public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate18addSpecializationsERPNS1_25VarTemplateSpecializationE")] - internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate20clearSpecializationsEv")] - internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate23getSpecializationsCountEv")] - internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VarTemplate(native.ToPointer(), skipVTables); + return new ClassTemplatePartialSpecialization(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) { - return new VarTemplate(native, skipVTables); + return new ClassTemplatePartialSpecialization(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VarTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); - global::CppSharp.Parser.AST.VarTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); + global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VarTemplate(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) + private ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VarTemplate(void* native, bool skipVTables = false) + protected ClassTemplatePartialSpecialization(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -11752,19 +12222,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public VarTemplate() + public ClassTemplatePartialSpecialization() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VarTemplate(global::CppSharp.Parser.AST.VarTemplate _0) + public ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -11782,44 +12252,11 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - - public global::CppSharp.Parser.AST.VarTemplateSpecialization GetSpecializations(uint i) - { - var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.VarTemplateSpecialization __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.VarTemplateSpecialization) global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.VarTemplateSpecialization.__CreateInstance(__ret); - return __result0; - } - - public void AddSpecializations(global::CppSharp.Parser.AST.VarTemplateSpecialization s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearSpecializations() - { - __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); - } - - public uint SpecializationsCount - { - get - { - var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } } public unsafe partial class VarTemplateSpecialization : global::CppSharp.Parser.AST.Variable, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 248)] + [StructLayout(LayoutKind.Explicit, Size = 272)] public new partial struct __Internal { [FieldOffset(0)] @@ -11868,24 +12305,27 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] public global::System.IntPtr originalPtr; - [FieldOffset(160)] + [FieldOffset(184)] public global::System.IntPtr comment; - [FieldOffset(168)] + [FieldOffset(192)] public global::Std.__1.BasicString.__Internal Mangled; - [FieldOffset(192)] + [FieldOffset(216)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(208)] + [FieldOffset(232)] public global::System.IntPtr templatedDecl; - [FieldOffset(216)] + [FieldOffset(240)] internal global::Std.__1.Vector.__Internal Arguments; - [FieldOffset(240)] + [FieldOffset(264)] public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] @@ -12051,7 +12491,7 @@ namespace CppSharp public unsafe partial class VarTemplatePartialSpecialization : global::CppSharp.Parser.AST.VarTemplateSpecialization, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 248)] + [StructLayout(LayoutKind.Explicit, Size = 272)] public new partial struct __Internal { [FieldOffset(0)] @@ -12100,24 +12540,27 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] public global::System.IntPtr originalPtr; - [FieldOffset(160)] + [FieldOffset(184)] public global::System.IntPtr comment; - [FieldOffset(168)] + [FieldOffset(192)] public global::Std.__1.BasicString.__Internal Mangled; - [FieldOffset(192)] + [FieldOffset(216)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(208)] + [FieldOffset(232)] public global::System.IntPtr templatedDecl; - [FieldOffset(216)] + [FieldOffset(240)] internal global::Std.__1.Vector.__Internal Arguments; - [FieldOffset(240)] + [FieldOffset(264)] public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] @@ -12201,9 +12644,9 @@ namespace CppSharp } } - public unsafe partial class Namespace : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + public unsafe partial class VarTemplate : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 416)] + [StructLayout(LayoutKind.Explicit, Size = 248)] public new partial struct __Internal { [FieldOffset(0)] @@ -12252,88 +12695,84 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] public global::System.IntPtr originalPtr; - [FieldOffset(160)] + [FieldOffset(184)] public global::System.IntPtr comment; - [FieldOffset(168)] - internal global::Std.__1.Vector.__Internal Namespaces; - [FieldOffset(192)] - internal global::Std.__1.Vector.__Internal Enums; - - [FieldOffset(216)] - internal global::Std.__1.Vector.__Internal Functions; - - [FieldOffset(240)] - internal global::Std.__1.Vector.__Internal Classes; - - [FieldOffset(264)] - internal global::Std.__1.Vector.__Internal Templates; - - [FieldOffset(288)] - internal global::Std.__1.Vector.__Internal Typedefs; + public global::System.IntPtr TemplatedDecl; - [FieldOffset(312)] - internal global::Std.__1.Vector.__Internal TypeAliases; + [FieldOffset(200)] + internal global::Std.__1.Vector.__Internal Parameters; - [FieldOffset(336)] - internal global::Std.__1.Vector.__Internal Variables; + [FieldOffset(224)] + internal global::Std.__1.Vector.__Internal Specializations; - [FieldOffset(360)] - internal global::Std.__1.Vector.__Internal Friends; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(384)] - internal global::Std.__1.Map.__Internal anonymous; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(408)] - public byte isAnonymous; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - [FieldOffset(409)] - public byte isInline; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate18getSpecializationsEj")] + internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate18addSpecializationsERPNS1_25VarTemplateSpecializationE")] + internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate20clearSpecializationsEv")] + internal static extern void ClearSpecializations_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate23getSpecializationsCountEv")] + internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Namespace __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Namespace(native.ToPointer(), skipVTables); + return new VarTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Namespace __CreateInstance(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) { - return new Namespace(native, skipVTables); + return new VarTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Namespace.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.VarTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); - global::CppSharp.Parser.AST.Namespace.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); + global::CppSharp.Parser.AST.VarTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Namespace(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + private VarTemplate(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Namespace(void* native, bool skipVTables = false) + protected VarTemplate(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -12342,19 +12781,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Namespace() + public VarTemplate() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Namespace(global::CppSharp.Parser.AST.Namespace _0) + public VarTemplate(global::CppSharp.Parser.AST.VarTemplate _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -12373,149 +12812,36 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public bool IsInline - { - get - { - return ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline = (byte) (value ? 1 : 0); - } - } - } - - public unsafe partial class PreprocessedEntity : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.MacroLocation macroLocation; - - [FieldOffset(8)] - public global::System.IntPtr originalPtr; - - [FieldOffset(16)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18PreprocessedEntityC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18PreprocessedEntityC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new PreprocessedEntity(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) - { - return new PreprocessedEntity(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); - *(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) ret = native; - return ret.ToPointer(); - } - - private PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected PreprocessedEntity(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public PreprocessedEntity() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public global::CppSharp.Parser.AST.VarTemplateSpecialization GetSpecializations(uint i) { - global::CppSharp.Parser.AST.PreprocessedEntity __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.VarTemplateSpecialization __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.VarTemplateSpecialization) global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.VarTemplateSpecialization.__CreateInstance(__ret); + return __result0; } - public global::CppSharp.Parser.AST.MacroLocation MacroLocation + public void AddSpecializations(global::CppSharp.Parser.AST.VarTemplateSpecialization s) { - get - { - return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation; - } - - set - { - ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation = value; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); } - public global::System.IntPtr OriginalPtr + public void ClearSpecializations() { - get - { - return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr; - } - - set - { - ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; - } + __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.DeclarationKind Kind + public uint SpecializationsCount { get { - return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind = value; + var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } @@ -12873,7 +13199,7 @@ namespace CppSharp public unsafe partial class TranslationUnit : global::CppSharp.Parser.AST.Namespace, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 472)] + [StructLayout(LayoutKind.Explicit, Size = 496)] public new partial struct __Internal { [FieldOffset(0)] @@ -12922,54 +13248,57 @@ namespace CppSharp internal global::Std.__1.Vector.__Internal PreprocessedEntities; [FieldOffset(152)] + internal global::Std.__1.Vector.__Internal Redeclarations; + + [FieldOffset(176)] public global::System.IntPtr originalPtr; - [FieldOffset(160)] + [FieldOffset(184)] public global::System.IntPtr comment; - [FieldOffset(168)] - internal global::Std.__1.Vector.__Internal Namespaces; - [FieldOffset(192)] - internal global::Std.__1.Vector.__Internal Enums; + internal global::Std.__1.Vector.__Internal Namespaces; [FieldOffset(216)] - internal global::Std.__1.Vector.__Internal Functions; + internal global::Std.__1.Vector.__Internal Enums; [FieldOffset(240)] - internal global::Std.__1.Vector.__Internal Classes; + internal global::Std.__1.Vector.__Internal Functions; [FieldOffset(264)] - internal global::Std.__1.Vector.__Internal Templates; + internal global::Std.__1.Vector.__Internal Classes; [FieldOffset(288)] - internal global::Std.__1.Vector.__Internal Typedefs; + internal global::Std.__1.Vector.__Internal Templates; [FieldOffset(312)] - internal global::Std.__1.Vector.__Internal TypeAliases; + internal global::Std.__1.Vector.__Internal Typedefs; [FieldOffset(336)] - internal global::Std.__1.Vector.__Internal Variables; + internal global::Std.__1.Vector.__Internal TypeAliases; [FieldOffset(360)] - internal global::Std.__1.Vector.__Internal Friends; + internal global::Std.__1.Vector.__Internal Variables; [FieldOffset(384)] - internal global::Std.__1.Map.__Internal anonymous; + internal global::Std.__1.Vector.__Internal Friends; [FieldOffset(408)] + internal global::Std.__1.Map.__Internal anonymous; + + [FieldOffset(432)] public byte isAnonymous; - [FieldOffset(409)] + [FieldOffset(433)] public byte isInline; - [FieldOffset(416)] + [FieldOffset(440)] public global::Std.__1.BasicString.__Internal FileName; - [FieldOffset(440)] + [FieldOffset(464)] public byte isSystemHeader; - [FieldOffset(448)] + [FieldOffset(472)] internal global::Std.__1.Vector.__Internal Macros; [SuppressUnmanagedCodeSecurity] @@ -16093,192 +16422,6 @@ namespace CppSharp } } } - - public unsafe partial class RawComment : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 64)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.RawCommentKind kind; - - [FieldOffset(8)] - public global::Std.__1.BasicString.__Internal Text; - - [FieldOffset(32)] - public global::Std.__1.BasicString.__Internal BriefText; - - [FieldOffset(56)] - public global::System.IntPtr fullCommentBlock; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment7getTextEv")] - internal static extern global::System.IntPtr Text_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment7setTextEPKc")] - internal static extern void SetText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment12getBriefTextEv")] - internal static extern global::System.IntPtr BriefText_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment12setBriefTextEPKc")] - internal static extern void SetBriefText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new RawComment(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) - { - return new RawComment(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.RawComment.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); - global::CppSharp.Parser.AST.RawComment.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private RawComment(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected RawComment(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public RawComment() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public RawComment(global::CppSharp.Parser.AST.RawComment _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.RawComment __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.RawCommentKind Kind - { - get - { - return ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind = value; - } - } - - public global::CppSharp.Parser.AST.FullComment FullCommentBlock - { - get - { - global::CppSharp.Parser.AST.FullComment __result0; - if (((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FullComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock)) - __result0 = (global::CppSharp.Parser.AST.FullComment) global::CppSharp.Parser.AST.FullComment.NativeToManagedMap[((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock]; - else __result0 = global::CppSharp.Parser.AST.FullComment.__CreateInstance(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public string Text - { - get - { - var __ret = __Internal.Text_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetText_0((__Instance + __PointerAdjustment), value); - } - } - - public string BriefText - { - get - { - var __ret = __Internal.BriefText_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetBriefText_0((__Instance + __PointerAdjustment), value); - } - } - } } } } @@ -17172,6 +17315,53 @@ namespace CppSharp User = 4 } + public unsafe partial class Parser + { + [StructLayout(LayoutKind.Explicit, Size = 0)] + public partial struct __Internal + { + } + + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.Parser __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Parser(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.Parser __CreateInstance(global::CppSharp.Parser.Parser.__Internal native, bool skipVTables = false) + { + return new Parser(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.Parser.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.Parser.__Internal)); + *(global::CppSharp.Parser.Parser.__Internal*) ret = native; + return ret.ToPointer(); + } + + private Parser(global::CppSharp.Parser.Parser.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected Parser(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + } + public unsafe partial class CppParserOptions : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 256)] @@ -18206,6 +18396,24 @@ namespace CppSharp } } + public global::CppSharp.Parser.Parser CodeParser + { + get + { + global::CppSharp.Parser.Parser __result0; + if (((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.Parser.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser)) + __result0 = (global::CppSharp.Parser.Parser) global::CppSharp.Parser.Parser.NativeToManagedMap[((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser]; + else __result0 = global::CppSharp.Parser.Parser.__CreateInstance(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser); + return __result0; + } + + set + { + ((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + public uint DiagnosticsCount { get 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 e40adbe7..a5d1781f 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 @@ -669,569 +669,525 @@ namespace CppSharp } } - public unsafe partial class TagType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class Declaration : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 16)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 216)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr declaration; + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.Cxx11.BasicString.__Internal Name; + + [FieldOffset(64)] + public global::Std.Cxx11.BasicString.__Internal USR; + + [FieldOffset(96)] + public global::Std.Cxx11.BasicString.__Internal DebugText; + + [FieldOffset(128)] + public byte isIncomplete; + + [FieldOffset(129)] + public byte isDependent; + + [FieldOffset(130)] + public byte isImplicit; + + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(144)] + public uint definitionOrder; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] + public global::System.IntPtr originalPtr; + + [FieldOffset(208)] + public global::System.IntPtr comment; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST7TagTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST7TagTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.TagType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new TagType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.TagType __CreateInstance(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) - { - return new TagType(native, skipVTables); - } + EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - private static void* __CopyValue(global::CppSharp.Parser.AST.TagType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); - global::CppSharp.Parser.AST.TagType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - private TagType(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration23getPreprocessedEntitiesEj")] + internal static extern global::System.IntPtr GetPreprocessedEntities_0(global::System.IntPtr instance, uint i); - protected TagType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration23addPreprocessedEntitiesERPNS1_18PreprocessedEntityE")] + internal static extern void AddPreprocessedEntities_0(global::System.IntPtr instance, global::System.IntPtr s); - public TagType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration25clearPreprocessedEntitiesEv")] + internal static extern void ClearPreprocessedEntities_0(global::System.IntPtr instance); - public TagType(global::CppSharp.Parser.AST.TagType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration17getRedeclarationsEj")] + internal static extern global::System.IntPtr GetRedeclarations_0(global::System.IntPtr instance, uint i); - public global::CppSharp.Parser.AST.Declaration Declaration - { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration); - return __result0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration17addRedeclarationsERPS2_")] + internal static extern void AddRedeclarations_0(global::System.IntPtr instance, global::System.IntPtr s); - set - { - ((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration19clearRedeclarationsEv")] + internal static extern void ClearRedeclarations_0(global::System.IntPtr instance); - public unsafe partial class ArrayType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 48)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration7getNameEv")] + internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); - [FieldOffset(4)] - public byte isDependent; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration7setNameEPKc")] + internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration6getUSREv")] + internal static extern global::System.IntPtr USR_0(global::System.IntPtr instance); - [FieldOffset(24)] - public global::CppSharp.Parser.AST.ArrayType.ArraySize sizeType; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration6setUSREPKc")] + internal static extern void SetUSR_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - [FieldOffset(32)] - public long size; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration12getDebugTextEv")] + internal static extern global::System.IntPtr DebugText_0(global::System.IntPtr instance); - [FieldOffset(40)] - public long elementSize; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration12setDebugTextEPKc")] + internal static extern void SetDebugText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ArrayTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration28getPreprocessedEntitiesCountEv")] + internal static extern uint GetPreprocessedEntitiesCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ArrayTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration22getRedeclarationsCountEv")] + internal static extern uint GetRedeclarationsCount_0(global::System.IntPtr instance); } - public enum ArraySize - { - Constant = 0, - Variable = 1, - Dependent = 2, - Incomplete = 3 - } + public global::System.IntPtr __Instance { get; protected set; } - internal static new global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ArrayType(native.ToPointer(), skipVTables); + return new Declaration(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) { - return new ArrayType(native, skipVTables); + return new Declaration(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ArrayType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Declaration.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); - global::CppSharp.Parser.AST.ArrayType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); + global::CppSharp.Parser.AST.Declaration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ArrayType(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) + private Declaration(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ArrayType(void* native, bool skipVTables = false) - : base((void*) null) + protected Declaration(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public ArrayType() - : this((void*) null) + public Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public ArrayType(global::CppSharp.Parser.AST.ArrayType _0) - : this((void*) null) + public Declaration(global::CppSharp.Parser.AST.Declaration _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public void Dispose() { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType); - } + Dispose(disposing: true); + } - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.ArrayType.ArraySize SizeType + public virtual void Dispose(bool disposing) { - get - { - return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType; - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType = value; - } + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public long Size + public global::CppSharp.Parser.AST.PreprocessedEntity GetPreprocessedEntities(uint i) { - get - { - return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size; - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size = value; - } + var __ret = __Internal.GetPreprocessedEntities_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.PreprocessedEntity __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.PreprocessedEntity) global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.PreprocessedEntity.__CreateInstance(__ret); + return __result0; } - public long ElementSize + public void AddPreprocessedEntities(global::CppSharp.Parser.AST.PreprocessedEntity s) { - get - { - return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize; - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize = value; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddPreprocessedEntities_0((__Instance + __PointerAdjustment), __arg0); } - } - public unsafe partial class FunctionType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 56)] - public new partial struct __Internal + public void ClearPreprocessedEntities() { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - - [FieldOffset(24)] - public global::CppSharp.Parser.AST.CallingConvention callingConvention; - - [FieldOffset(28)] - public global::CppSharp.Parser.AST.ExceptionSpecType exceptionSpecType; - - [FieldOffset(32)] - internal global::Std.Vector.__Internal Parameters; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType13getParametersEj")] - internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType13addParametersERPNS1_9ParameterE")] - internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType15clearParametersEv")] - internal static extern void ClearParameters_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType18getParametersCountEv")] - internal static extern uint GetParametersCount_0(global::System.IntPtr instance); + __Internal.ClearPreprocessedEntities_0((__Instance + __PointerAdjustment)); } - internal static new global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public global::CppSharp.Parser.AST.Declaration GetRedeclarations(uint i) { - return new FunctionType(native.ToPointer(), skipVTables); + var __ret = __Internal.GetRedeclarations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Declaration __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(__ret); + return __result0; } - internal static global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) + public void AddRedeclarations(global::CppSharp.Parser.AST.Declaration s) { - return new FunctionType(native, skipVTables); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddRedeclarations_0((__Instance + __PointerAdjustment), __arg0); } - private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionType.__Internal native) + public void ClearRedeclarations() { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); - global::CppSharp.Parser.AST.FunctionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + __Internal.ClearRedeclarations_0((__Instance + __PointerAdjustment)); } - private FunctionType(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public static implicit operator global::CppSharp.Parser.AST.Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + return new global::CppSharp.Parser.AST.Declaration(kind); } - protected FunctionType(void* native, bool skipVTables = false) - : base((void*) null) + public global::CppSharp.Parser.AST.DeclarationKind Kind { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind; + } - public FunctionType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind = value; + } } - public FunctionType(global::CppSharp.Parser.AST.FunctionType _0) - : this((void*) null) + public global::CppSharp.Parser.AST.AccessSpecifier Access { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access; + } - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Type __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access = value; + } } - public global::CppSharp.Parser.AST.Parameter GetParameters(uint i) + public global::CppSharp.Parser.AST.DeclarationContext Namespace { - var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Parameter __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Parameter.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Parameter) global::CppSharp.Parser.AST.Parameter.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Parameter.__CreateInstance(__ret); - return __result0; - } + get + { + global::CppSharp.Parser.AST.DeclarationContext __result0; + if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace)) + __result0 = (global::CppSharp.Parser.AST.DeclarationContext) global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace]; + else __result0 = global::CppSharp.Parser.AST.DeclarationContext.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace); + return __result0; + } - public void AddParameters(global::CppSharp.Parser.AST.Parameter s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public void ClearParameters() + public global::CppSharp.Parser.SourceLocation Location { - __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); + get + { + return global::CppSharp.Parser.SourceLocation.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location); + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location = value.__Instance; + } } - public global::CppSharp.Parser.AST.QualifiedType ReturnType + public int LineNumberStart { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType); + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart; } set { - ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart = value; } } - public global::CppSharp.Parser.AST.CallingConvention CallingConvention + public int LineNumberEnd { get { - return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention; + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd; } set { - ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention = value; + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd = value; } } - public global::CppSharp.Parser.AST.ExceptionSpecType ExceptionSpecType + public bool IsIncomplete { get { - return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType; + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete != 0; } set { - ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType = value; + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete = (byte) (value ? 1 : 0); } } - public uint ParametersCount + public bool IsDependent { get { - var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent != 0; } - } - } - public unsafe partial class PointerType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 32)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedPointee; - - [FieldOffset(24)] - public global::CppSharp.Parser.AST.PointerType.TypeModifier modifier; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11PointerTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11PointerTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent = (byte) (value ? 1 : 0); + } } - public enum TypeModifier + public bool IsImplicit { - Value = 0, - Pointer = 1, - LVReference = 2, - RVReference = 3 - } + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit != 0; + } - internal static new global::CppSharp.Parser.AST.PointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new PointerType(native.ToPointer(), skipVTables); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit = (byte) (value ? 1 : 0); + } } - internal static global::CppSharp.Parser.AST.PointerType __CreateInstance(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) + public global::CppSharp.Parser.AST.Declaration CompleteDeclaration { - return new PointerType(native, skipVTables); + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - private static void* __CopyValue(global::CppSharp.Parser.AST.PointerType.__Internal native) + public uint DefinitionOrder { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); - global::CppSharp.Parser.AST.PointerType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder = value; + } } - private PointerType(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public global::System.IntPtr OriginalPtr { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; + } } - protected PointerType(void* native, bool skipVTables = false) - : base((void*) null) + public global::CppSharp.Parser.AST.RawComment Comment { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + get + { + global::CppSharp.Parser.AST.RawComment __result0; + if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.RawComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment)) + __result0 = (global::CppSharp.Parser.AST.RawComment) global::CppSharp.Parser.AST.RawComment.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment]; + else __result0 = global::CppSharp.Parser.AST.RawComment.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public PointerType() - : this((void*) null) + public string Name { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + get + { + var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetName_0((__Instance + __PointerAdjustment), value); + } } - public PointerType(global::CppSharp.Parser.AST.PointerType _0) - : this((void*) null) + public string USR { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + get + { + var __ret = __Internal.USR_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetUSR_0((__Instance + __PointerAdjustment), value); + } } - public global::CppSharp.Parser.AST.QualifiedType QualifiedPointee + public string DebugText { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee); + var __ret = __Internal.DebugText_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + __Internal.SetDebugText_0((__Instance + __PointerAdjustment), value); } } - public global::CppSharp.Parser.AST.PointerType.TypeModifier Modifier + public uint PreprocessedEntitiesCount { get { - return ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier; + var __ret = __Internal.GetPreprocessedEntitiesCount_0((__Instance + __PointerAdjustment)); + return __ret; } + } - set + public uint RedeclarationsCount + { + get { - ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier = value; + var __ret = __Internal.GetRedeclarationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class MemberPointerType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TagType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] + [StructLayout(LayoutKind.Explicit, Size = 16)] public new partial struct __Internal { [FieldOffset(0)] @@ -1241,44 +1197,44 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; + public global::System.IntPtr declaration; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17MemberPointerTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST7TagTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17MemberPointerTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST7TagTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TagType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new MemberPointerType(native.ToPointer(), skipVTables); + return new TagType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TagType __CreateInstance(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) { - return new MemberPointerType(native, skipVTables); + return new TagType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.MemberPointerType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TagType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); - global::CppSharp.Parser.AST.MemberPointerType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); + global::CppSharp.Parser.AST.TagType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) + private TagType(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected MemberPointerType(void* native, bool skipVTables = false) + protected TagType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1287,19 +1243,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public MemberPointerType() + public TagType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType _0) + public TagType(global::CppSharp.Parser.AST.TagType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1308,23 +1264,28 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Pointee + public global::CppSharp.Parser.AST.Declaration Declaration { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee); + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration); + return __result0; } set { - ((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class TypedefType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class ArrayType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 16)] + [StructLayout(LayoutKind.Explicit, Size = 48)] public new partial struct __Internal { [FieldOffset(0)] @@ -1334,44 +1295,61 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr declaration; + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(24)] + public global::CppSharp.Parser.AST.ArrayType.ArraySize sizeType; + + [FieldOffset(32)] + public long size; + + [FieldOffset(40)] + public long elementSize; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9ArrayTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST9ArrayTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public enum ArraySize { - return new TypedefType(native.ToPointer(), skipVTables); + Constant = 0, + Variable = 1, + Dependent = 2, + Incomplete = 3 } - internal static global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypedefType(native, skipVTables); + return new ArrayType(native.ToPointer(), skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefType.__Internal native) + internal static global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); - global::CppSharp.Parser.AST.TypedefType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + return new ArrayType(native, skipVTables); } - private TypedefType(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + private static void* __CopyValue(global::CppSharp.Parser.AST.ArrayType.__Internal native) { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); + global::CppSharp.Parser.AST.ArrayType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - protected TypedefType(void* native, bool skipVTables = false) + private ArrayType(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected ArrayType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1380,19 +1358,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TypedefType() + public ArrayType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypedefType(global::CppSharp.Parser.AST.TypedefType _0) + public ArrayType(global::CppSharp.Parser.AST.ArrayType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1401,78 +1379,174 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.TypedefNameDecl Declaration + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - global::CppSharp.Parser.AST.TypedefNameDecl __result0; - if (((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.TypedefNameDecl) global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap[((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.TypedefNameDecl.__CreateInstance(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public global::CppSharp.Parser.AST.ArrayType.ArraySize SizeType + { + get + { + return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType; + } + + set + { + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType = value; + } + } + + public long Size + { + get + { + return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size; + } + + set + { + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size = value; + } + } + + public long ElementSize + { + get + { + return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize; + } + + set + { + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize = value; } } } - public unsafe partial class AttributedType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class Parameter : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 40)] + [StructLayout(LayoutKind.Explicit, Size = 248)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal modified; + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; [FieldOffset(24)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal equivalent; + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.Cxx11.BasicString.__Internal Name; + + [FieldOffset(64)] + public global::Std.Cxx11.BasicString.__Internal USR; + + [FieldOffset(96)] + public global::Std.Cxx11.BasicString.__Internal DebugText; + + [FieldOffset(128)] + public byte isIncomplete; + + [FieldOffset(129)] + public byte isDependent; + + [FieldOffset(130)] + public byte isImplicit; + + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(144)] + public uint definitionOrder; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] + public global::System.IntPtr originalPtr; + + [FieldOffset(208)] + public global::System.IntPtr comment; + + [FieldOffset(216)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(232)] + public byte isIndirect; + + [FieldOffset(233)] + public byte hasDefaultValue; + + [FieldOffset(236)] + public uint index; + + [FieldOffset(240)] + public global::System.IntPtr defaultArgument; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14AttributedTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14AttributedTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Parameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new AttributedType(native.ToPointer(), skipVTables); + return new Parameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Parameter __CreateInstance(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) { - return new AttributedType(native, skipVTables); + return new Parameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.AttributedType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Parameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); - global::CppSharp.Parser.AST.AttributedType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); + global::CppSharp.Parser.AST.Parameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private AttributedType(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) + private Parameter(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected AttributedType(void* native, bool skipVTables = false) + protected Parameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1481,55 +1555,109 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public AttributedType() + public Parameter() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public AttributedType(global::CppSharp.Parser.AST.AttributedType _0) + public Parameter(global::CppSharp.Parser.AST.Parameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Modified + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType Equivalent + public bool IsIndirect { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent); + return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect != 0; } set { - ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect = (byte) (value ? 1 : 0); + } + } + + public bool HasDefaultValue + { + get + { + return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue = (byte) (value ? 1 : 0); + } + } + + public uint Index + { + get + { + return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index; + } + + set + { + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index = value; + } + } + + public global::CppSharp.Parser.AST.Expression DefaultArgument + { + get + { + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class DecayedType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class FunctionType : global::CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 56)] public new partial struct __Internal @@ -1541,50 +1669,78 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal decayed; + public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; [FieldOffset(24)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal original; + public global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(40)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; + [FieldOffset(28)] + public global::CppSharp.Parser.AST.ExceptionSpecType exceptionSpecType; + + [FieldOffset(32)] + internal global::Std.Vector.__Internal Parameters; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DecayedTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DecayedTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType13getParametersEj")] + internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType13addParametersERPNS1_9ParameterE")] + internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType15clearParametersEv")] + internal static extern void ClearParameters_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType18getParametersCountEv")] + internal static extern uint GetParametersCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DecayedType(native.ToPointer(), skipVTables); + return new FunctionType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) { - return new DecayedType(native, skipVTables); + return new FunctionType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DecayedType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); - global::CppSharp.Parser.AST.DecayedType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); + global::CppSharp.Parser.AST.FunctionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DecayedType(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) + private FunctionType(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DecayedType(void* native, bool skipVTables = false) + protected FunctionType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1593,314 +1749,277 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public DecayedType() + public FunctionType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DecayedType(global::CppSharp.Parser.AST.DecayedType _0) + public FunctionType(global::CppSharp.Parser.AST.FunctionType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Decayed + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Type __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.Parameter GetParameters(uint i) + { + var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Parameter __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Parameter.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Parameter) global::CppSharp.Parser.AST.Parameter.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Parameter.__CreateInstance(__ret); + return __result0; + } + + public void AddParameters(global::CppSharp.Parser.AST.Parameter s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearParameters() + { + __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.QualifiedType ReturnType { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType); } set { - ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType Original + public global::CppSharp.Parser.AST.CallingConvention CallingConvention { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original); + return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention; } set { - ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention = value; } } - public global::CppSharp.Parser.AST.QualifiedType Pointee + public global::CppSharp.Parser.AST.ExceptionSpecType ExceptionSpecType { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee); + return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType; } set { - ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType = value; + } + } + + public uint ParametersCount + { + get + { + var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class TemplateArgument : IDisposable + public unsafe partial class PointerType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 40)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 32)] + public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind kind; + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal type; + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedPointee; [FieldOffset(24)] - public global::System.IntPtr declaration; - - [FieldOffset(32)] - public long integral; + public global::CppSharp.Parser.AST.PointerType.TypeModifier modifier; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16TemplateArgumentC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11PointerTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16TemplateArgumentC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST11PointerTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - public enum ArgumentKind + public enum TypeModifier { - Type = 0, - Declaration = 1, - NullPtr = 2, - Integral = 3, - Template = 4, - TemplateExpansion = 5, - Expression = 6, - Pack = 7 + Value = 0, + Pointer = 1, + LVReference = 2, + RVReference = 3 } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.PointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateArgument(native.ToPointer(), skipVTables); + return new PointerType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.PointerType __CreateInstance(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) { - return new TemplateArgument(native, skipVTables); + return new PointerType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateArgument.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.PointerType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); - *(global::CppSharp.Parser.AST.TemplateArgument.__Internal*) ret = native; + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); + global::CppSharp.Parser.AST.PointerType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) + private PointerType(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateArgument(void* native, bool skipVTables = false) + protected PointerType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public TemplateArgument() + public PointerType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument _0) + public PointerType(global::CppSharp.Parser.AST.PointerType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.TemplateArgument __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind Kind + public global::CppSharp.Parser.AST.QualifiedType QualifiedPointee { get { - return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee); } set { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind = value; + ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType Type + public global::CppSharp.Parser.AST.PointerType.TypeModifier Modifier { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type); + return ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier; } set { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier = value; } } + } - public global::CppSharp.Parser.AST.Declaration Declaration + public unsafe partial class MemberPointerType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 24)] + public new partial struct __Internal { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration); - return __result0; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; - set - { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } + [FieldOffset(4)] + public byte isDependent; - public long Integral - { - get - { - return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral = value; - } - } - } - - public unsafe partial class TemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 56)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - internal global::Std.Vector.__Internal Arguments; - - [FieldOffset(32)] - public global::System.IntPtr _template; - - [FieldOffset(40)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST17MemberPointerTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType12getArgumentsEj")] - internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType12addArgumentsERNS1_16TemplateArgumentE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST17MemberPointerTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateSpecializationType(native.ToPointer(), skipVTables); + return new MemberPointerType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) { - return new TemplateSpecializationType(native, skipVTables); + return new MemberPointerType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.MemberPointerType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); - global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); + global::CppSharp.Parser.AST.MemberPointerType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) + private MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateSpecializationType(void* native, bool skipVTables = false) + protected MemberPointerType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1909,176 +2028,144 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateSpecializationType() + public MemberPointerType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType _0) + public MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Type __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) - { - var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); - __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); - } - - public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearArguments() - { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.Template Template - { - get - { - global::CppSharp.Parser.AST.Template __result0; - if (((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template)) - __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template]; - else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.QualifiedType Pointee { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee); } set { - ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public uint ArgumentsCount - { - get - { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class DependentTemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TypedefNameDecl : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 48)] + [StructLayout(LayoutKind.Explicit, Size = 232)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - internal global::Std.Vector.__Internal Arguments; + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; [FieldOffset(32)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + public global::Std.Cxx11.BasicString.__Internal Name; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(64)] + public global::Std.Cxx11.BasicString.__Internal USR; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(96)] + public global::Std.Cxx11.BasicString.__Internal DebugText; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + [FieldOffset(128)] + public byte isIncomplete; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType12getArgumentsEj")] - internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); + [FieldOffset(129)] + public byte isDependent; + + [FieldOffset(130)] + public byte isImplicit; + + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(144)] + public uint definitionOrder; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] + public global::System.IntPtr originalPtr; + + [FieldOffset(208)] + public global::System.IntPtr comment; + + [FieldOffset(216)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType12addArgumentsERNS1_16TemplateArgumentE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DependentTemplateSpecializationType(native.ToPointer(), skipVTables); + return new TypedefNameDecl(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) { - return new DependentTemplateSpecializationType(native, skipVTables); + return new TypedefNameDecl(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); - global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); + global::CppSharp.Parser.AST.TypedefNameDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) + private TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DependentTemplateSpecializationType(void* native, bool skipVTables = false) + protected TypedefNameDecl(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2087,19 +2174,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public DependentTemplateSpecializationType() + public TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType _0) + public TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2110,7 +2197,7 @@ namespace CppSharp public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Type __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -2118,52 +2205,28 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) - { - var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); - __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); - } - - public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearArguments() + public static implicit operator global::CppSharp.Parser.AST.TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + return new global::CppSharp.Parser.AST.TypedefNameDecl(kind); } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public uint ArgumentsCount - { - get - { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class TemplateParameterType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TypedefType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] + [StructLayout(LayoutKind.Explicit, Size = 16)] public new partial struct __Internal { [FieldOffset(0)] @@ -2173,58 +2236,44 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr parameter; - - [FieldOffset(16)] - public uint depth; - - [FieldOffset(20)] - public uint index; - - [FieldOffset(24)] - public byte isParameterPack; + public global::System.IntPtr declaration; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateParameterType(native.ToPointer(), skipVTables); + return new TypedefType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) { - return new TemplateParameterType(native, skipVTables); + return new TypedefType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); - global::CppSharp.Parser.AST.TemplateParameterType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); + global::CppSharp.Parser.AST.TypedefType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) + private TypedefType(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateParameterType(void* native, bool skipVTables = false) + protected TypedefType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2233,98 +2282,49 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateParameterType() + public TypedefType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType _0) + public TypedefType(global::CppSharp.Parser.AST.TypedefType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Type __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.TypeTemplateParameter Parameter + public global::CppSharp.Parser.AST.TypedefNameDecl Declaration { get { - global::CppSharp.Parser.AST.TypeTemplateParameter __result0; - if (((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter)) - __result0 = (global::CppSharp.Parser.AST.TypeTemplateParameter) global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter]; - else __result0 = global::CppSharp.Parser.AST.TypeTemplateParameter.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter); + global::CppSharp.Parser.AST.TypedefNameDecl __result0; + if (((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.TypedefNameDecl) global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap[((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.TypedefNameDecl.__CreateInstance(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration); return __result0; } set { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public uint Depth - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth = value; - } - } - - public uint Index - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index = value; - } - } - - public bool IsParameterPack - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack != 0; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class AttributedType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] + [StructLayout(LayoutKind.Explicit, Size = 40)] public new partial struct __Internal { [FieldOffset(0)] @@ -2334,47 +2334,47 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal replacement; + public global::CppSharp.Parser.AST.QualifiedType.__Internal modified; [FieldOffset(24)] - public global::System.IntPtr replacedParameter; + public global::CppSharp.Parser.AST.QualifiedType.__Internal equivalent; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST14AttributedTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST14AttributedTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateParameterSubstitutionType(native.ToPointer(), skipVTables); + return new AttributedType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) { - return new TemplateParameterSubstitutionType(native, skipVTables); + return new AttributedType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.AttributedType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); - global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); + global::CppSharp.Parser.AST.AttributedType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) + private AttributedType(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateParameterSubstitutionType(void* native, bool skipVTables = false) + protected AttributedType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2383,19 +2383,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateParameterSubstitutionType() + public AttributedType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0) + public AttributedType(global::CppSharp.Parser.AST.AttributedType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2404,41 +2404,36 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Replacement + public global::CppSharp.Parser.AST.QualifiedType Modified { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified); } set { - ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.TemplateParameterType ReplacedParameter + public global::CppSharp.Parser.AST.QualifiedType Equivalent { get { - global::CppSharp.Parser.AST.TemplateParameterType __result0; - if (((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter)) - __result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter]; - else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent); } set { - ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class DecayedType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] + [StructLayout(LayoutKind.Explicit, Size = 56)] public new partial struct __Internal { [FieldOffset(0)] @@ -2448,47 +2443,50 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal injectedSpecializationType; + public global::CppSharp.Parser.AST.QualifiedType.__Internal decayed; [FieldOffset(24)] - public global::System.IntPtr _class; + public global::CppSharp.Parser.AST.QualifiedType.__Internal original; + + [FieldOffset(40)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21InjectedClassNameTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11DecayedTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21InjectedClassNameTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST11DecayedTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new InjectedClassNameType(native.ToPointer(), skipVTables); + return new DecayedType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) { - return new InjectedClassNameType(native, skipVTables); + return new DecayedType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DecayedType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); - global::CppSharp.Parser.AST.InjectedClassNameType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); + global::CppSharp.Parser.AST.DecayedType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + private DecayedType(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected InjectedClassNameType(void* native, bool skipVTables = false) + protected DecayedType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2497,19 +2495,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public InjectedClassNameType() + public DecayedType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType _0) + public DecayedType(global::CppSharp.Parser.AST.DecayedType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2518,261 +2516,343 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType InjectedSpecializationType + public global::CppSharp.Parser.AST.QualifiedType Decayed { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed); } set { - ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.Class Class + public global::CppSharp.Parser.AST.QualifiedType Original { get { - global::CppSharp.Parser.AST.Class __result0; - if (((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original); } set { - ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public global::CppSharp.Parser.AST.QualifiedType Pointee + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee); + } + + set + { + ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class DependentNameType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TemplateArgument : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 40)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind kind; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + public global::CppSharp.Parser.AST.QualifiedType.__Internal type; + + [FieldOffset(24)] + public global::System.IntPtr declaration; + + [FieldOffset(32)] + public long integral; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17DependentNameTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST16TemplateArgumentC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17DependentNameTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST16TemplateArgumentC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public enum ArgumentKind { - return new DependentNameType(native.ToPointer(), skipVTables); + Type = 0, + Declaration = 1, + NullPtr = 2, + Integral = 3, + Template = 4, + TemplateExpansion = 5, + Expression = 6, + Pack = 7 } - internal static global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DependentNameType(native, skipVTables); + return new TemplateArgument(native.ToPointer(), skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DependentNameType.__Internal native) + internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); - global::CppSharp.Parser.AST.DependentNameType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return new TemplateArgument(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateArgument.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); + *(global::CppSharp.Parser.AST.TemplateArgument.__Internal*) ret = native; return ret.ToPointer(); } - private DependentNameType(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + private TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DependentNameType(void* native, bool skipVTables = false) - : base((void*) null) + protected TemplateArgument(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public DependentNameType() - : this((void*) null) + public TemplateArgument() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DependentNameType(global::CppSharp.Parser.AST.DependentNameType _0) - : this((void*) null) + public TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) _0.__Instance); } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.TemplateArgument __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind Kind { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared); + return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind; } set { - ((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind = value; } } - } - - public unsafe partial class PackExpansionType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 8)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17PackExpansionTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17PackExpansionTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new PackExpansionType(native.ToPointer(), skipVTables); - } - internal static global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) + public global::CppSharp.Parser.AST.QualifiedType Type { - return new PackExpansionType(native, skipVTables); - } + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type); + } - private static void* __CopyValue(global::CppSharp.Parser.AST.PackExpansionType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); - global::CppSharp.Parser.AST.PackExpansionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + set + { + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } - private PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public global::CppSharp.Parser.AST.Declaration Declaration { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration); + return __result0; + } - protected PackExpansionType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + set + { + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public PackExpansionType() - : this((void*) null) + public long Integral { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + get + { + return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral; + } - public PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral = value; + } } } - public unsafe partial class UnaryTransformType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class Template : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 40)] + [StructLayout(LayoutKind.Explicit, Size = 248)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + public global::System.IntPtr _namespace; - [FieldOffset(24)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal baseType; + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18UnaryTransformTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(20)] + public int lineNumberStart; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18UnaryTransformTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - } + [FieldOffset(24)] + public int lineNumberEnd; - internal static new global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new UnaryTransformType(native.ToPointer(), skipVTables); - } + [FieldOffset(32)] + public global::Std.Cxx11.BasicString.__Internal Name; - internal static global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) - { - return new UnaryTransformType(native, skipVTables); + [FieldOffset(64)] + public global::Std.Cxx11.BasicString.__Internal USR; + + [FieldOffset(96)] + public global::Std.Cxx11.BasicString.__Internal DebugText; + + [FieldOffset(128)] + public byte isIncomplete; + + [FieldOffset(129)] + public byte isDependent; + + [FieldOffset(130)] + public byte isImplicit; + + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(144)] + public uint definitionOrder; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] + public global::System.IntPtr originalPtr; + + [FieldOffset(208)] + public global::System.IntPtr comment; + + [FieldOffset(216)] + public global::System.IntPtr TemplatedDecl; + + [FieldOffset(224)] + internal global::Std.Vector.__Internal Parameters; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2Ev")] + internal static extern void ctor_1(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2ERKS2_")] + internal static extern void cctor_3(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Template13getParametersEj")] + internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Template13addParametersERPNS1_11DeclarationE")] + internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Template15clearParametersEv")] + internal static extern void ClearParameters_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Template18getParametersCountEv")] + internal static extern uint GetParametersCount_0(global::System.IntPtr instance); } - private static void* __CopyValue(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native) + internal static new global::CppSharp.Parser.AST.Template __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); - global::CppSharp.Parser.AST.UnaryTransformType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return new Template(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.Template __CreateInstance(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) + { + return new Template(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.Template.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); + global::CppSharp.Parser.AST.Template.__Internal.cctor_3(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) + private Template(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected UnaryTransformType(void* native, bool skipVTables = false) + protected Template(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2781,57 +2861,106 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public UnaryTransformType() + public Template(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType _0) + public Template() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_1((__Instance + __PointerAdjustment)); + } + + public Template(global::CppSharp.Parser.AST.Template _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_3((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.Declaration GetParameters(uint i) + { + var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Declaration __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(__ret); + return __result0; + } + + public void AddParameters(global::CppSharp.Parser.AST.Declaration s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearParameters() + { + __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); + } + + public static implicit operator global::CppSharp.Parser.AST.Template(global::CppSharp.Parser.AST.DeclarationKind kind) + { + return new global::CppSharp.Parser.AST.Template(kind); + } + + public global::CppSharp.Parser.AST.Declaration TemplatedDecl { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared); + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl); + return __result0; } set { - ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType BaseType + public uint ParametersCount { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType); - } - - set - { - ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class VectorType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] + [StructLayout(LayoutKind.Explicit, Size = 56)] public new partial struct __Internal { [FieldOffset(0)] @@ -2841,47 +2970,75 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal elementType; + internal global::Std.Vector.__Internal Arguments; - [FieldOffset(24)] - public uint numElements; + [FieldOffset(32)] + public global::System.IntPtr _template; + + [FieldOffset(40)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10VectorTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10VectorTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType12getArgumentsEj")] + internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType12addArgumentsERNS1_16TemplateArgumentE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.VectorType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VectorType(native.ToPointer(), skipVTables); + return new TemplateSpecializationType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VectorType __CreateInstance(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) { - return new VectorType(native, skipVTables); + return new TemplateSpecializationType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VectorType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); - global::CppSharp.Parser.AST.VectorType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); + global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VectorType(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + private TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VectorType(void* native, bool skipVTables = false) + protected TemplateSpecializationType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2890,57 +3047,101 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public VectorType() + public TemplateSpecializationType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VectorType(global::CppSharp.Parser.AST.VectorType _0) + public TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType ElementType + public override void Dispose(bool disposing) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType); - } + global::CppSharp.Parser.AST.Type __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) + { + var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); + __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); + } + + public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearArguments() + { + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.Template Template + { + get + { + global::CppSharp.Parser.AST.Template __result0; + if (((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template)) + __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template]; + else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template); + return __result0; + } set { - ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public uint NumElements + public global::CppSharp.Parser.AST.QualifiedType Desugared { get { - return ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared); } set { - ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements = value; + ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public uint ArgumentsCount + { + get + { + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class BuiltinType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class DependentTemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 12)] + [StructLayout(LayoutKind.Explicit, Size = 48)] public new partial struct __Internal { [FieldOffset(0)] @@ -2950,44 +3151,72 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.PrimitiveType type; + internal global::Std.Vector.__Internal Arguments; + + [FieldOffset(32)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11BuiltinTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11BuiltinTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType12getArgumentsEj")] + internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType12addArgumentsERNS1_16TemplateArgumentE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new BuiltinType(native.ToPointer(), skipVTables); + return new DependentTemplateSpecializationType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) { - return new BuiltinType(native, skipVTables); + return new DependentTemplateSpecializationType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.BuiltinType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); - global::CppSharp.Parser.AST.BuiltinType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); + global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private BuiltinType(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) + private DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected BuiltinType(void* native, bool skipVTables = false) + protected DependentTemplateSpecializationType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2996,273 +3225,213 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public BuiltinType() + public DependentTemplateSpecializationType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public BuiltinType(global::CppSharp.Parser.AST.BuiltinType _0) + public DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.PrimitiveType Type + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Type __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) + { + var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); + __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); + } + + public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearArguments() + { + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.QualifiedType Desugared { get { - return ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared); } set { - ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type = value; + ((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public uint ArgumentsCount + { + get + { + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class VTableComponent : IDisposable + public unsafe partial class TypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 16)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 248)] + public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.VTableComponentKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public uint offset; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr declaration; + public global::System.IntPtr _namespace; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15VTableComponentC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15VTableComponentC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } + [FieldOffset(20)] + public int lineNumberStart; - public global::System.IntPtr __Instance { get; protected set; } + [FieldOffset(24)] + public int lineNumberEnd; - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [FieldOffset(32)] + public global::Std.Cxx11.BasicString.__Internal Name; - protected bool __ownsNativeInstance; + [FieldOffset(64)] + public global::Std.Cxx11.BasicString.__Internal USR; - internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new VTableComponent(native.ToPointer(), skipVTables); - } + [FieldOffset(96)] + public global::Std.Cxx11.BasicString.__Internal DebugText; - internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) - { - return new VTableComponent(native, skipVTables); - } + [FieldOffset(128)] + public byte isIncomplete; - private static void* __CopyValue(global::CppSharp.Parser.AST.VTableComponent.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); - *(global::CppSharp.Parser.AST.VTableComponent.__Internal*) ret = native; - return ret.ToPointer(); - } + [FieldOffset(129)] + public byte isDependent; - private VTableComponent(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [FieldOffset(130)] + public byte isImplicit; - protected VTableComponent(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; - public VTableComponent() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(144)] + public uint definitionOrder; - public VTableComponent(global::CppSharp.Parser.AST.VTableComponent _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.VTableComponent __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; - public global::CppSharp.Parser.AST.VTableComponentKind Kind - { - get - { - return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind; - } + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; - set - { - ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind = value; - } - } + [FieldOffset(200)] + public global::System.IntPtr originalPtr; - public uint Offset - { - get - { - return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset; - } + [FieldOffset(208)] + public global::System.IntPtr comment; - set - { - ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset = value; - } - } + [FieldOffset(216)] + public uint depth; - public global::CppSharp.Parser.AST.Declaration Declaration - { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration); - return __result0; - } + [FieldOffset(220)] + public uint index; - set - { - ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - } + [FieldOffset(224)] + public byte isParameterPack; - public unsafe partial class VTableLayout : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public partial struct __Internal - { - [FieldOffset(0)] - internal global::Std.Vector.__Internal Components; + [FieldOffset(232)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal defaultArgument; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout13getComponentsEj")] - internal static extern global::CppSharp.Parser.AST.VTableComponent.__Internal GetComponents_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout13addComponentsERNS1_15VTableComponentE")] - internal static extern void AddComponents_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout15clearComponentsEv")] - internal static extern void ClearComponents_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout18getComponentsCountEv")] - internal static extern uint GetComponentsCount_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VTableLayout(native.ToPointer(), skipVTables); + return new TypeTemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) { - return new VTableLayout(native, skipVTables); + return new TypeTemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VTableLayout.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); - global::CppSharp.Parser.AST.VTableLayout.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); + global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VTableLayout(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + private TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VTableLayout(void* native, bool skipVTables = false) + protected TypeTemplateParameter(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VTableLayout() + public TypeTemplateParameter() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VTableLayout(global::CppSharp.Parser.AST.VTableLayout _0) + public TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -3271,14 +3440,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.VTableLayout __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -3286,118 +3450,105 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.VTableComponent GetComponents(uint i) - { - var __ret = __Internal.GetComponents_0((__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.VTableComponent.__CreateInstance(__ret); - } - - public void AddComponents(global::CppSharp.Parser.AST.VTableComponent s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddComponents_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearComponents() - { - __Internal.ClearComponents_0((__Instance + __PointerAdjustment)); - } - - public uint ComponentsCount + public global::CppSharp.Parser.AST.QualifiedType DefaultArgument { get { - var __ret = __Internal.GetComponentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument); + } + + set + { + ((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class VFTableInfo : IDisposable + public unsafe partial class TemplateParameterType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 40)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 32)] + public new partial struct __Internal { [FieldOffset(0)] - public ulong VBTableIndex; + public global::CppSharp.Parser.AST.TypeKind kind; - [FieldOffset(8)] - public uint VFPtrOffset; + [FieldOffset(4)] + public byte isDependent; - [FieldOffset(12)] - public uint VFPtrFullOffset; + [FieldOffset(8)] + public global::System.IntPtr parameter; [FieldOffset(16)] - public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; + public uint depth; + + [FieldOffset(20)] + public uint index; + + [FieldOffset(24)] + public byte isParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VFTableInfo(native.ToPointer(), skipVTables); + return new TemplateParameterType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) { - return new VFTableInfo(native, skipVTables); + return new TemplateParameterType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VFTableInfo.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); - global::CppSharp.Parser.AST.VFTableInfo.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); + global::CppSharp.Parser.AST.TemplateParameterType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + private TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VFTableInfo(void* native, bool skipVTables = false) + protected TemplateParameterType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VFTableInfo() + public TemplateParameterType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo _0) + public TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -3406,14 +3557,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.VFTableInfo __dummy; + global::CppSharp.Parser.AST.Type __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -3421,538 +3567,468 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public ulong VBTableIndex + public global::CppSharp.Parser.AST.TypeTemplateParameter Parameter { get { - return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex; + global::CppSharp.Parser.AST.TypeTemplateParameter __result0; + if (((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter)) + __result0 = (global::CppSharp.Parser.AST.TypeTemplateParameter) global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter]; + else __result0 = global::CppSharp.Parser.AST.TypeTemplateParameter.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter); + return __result0; } set { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex = value; + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public uint VFPtrOffset + public uint Depth { get { - return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset; + return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth; } set { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset = value; + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth = value; } } - public uint VFPtrFullOffset + public uint Index { get { - return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset; + return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index; } set { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset = value; + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index = value; } } - public global::CppSharp.Parser.AST.VTableLayout Layout + public bool IsParameterPack { get { - return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout); + return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack != 0; } set { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); } } } - public unsafe partial class LayoutField : IDisposable + public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 64)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 32)] + public new partial struct __Internal { [FieldOffset(0)] - public uint offset; + public global::CppSharp.Parser.AST.TypeKind kind; - [FieldOffset(8)] - public global::Std.Cxx11.BasicString.__Internal Name; + [FieldOffset(4)] + public byte isDependent; - [FieldOffset(40)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal replacement; - [FieldOffset(56)] - public global::System.IntPtr fieldPtr; + [FieldOffset(24)] + public global::System.IntPtr replacedParameter; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr other); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutField7getNameEv")] - internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutField7setNameEPKc")] - internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new LayoutField(native.ToPointer(), skipVTables); + return new TemplateParameterSubstitutionType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) { - return new LayoutField(native, skipVTables); + return new TemplateParameterSubstitutionType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutField.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); - global::CppSharp.Parser.AST.LayoutField.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); + global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private LayoutField(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) + private TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected LayoutField(void* native, bool skipVTables = false) + protected TemplateParameterSubstitutionType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public LayoutField() + public TemplateParameterSubstitutionType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public LayoutField(global::CppSharp.Parser.AST.LayoutField other) + public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(other, null)) - throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = other.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.LayoutField __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public uint Offset - { - get - { - return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset; - } - - set - { - ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset = value; - } - } - - public global::CppSharp.Parser.AST.QualifiedType QualifiedType - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::System.IntPtr FieldPtr + public global::CppSharp.Parser.AST.QualifiedType Replacement { get { - return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement); } set { - ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr = (global::System.IntPtr) value; + ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public string Name + public global::CppSharp.Parser.AST.TemplateParameterType ReplacedParameter { get { - var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + global::CppSharp.Parser.AST.TemplateParameterType __result0; + if (((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter)) + __result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter]; + else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter); + return __result0; } set { - __Internal.SetName_0((__Instance + __PointerAdjustment), value); + ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class LayoutBase : IDisposable + public unsafe partial class Class : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 16)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 608)] + public new partial struct __Internal { [FieldOffset(0)] - public uint offset; + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr _class; + public global::System.IntPtr _namespace; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr other); + [FieldOffset(20)] + public int lineNumberStart; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - } + [FieldOffset(24)] + public int lineNumberEnd; - public global::System.IntPtr __Instance { get; protected set; } + [FieldOffset(32)] + public global::Std.Cxx11.BasicString.__Internal Name; - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [FieldOffset(64)] + public global::Std.Cxx11.BasicString.__Internal USR; - protected bool __ownsNativeInstance; + [FieldOffset(96)] + public global::Std.Cxx11.BasicString.__Internal DebugText; - internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new LayoutBase(native.ToPointer(), skipVTables); - } + [FieldOffset(128)] + public byte isIncomplete; - internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) - { - return new LayoutBase(native, skipVTables); - } + [FieldOffset(129)] + public byte isDependent; - private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutBase.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); - global::CppSharp.Parser.AST.LayoutBase.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [FieldOffset(130)] + public byte isImplicit; - private LayoutBase(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; - protected LayoutBase(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [FieldOffset(144)] + public uint definitionOrder; - public LayoutBase() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; - public LayoutBase(global::CppSharp.Parser.AST.LayoutBase other) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(other, null)) - throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = other.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; - public void Dispose() - { - Dispose(disposing: true); - } + [FieldOffset(200)] + public global::System.IntPtr originalPtr; - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.LayoutBase __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } + [FieldOffset(208)] + public global::System.IntPtr comment; - public uint Offset - { - get - { - return ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset; - } + [FieldOffset(216)] + internal global::Std.Vector.__Internal Namespaces; - set - { - ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset = value; - } - } + [FieldOffset(240)] + internal global::Std.Vector.__Internal Enums; - public global::CppSharp.Parser.AST.Class Class - { - get - { - global::CppSharp.Parser.AST.Class __result0; - if (((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class); - return __result0; - } + [FieldOffset(264)] + internal global::Std.Vector.__Internal Functions; - set - { - ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - } + [FieldOffset(288)] + internal global::Std.Vector.__Internal Classes; - public unsafe partial class ClassLayout : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 136)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.CppAbi ABI; + [FieldOffset(312)] + internal global::Std.Vector.__Internal Templates; - [FieldOffset(8)] - internal global::Std.Vector.__Internal VFTables; + [FieldOffset(336)] + internal global::Std.Vector.__Internal Typedefs; - [FieldOffset(32)] - public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; + [FieldOffset(360)] + internal global::Std.Vector.__Internal TypeAliases; - [FieldOffset(56)] - public byte hasOwnVFPtr; + [FieldOffset(384)] + internal global::Std.Vector.__Internal Variables; - [FieldOffset(64)] - public long VBPtrOffset; + [FieldOffset(408)] + internal global::Std.Vector.__Internal Friends; - [FieldOffset(72)] - public int alignment; + [FieldOffset(432)] + internal global::Std.Map.__Internal anonymous; - [FieldOffset(76)] - public int size; + [FieldOffset(480)] + public byte isAnonymous; - [FieldOffset(80)] - public int dataSize; + [FieldOffset(488)] + internal global::Std.Vector.__Internal Bases; - [FieldOffset(88)] + [FieldOffset(512)] internal global::Std.Vector.__Internal Fields; - [FieldOffset(112)] - internal global::Std.Vector.__Internal Bases; + [FieldOffset(536)] + internal global::Std.Vector.__Internal Methods; + + [FieldOffset(560)] + internal global::Std.Vector.__Internal Specifiers; + + [FieldOffset(584)] + public byte isPOD; + + [FieldOffset(585)] + public byte isAbstract; + + [FieldOffset(586)] + public byte isUnion; + + [FieldOffset(587)] + public byte isDynamic; + + [FieldOffset(588)] + public byte isPolymorphic; + + [FieldOffset(589)] + public byte hasNonTrivialDefaultConstructor; + + [FieldOffset(590)] + public byte hasNonTrivialCopyConstructor; + + [FieldOffset(591)] + public byte hasNonTrivialDestructor; + + [FieldOffset(592)] + public byte isExternCContext; + + [FieldOffset(593)] + public byte isInjected; + + [FieldOffset(600)] + public global::System.IntPtr layout; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST5ClassC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST5ClassC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST5ClassD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11getVFTablesEj")] - internal static extern void GetVFTables_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST5Class8getBasesEj")] + internal static extern global::System.IntPtr GetBases_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11addVFTablesERNS1_11VFTableInfoE")] - internal static extern void AddVFTables_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST5Class8addBasesERPNS1_18BaseClassSpecifierE")] + internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout13clearVFTablesEv")] - internal static extern void ClearVFTables_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST5Class10clearBasesEv")] + internal static extern void ClearBases_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout9getFieldsEj")] - internal static extern void GetFields_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST5Class9getFieldsEj")] + internal static extern global::System.IntPtr GetFields_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout9addFieldsERNS1_11LayoutFieldE")] + EntryPoint="_ZN8CppSharp9CppParser3AST5Class9addFieldsERPNS1_5FieldE")] internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11clearFieldsEv")] + EntryPoint="_ZN8CppSharp9CppParser3AST5Class11clearFieldsEv")] internal static extern void ClearFields_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout8getBasesEj")] - internal static extern void GetBases_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST5Class10getMethodsEj")] + internal static extern global::System.IntPtr GetMethods_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout8addBasesERNS1_10LayoutBaseE")] - internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST5Class10addMethodsERPNS1_6MethodE")] + internal static extern void AddMethods_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout10clearBasesEv")] - internal static extern void ClearBases_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST5Class12clearMethodsEv")] + internal static extern void ClearMethods_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout16getVFTablesCountEv")] - internal static extern uint GetVFTablesCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST5Class13getSpecifiersEj")] + internal static extern global::System.IntPtr GetSpecifiers_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout14getFieldsCountEv")] - internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST5Class13addSpecifiersERPNS1_19AccessSpecifierDeclE")] + internal static extern void AddSpecifiers_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout13getBasesCountEv")] + EntryPoint="_ZN8CppSharp9CppParser3AST5Class15clearSpecifiersEv")] + internal static extern void ClearSpecifiers_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class13getBasesCountEv")] internal static extern uint GetBasesCount_0(global::System.IntPtr instance); - } - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class14getFieldsCountEv")] + internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class15getMethodsCountEv")] + internal static extern uint GetMethodsCount_0(global::System.IntPtr instance); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class18getSpecifiersCountEv")] + internal static extern uint GetSpecifiersCount_0(global::System.IntPtr instance); + } - internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Class __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassLayout(native.ToPointer(), skipVTables); + return new Class(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Class __CreateInstance(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) { - return new ClassLayout(native, skipVTables); + return new Class(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassLayout.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Class.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); - global::CppSharp.Parser.AST.ClassLayout.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); + global::CppSharp.Parser.AST.Class.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassLayout(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) + private Class(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassLayout(void* native, bool skipVTables = false) + protected Class(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public ClassLayout() + public Class() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public ClassLayout(global::CppSharp.Parser.AST.ClassLayout _0) + public Class(global::CppSharp.Parser.AST.Class _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); - } - - public void Dispose() - { - Dispose(disposing: true); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.ClassLayout __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -3960,34 +4036,42 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.VFTableInfo GetVFTables(uint i) + public global::CppSharp.Parser.AST.BaseClassSpecifier GetBases(uint i) { - var __ret = new global::CppSharp.Parser.AST.VFTableInfo.__Internal(); - __Internal.GetVFTables_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.VFTableInfo.__CreateInstance(__ret); + var __ret = __Internal.GetBases_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.BaseClassSpecifier __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.BaseClassSpecifier) global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.BaseClassSpecifier.__CreateInstance(__ret); + return __result0; } - public void AddVFTables(global::CppSharp.Parser.AST.VFTableInfo s) + public void AddBases(global::CppSharp.Parser.AST.BaseClassSpecifier s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddVFTables_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearVFTables() + public void ClearBases() { - __Internal.ClearVFTables_0((__Instance + __PointerAdjustment)); + __Internal.ClearBases_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.LayoutField GetFields(uint i) + public global::CppSharp.Parser.AST.Field GetFields(uint i) { - var __ret = new global::CppSharp.Parser.AST.LayoutField.__Internal(); - __Internal.GetFields_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.LayoutField.__CreateInstance(__ret); + var __ret = __Internal.GetFields_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Field __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Field.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Field) global::CppSharp.Parser.AST.Field.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Field.__CreateInstance(__ret); + return __result0; } - public void AddFields(global::CppSharp.Parser.AST.LayoutField s) + public void AddFields(global::CppSharp.Parser.AST.Field s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); @@ -4000,122 +4084,207 @@ namespace CppSharp __Internal.ClearFields_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.LayoutBase GetBases(uint i) + public global::CppSharp.Parser.AST.Method GetMethods(uint i) { - var __ret = new global::CppSharp.Parser.AST.LayoutBase.__Internal(); - __Internal.GetBases_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.LayoutBase.__CreateInstance(__ret); + var __ret = __Internal.GetMethods_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Method __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Method.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Method) global::CppSharp.Parser.AST.Method.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Method.__CreateInstance(__ret); + return __result0; } - public void AddBases(global::CppSharp.Parser.AST.LayoutBase s) + public void AddMethods(global::CppSharp.Parser.AST.Method s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddMethods_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearBases() + public void ClearMethods() { - __Internal.ClearBases_0((__Instance + __PointerAdjustment)); + __Internal.ClearMethods_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.CppAbi ABI + public global::CppSharp.Parser.AST.AccessSpecifierDecl GetSpecifiers(uint i) + { + var __ret = __Internal.GetSpecifiers_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.AccessSpecifierDecl __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.AccessSpecifierDecl) global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.AccessSpecifierDecl.__CreateInstance(__ret); + return __result0; + } + + public void AddSpecifiers(global::CppSharp.Parser.AST.AccessSpecifierDecl s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecifiers_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearSpecifiers() + { + __Internal.ClearSpecifiers_0((__Instance + __PointerAdjustment)); + } + + public bool IsPOD { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD != 0; } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.VTableLayout Layout + public bool IsAbstract { get { - return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout); + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract != 0; } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract = (byte) (value ? 1 : 0); } } - public bool HasOwnVFPtr + public bool IsUnion { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr != 0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion != 0; } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion = (byte) (value ? 1 : 0); } } - public long VBPtrOffset + public bool IsDynamic { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic != 0; } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic = (byte) (value ? 1 : 0); } } - public int Alignment + public bool IsPolymorphic { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic != 0; } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic = (byte) (value ? 1 : 0); } } - public int Size + public bool HasNonTrivialDefaultConstructor { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor != 0; } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor = (byte) (value ? 1 : 0); } } - public int DataSize + public bool HasNonTrivialCopyConstructor { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor != 0; } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor = (byte) (value ? 1 : 0); } } - public uint VFTablesCount + public bool HasNonTrivialDestructor { get { - var __ret = __Internal.GetVFTablesCount_0((__Instance + __PointerAdjustment)); + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor = (byte) (value ? 1 : 0); + } + } + + public bool IsExternCContext + { + get + { + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext = (byte) (value ? 1 : 0); + } + } + + public bool IsInjected + { + get + { + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected = (byte) (value ? 1 : 0); + } + } + + public global::CppSharp.Parser.AST.ClassLayout Layout + { + get + { + global::CppSharp.Parser.AST.ClassLayout __result0; + if (((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout)) + __result0 = (global::CppSharp.Parser.AST.ClassLayout) global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap[((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout]; + else __result0 = global::CppSharp.Parser.AST.ClassLayout.__CreateInstance(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public uint BasesCount + { + get + { + var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); return __ret; } } @@ -4129,1273 +4298,1172 @@ namespace CppSharp } } - public uint BasesCount + public uint MethodsCount { get { - var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetMethodsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + + public uint SpecifiersCount + { + get + { + var __ret = __Internal.GetSpecifiersCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class Declaration : IDisposable + public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 192)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 32)] + public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.TypeKind kind; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; + public global::CppSharp.Parser.AST.QualifiedType.__Internal injectedSpecializationType; [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.Cxx11.BasicString.__Internal Name; - - [FieldOffset(64)] - public global::Std.Cxx11.BasicString.__Internal USR; - - [FieldOffset(96)] - public global::Std.Cxx11.BasicString.__Internal DebugText; - - [FieldOffset(128)] - public byte isIncomplete; - - [FieldOffset(129)] - public byte isDependent; - - [FieldOffset(130)] - public byte isImplicit; - - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(144)] - public uint definitionOrder; - - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(176)] - public global::System.IntPtr originalPtr; - - [FieldOffset(184)] - public global::System.IntPtr comment; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + public global::System.IntPtr _class; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST21InjectedClassNameTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST21InjectedClassNameTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration23getPreprocessedEntitiesEj")] - internal static extern global::System.IntPtr GetPreprocessedEntities_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration23addPreprocessedEntitiesERPNS1_18PreprocessedEntityE")] - internal static extern void AddPreprocessedEntities_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration25clearPreprocessedEntitiesEv")] - internal static extern void ClearPreprocessedEntities_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration7getNameEv")] - internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration7setNameEPKc")] - internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration6getUSREv")] - internal static extern global::System.IntPtr USR_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration6setUSREPKc")] - internal static extern void SetUSR_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration12getDebugTextEv")] - internal static extern global::System.IntPtr DebugText_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration12setDebugTextEPKc")] - internal static extern void SetDebugText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration28getPreprocessedEntitiesCountEv")] - internal static extern uint GetPreprocessedEntitiesCount_0(global::System.IntPtr instance); - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Declaration(native.ToPointer(), skipVTables); + return new InjectedClassNameType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) { - return new Declaration(native, skipVTables); + return new InjectedClassNameType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Declaration.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); - global::CppSharp.Parser.AST.Declaration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + global::CppSharp.Parser.AST.InjectedClassNameType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Declaration(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) + private InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Declaration(void* native, bool skipVTables = false) + protected InjectedClassNameType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) + public InjectedClassNameType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Declaration(global::CppSharp.Parser.AST.Declaration _0) + public InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() + public global::CppSharp.Parser.AST.QualifiedType InjectedSpecializationType { - Dispose(disposing: true); + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType); + } + + set + { + ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } - public virtual void Dispose(bool disposing) + public global::CppSharp.Parser.AST.Class Class { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + get + { + global::CppSharp.Parser.AST.Class __result0; + if (((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } + } - public global::CppSharp.Parser.AST.PreprocessedEntity GetPreprocessedEntities(uint i) + public unsafe partial class DependentNameType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 24)] + public new partial struct __Internal { - var __ret = __Internal.GetPreprocessedEntities_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.PreprocessedEntity __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.PreprocessedEntity) global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.PreprocessedEntity.__CreateInstance(__ret); - return __result0; + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17DependentNameTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17DependentNameTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - public void AddPreprocessedEntities(global::CppSharp.Parser.AST.PreprocessedEntity s) + internal static new global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddPreprocessedEntities_0((__Instance + __PointerAdjustment), __arg0); + return new DependentNameType(native.ToPointer(), skipVTables); } - public void ClearPreprocessedEntities() + internal static global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) { - __Internal.ClearPreprocessedEntities_0((__Instance + __PointerAdjustment)); + return new DependentNameType(native, skipVTables); } - public static implicit operator global::CppSharp.Parser.AST.Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) + private static void* __CopyValue(global::CppSharp.Parser.AST.DependentNameType.__Internal native) { - return new global::CppSharp.Parser.AST.Declaration(kind); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + global::CppSharp.Parser.AST.DependentNameType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public global::CppSharp.Parser.AST.DeclarationKind Kind + private DependentNameType(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind = value; - } + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public global::CppSharp.Parser.AST.AccessSpecifier Access + protected DependentNameType(void* native, bool skipVTables = false) + : base((void*) null) { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access; - } - - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access = value; - } + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public global::CppSharp.Parser.AST.DeclarationContext Namespace + public DependentNameType() + : this((void*) null) { - get - { - global::CppSharp.Parser.AST.DeclarationContext __result0; - if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace)) - __result0 = (global::CppSharp.Parser.AST.DeclarationContext) global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace]; - else __result0 = global::CppSharp.Parser.AST.DeclarationContext.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.SourceLocation Location + public DependentNameType(global::CppSharp.Parser.AST.DependentNameType _0) + : this((void*) null) { - get - { - return global::CppSharp.Parser.SourceLocation.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location); - } - - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location = value.__Instance; - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public int LineNumberStart + public global::CppSharp.Parser.AST.QualifiedType Desugared { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared); } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart = value; + ((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } + } - public int LineNumberEnd + public unsafe partial class PackExpansionType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 8)] + public new partial struct __Internal { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd = value; - } + [FieldOffset(4)] + public byte isDependent; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17PackExpansionTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17PackExpansionTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - public bool IsIncomplete + internal static new global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete = (byte) (value ? 1 : 0); - } + return new PackExpansionType(native.ToPointer(), skipVTables); } - public bool IsDependent + internal static global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent != 0; - } + return new PackExpansionType(native, skipVTables); + } - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent = (byte) (value ? 1 : 0); - } + private static void* __CopyValue(global::CppSharp.Parser.AST.PackExpansionType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + global::CppSharp.Parser.AST.PackExpansionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public bool IsImplicit + private PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit != 0; - } + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit = (byte) (value ? 1 : 0); - } + protected PackExpansionType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public global::CppSharp.Parser.AST.Declaration CompleteDeclaration + public PackExpansionType() + : this((void*) null) { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration); - return __result0; - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + public PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } + } - public uint DefinitionOrder + public unsafe partial class UnaryTransformType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 40)] + public new partial struct __Internal { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder = value; - } + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + + [FieldOffset(24)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal baseType; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18UnaryTransformTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18UnaryTransformTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - public global::System.IntPtr OriginalPtr + internal static new global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr; - } + return new UnaryTransformType(native.ToPointer(), skipVTables); + } - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; - } + internal static global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) + { + return new UnaryTransformType(native, skipVTables); } - public global::CppSharp.Parser.AST.RawComment Comment + private static void* __CopyValue(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native) { - get - { - global::CppSharp.Parser.AST.RawComment __result0; - if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.RawComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment)) - __result0 = (global::CppSharp.Parser.AST.RawComment) global::CppSharp.Parser.AST.RawComment.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment]; - else __result0 = global::CppSharp.Parser.AST.RawComment.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment); - return __result0; - } + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + global::CppSharp.Parser.AST.UnaryTransformType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + private UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public string Name + protected UnaryTransformType(void* native, bool skipVTables = false) + : base((void*) null) { - get - { - var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - set - { - __Internal.SetName_0((__Instance + __PointerAdjustment), value); - } + public UnaryTransformType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public string USR + public UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } + + public global::CppSharp.Parser.AST.QualifiedType Desugared { get { - var __ret = __Internal.USR_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared); } set { - __Internal.SetUSR_0((__Instance + __PointerAdjustment), value); + ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public string DebugText + public global::CppSharp.Parser.AST.QualifiedType BaseType { get { - var __ret = __Internal.DebugText_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType); } set { - __Internal.SetDebugText_0((__Instance + __PointerAdjustment), value); - } - } - - public uint PreprocessedEntitiesCount - { - get - { - var __ret = __Internal.GetPreprocessedEntitiesCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class DeclarationContext : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class VectorType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 464)] + [StructLayout(LayoutKind.Explicit, Size = 32)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.TypeKind kind; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; + public global::CppSharp.Parser.AST.QualifiedType.__Internal elementType; [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.Cxx11.BasicString.__Internal Name; + public uint numElements; - [FieldOffset(64)] - public global::Std.Cxx11.BasicString.__Internal USR; - - [FieldOffset(96)] - public global::Std.Cxx11.BasicString.__Internal DebugText; - - [FieldOffset(128)] - public byte isIncomplete; - - [FieldOffset(129)] - public byte isDependent; - - [FieldOffset(130)] - public byte isImplicit; - - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10VectorTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(144)] - public uint definitionOrder; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10VectorTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; + internal static new global::CppSharp.Parser.AST.VectorType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new VectorType(native.ToPointer(), skipVTables); + } - [FieldOffset(176)] - public global::System.IntPtr originalPtr; + internal static global::CppSharp.Parser.AST.VectorType __CreateInstance(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + { + return new VectorType(native, skipVTables); + } - [FieldOffset(184)] - public global::System.IntPtr comment; + private static void* __CopyValue(global::CppSharp.Parser.AST.VectorType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + global::CppSharp.Parser.AST.VectorType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [FieldOffset(192)] - internal global::Std.Vector.__Internal Namespaces; + private VectorType(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [FieldOffset(216)] - internal global::Std.Vector.__Internal Enums; + protected VectorType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [FieldOffset(240)] - internal global::Std.Vector.__Internal Functions; + public VectorType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(264)] - internal global::Std.Vector.__Internal Classes; + public VectorType(global::CppSharp.Parser.AST.VectorType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(288)] - internal global::Std.Vector.__Internal Templates; + public global::CppSharp.Parser.AST.QualifiedType ElementType + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType); + } - [FieldOffset(312)] - internal global::Std.Vector.__Internal Typedefs; + set + { + ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } - [FieldOffset(336)] - internal global::Std.Vector.__Internal TypeAliases; + public uint NumElements + { + get + { + return ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements; + } - [FieldOffset(360)] - internal global::Std.Vector.__Internal Variables; + set + { + ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements = value; + } + } + } - [FieldOffset(384)] - internal global::Std.Vector.__Internal Friends; + public unsafe partial class BuiltinType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 12)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; - [FieldOffset(408)] - internal global::Std.Map.__Internal anonymous; + [FieldOffset(4)] + public byte isDependent; - [FieldOffset(456)] - public byte isAnonymous; + [FieldOffset(8)] + public global::CppSharp.Parser.AST.PrimitiveType type; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + EntryPoint="_ZN8CppSharp9CppParser3AST11BuiltinTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST11BuiltinTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + internal static new global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new BuiltinType(native.ToPointer(), skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13getNamespacesEj")] - internal static extern global::System.IntPtr GetNamespaces_0(global::System.IntPtr instance, uint i); + internal static global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) + { + return new BuiltinType(native, skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13addNamespacesERPNS1_9NamespaceE")] - internal static extern void AddNamespaces_0(global::System.IntPtr instance, global::System.IntPtr s); + private static void* __CopyValue(global::CppSharp.Parser.AST.BuiltinType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + global::CppSharp.Parser.AST.BuiltinType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15clearNamespacesEv")] - internal static extern void ClearNamespaces_0(global::System.IntPtr instance); + private BuiltinType(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext8getEnumsEj")] - internal static extern global::System.IntPtr GetEnums_0(global::System.IntPtr instance, uint i); + protected BuiltinType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext8addEnumsERPNS1_11EnumerationE")] - internal static extern void AddEnums_0(global::System.IntPtr instance, global::System.IntPtr s); + public BuiltinType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10clearEnumsEv")] - internal static extern void ClearEnums_0(global::System.IntPtr instance); + public BuiltinType(global::CppSharp.Parser.AST.BuiltinType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getFunctionsEj")] - internal static extern global::System.IntPtr GetFunctions_0(global::System.IntPtr instance, uint i); + public global::CppSharp.Parser.AST.PrimitiveType Type + { + get + { + return ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addFunctionsERPNS1_8FunctionE")] - internal static extern void AddFunctions_0(global::System.IntPtr instance, global::System.IntPtr s); + set + { + ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type = value; + } + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearFunctionsEv")] - internal static extern void ClearFunctions_0(global::System.IntPtr instance); + public unsafe partial class VTableComponent : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 16)] + public partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.VTableComponentKind kind; + + [FieldOffset(4)] + public uint offset; + + [FieldOffset(8)] + public global::System.IntPtr declaration; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10getClassesEj")] - internal static extern global::System.IntPtr GetClasses_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST15VTableComponentC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10addClassesERPNS1_5ClassE")] - internal static extern void AddClasses_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST15VTableComponentC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12clearClassesEv")] - internal static extern void ClearClasses_0(global::System.IntPtr instance); + public global::System.IntPtr __Instance { get; protected set; } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getTemplatesEj")] - internal static extern global::System.IntPtr GetTemplates_0(global::System.IntPtr instance, uint i); + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addTemplatesERPNS1_8TemplateE")] - internal static extern void AddTemplates_0(global::System.IntPtr instance, global::System.IntPtr s); + protected bool __ownsNativeInstance; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearTemplatesEv")] - internal static extern void ClearTemplates_0(global::System.IntPtr instance); + internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new VTableComponent(native.ToPointer(), skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext11getTypedefsEj")] - internal static extern global::System.IntPtr GetTypedefs_0(global::System.IntPtr instance, uint i); + internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + { + return new VTableComponent(native, skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext11addTypedefsERPNS1_11TypedefDeclE")] - internal static extern void AddTypedefs_0(global::System.IntPtr instance, global::System.IntPtr s); + private static void* __CopyValue(global::CppSharp.Parser.AST.VTableComponent.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + *(global::CppSharp.Parser.AST.VTableComponent.__Internal*) ret = native; + return ret.ToPointer(); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13clearTypedefsEv")] - internal static extern void ClearTypedefs_0(global::System.IntPtr instance); + private VTableComponent(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14getTypeAliasesEj")] - internal static extern global::System.IntPtr GetTypeAliases_0(global::System.IntPtr instance, uint i); + protected VTableComponent(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14addTypeAliasesERPNS1_9TypeAliasE")] - internal static extern void AddTypeAliases_0(global::System.IntPtr instance, global::System.IntPtr s); + public VTableComponent() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext16clearTypeAliasesEv")] - internal static extern void ClearTypeAliases_0(global::System.IntPtr instance); + public VTableComponent(global::CppSharp.Parser.AST.VTableComponent _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) _0.__Instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getVariablesEj")] - internal static extern global::System.IntPtr GetVariables_0(global::System.IntPtr instance, uint i); + public void Dispose() + { + Dispose(disposing: true); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addVariablesERPNS1_8VariableE")] - internal static extern void AddVariables_0(global::System.IntPtr instance, global::System.IntPtr s); + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.VTableComponent __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearVariablesEv")] - internal static extern void ClearVariables_0(global::System.IntPtr instance); + public global::CppSharp.Parser.AST.VTableComponentKind Kind + { + get + { + return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10getFriendsEj")] - internal static extern global::System.IntPtr GetFriends_0(global::System.IntPtr instance, uint i); + set + { + ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10addFriendsERPNS1_6FriendE")] - internal static extern void AddFriends_0(global::System.IntPtr instance, global::System.IntPtr s); + public uint Offset + { + get + { + return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12clearFriendsEv")] - internal static extern void ClearFriends_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext18getNamespacesCountEv")] - internal static extern uint GetNamespacesCount_0(global::System.IntPtr instance); + public global::CppSharp.Parser.AST.Declaration Declaration + { + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration); + return __result0; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13getEnumsCountEv")] - internal static extern uint GetEnumsCount_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + } + + public unsafe partial class VTableLayout : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 24)] + public partial struct __Internal + { + [FieldOffset(0)] + internal global::Std.Vector.__Internal Components; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getFunctionsCountEv")] - internal static extern uint GetFunctionsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15getClassesCountEv")] - internal static extern uint GetClassesCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getTemplatesCountEv")] - internal static extern uint GetTemplatesCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext16getTypedefsCountEv")] - internal static extern uint GetTypedefsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout13getComponentsEj")] + internal static extern global::CppSharp.Parser.AST.VTableComponent.__Internal GetComponents_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext19getTypeAliasesCountEv")] - internal static extern uint GetTypeAliasesCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout13addComponentsERNS1_15VTableComponentE")] + internal static extern void AddComponents_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getVariablesCountEv")] - internal static extern uint GetVariablesCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout15clearComponentsEv")] + internal static extern void ClearComponents_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15getFriendsCountEv")] - internal static extern uint GetFriendsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout18getComponentsCountEv")] + internal static extern uint GetComponentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DeclarationContext(native.ToPointer(), skipVTables); + return new VTableLayout(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) { - return new DeclarationContext(native, skipVTables); + return new VTableLayout(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DeclarationContext.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.VTableLayout.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); - global::CppSharp.Parser.AST.DeclarationContext.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + global::CppSharp.Parser.AST.VTableLayout.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) + private VTableLayout(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DeclarationContext(void* native, bool skipVTables = false) - : base((void*) null) + protected VTableLayout(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) - : this((void*) null) + public VTableLayout() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext _0) - : this((void*) null) + public VTableLayout(global::CppSharp.Parser.AST.VTableLayout _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.VTableLayout __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Namespace GetNamespaces(uint i) + public global::CppSharp.Parser.AST.VTableComponent GetComponents(uint i) { - var __ret = __Internal.GetNamespaces_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Namespace __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Namespace.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Namespace) global::CppSharp.Parser.AST.Namespace.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Namespace.__CreateInstance(__ret); - return __result0; + var __ret = __Internal.GetComponents_0((__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.VTableComponent.__CreateInstance(__ret); } - public void AddNamespaces(global::CppSharp.Parser.AST.Namespace s) + public void AddComponents(global::CppSharp.Parser.AST.VTableComponent s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddNamespaces_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddComponents_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearNamespaces() + public void ClearComponents() { - __Internal.ClearNamespaces_0((__Instance + __PointerAdjustment)); + __Internal.ClearComponents_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.Enumeration GetEnums(uint i) + public uint ComponentsCount { - var __ret = __Internal.GetEnums_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Enumeration __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Enumeration) global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Enumeration.__CreateInstance(__ret); - return __result0; + get + { + var __ret = __Internal.GetComponentsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } + } - public void AddEnums(global::CppSharp.Parser.AST.Enumeration s) + public unsafe partial class VFTableInfo : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 40)] + public partial struct __Internal { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddEnums_0((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(0)] + public ulong VBTableIndex; - public void ClearEnums() - { - __Internal.ClearEnums_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(8)] + public uint VFPtrOffset; - public global::CppSharp.Parser.AST.Function GetFunctions(uint i) - { - var __ret = __Internal.GetFunctions_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Function __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(12)] + public uint VFPtrFullOffset; - public void AddFunctions(global::CppSharp.Parser.AST.Function s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFunctions_0((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(16)] + public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; - public void ClearFunctions() - { - __Internal.ClearFunctions_0((__Instance + __PointerAdjustment)); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - public global::CppSharp.Parser.AST.Class GetClasses(uint i) - { - var __ret = __Internal.GetClasses_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Class __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(__ret); - return __result0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - public void AddClasses(global::CppSharp.Parser.AST.Class s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddClasses_0((__Instance + __PointerAdjustment), __arg0); + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - public void ClearClasses() - { - __Internal.ClearClasses_0((__Instance + __PointerAdjustment)); - } + public global::System.IntPtr __Instance { get; protected set; } - public global::CppSharp.Parser.AST.Template GetTemplates(uint i) + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - var __ret = __Internal.GetTemplates_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Template __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(__ret); - return __result0; + return new VFTableInfo(native.ToPointer(), skipVTables); } - public void AddTemplates(global::CppSharp.Parser.AST.Template s) + internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddTemplates_0((__Instance + __PointerAdjustment), __arg0); + return new VFTableInfo(native, skipVTables); } - public void ClearTemplates() + private static void* __CopyValue(global::CppSharp.Parser.AST.VFTableInfo.__Internal native) { - __Internal.ClearTemplates_0((__Instance + __PointerAdjustment)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + global::CppSharp.Parser.AST.VFTableInfo.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public global::CppSharp.Parser.AST.TypedefDecl GetTypedefs(uint i) + private VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - var __ret = __Internal.GetTypedefs_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.TypedefDecl __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.TypedefDecl) global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.TypedefDecl.__CreateInstance(__ret); - return __result0; + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public void AddTypedefs(global::CppSharp.Parser.AST.TypedefDecl s) + protected VFTableInfo(void* native, bool skipVTables = false) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddTypedefs_0((__Instance + __PointerAdjustment), __arg0); + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public void ClearTypedefs() + public VFTableInfo() { - __Internal.ClearTypedefs_0((__Instance + __PointerAdjustment)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.TypeAlias GetTypeAliases(uint i) + public VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo _0) { - var __ret = __Internal.GetTypeAliases_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.TypeAlias __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.TypeAlias) global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.TypeAlias.__CreateInstance(__ret); - return __result0; + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void AddTypeAliases(global::CppSharp.Parser.AST.TypeAlias s) + public void Dispose() { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddTypeAliases_0((__Instance + __PointerAdjustment), __arg0); + Dispose(disposing: true); } - public void ClearTypeAliases() + public virtual void Dispose(bool disposing) { - __Internal.ClearTypeAliases_0((__Instance + __PointerAdjustment)); + global::CppSharp.Parser.AST.VFTableInfo __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Variable GetVariables(uint i) + public ulong VBTableIndex { - var __ret = __Internal.GetVariables_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Variable __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Variable.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Variable) global::CppSharp.Parser.AST.Variable.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Variable.__CreateInstance(__ret); - return __result0; + get + { + return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex; + } + + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex = value; + } } - public void AddVariables(global::CppSharp.Parser.AST.Variable s) + public uint VFPtrOffset { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddVariables_0((__Instance + __PointerAdjustment), __arg0); + get + { + return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset; + } + + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset = value; + } } - public void ClearVariables() + public uint VFPtrFullOffset { - __Internal.ClearVariables_0((__Instance + __PointerAdjustment)); + get + { + return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset; + } + + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset = value; + } } - public global::CppSharp.Parser.AST.Friend GetFriends(uint i) - { - var __ret = __Internal.GetFriends_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Friend __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Friend.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Friend) global::CppSharp.Parser.AST.Friend.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Friend.__CreateInstance(__ret); - return __result0; - } - - public void AddFriends(global::CppSharp.Parser.AST.Friend s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFriends_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearFriends() - { - __Internal.ClearFriends_0((__Instance + __PointerAdjustment)); - } - - public static implicit operator global::CppSharp.Parser.AST.DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) - { - return new global::CppSharp.Parser.AST.DeclarationContext(kind); - } - - public bool IsAnonymous + public global::CppSharp.Parser.AST.VTableLayout Layout { get { - return ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous != 0; + return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout); } set { - ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous = (byte) (value ? 1 : 0); - } - } - - public uint NamespacesCount - { - get - { - var __ret = __Internal.GetNamespacesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint EnumsCount - { - get - { - var __ret = __Internal.GetEnumsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint FunctionsCount - { - get - { - var __ret = __Internal.GetFunctionsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint ClassesCount - { - get - { - var __ret = __Internal.GetClassesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint TemplatesCount - { - get - { - var __ret = __Internal.GetTemplatesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint TypedefsCount - { - get - { - var __ret = __Internal.GetTypedefsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint TypeAliasesCount - { - get - { - var __ret = __Internal.GetTypeAliasesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint VariablesCount - { - get - { - var __ret = __Internal.GetVariablesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint FriendsCount - { - get - { - var __ret = __Internal.GetFriendsCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; } } } - public unsafe partial class TypedefNameDecl : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class LayoutField : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 208)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 64)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public uint offset; [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] public global::Std.Cxx11.BasicString.__Internal Name; - [FieldOffset(64)] - public global::Std.Cxx11.BasicString.__Internal USR; - - [FieldOffset(96)] - public global::Std.Cxx11.BasicString.__Internal DebugText; - - [FieldOffset(128)] - public byte isIncomplete; - - [FieldOffset(129)] - public byte isDependent; - - [FieldOffset(130)] - public byte isImplicit; - - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(144)] - public uint definitionOrder; - - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; + [FieldOffset(40)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(176)] - public global::System.IntPtr originalPtr; + [FieldOffset(56)] + public global::System.IntPtr fieldPtr; - [FieldOffset(184)] - public global::System.IntPtr comment; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(192)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr other); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutField7getNameEv")] + internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutField7setNameEPKc")] + internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - internal static new global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypedefNameDecl(native.ToPointer(), skipVTables); + return new LayoutField(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) { - return new TypedefNameDecl(native, skipVTables); + return new LayoutField(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutField.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); - global::CppSharp.Parser.AST.TypedefNameDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + global::CppSharp.Parser.AST.LayoutField.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) + private LayoutField(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypedefNameDecl(void* native, bool skipVTables = false) - : base((void*) null) + protected LayoutField(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) - : this((void*) null) + public LayoutField() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl _0) - : this((void*) null) + public LayoutField(global::CppSharp.Parser.AST.LayoutField other) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; + if (ReferenceEquals(other, null)) + throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = other.__Instance; __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.LayoutField __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -5403,458 +5471,369 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public static implicit operator global::CppSharp.Parser.AST.TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) + public uint Offset { - return new global::CppSharp.Parser.AST.TypedefNameDecl(kind); + get + { + return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset; + } + + set + { + ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset = value; + } } public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - } - public unsafe partial class TypedefDecl : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 208)] - public new partial struct __Internal + public global::System.IntPtr FieldPtr { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.Cxx11.BasicString.__Internal Name; - - [FieldOffset(64)] - public global::Std.Cxx11.BasicString.__Internal USR; - - [FieldOffset(96)] - public global::Std.Cxx11.BasicString.__Internal DebugText; - - [FieldOffset(128)] - public byte isIncomplete; - - [FieldOffset(129)] - public byte isDependent; - - [FieldOffset(130)] - public byte isImplicit; - - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; + get + { + return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr; + } - [FieldOffset(144)] - public uint definitionOrder; + set + { + ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr = (global::System.IntPtr) value; + } + } - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; + public string Name + { + get + { + var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } - [FieldOffset(176)] - public global::System.IntPtr originalPtr; + set + { + __Internal.SetName_0((__Instance + __PointerAdjustment), value); + } + } + } - [FieldOffset(184)] - public global::System.IntPtr comment; + public unsafe partial class LayoutBase : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 16)] + public partial struct __Internal + { + [FieldOffset(0)] + public uint offset; - [FieldOffset(192)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(8)] + public global::System.IntPtr _class; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr other); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypedefDecl(native.ToPointer(), skipVTables); + return new LayoutBase(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) { - return new TypedefDecl(native, skipVTables); + return new LayoutBase(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefDecl.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutBase.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); - global::CppSharp.Parser.AST.TypedefDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + global::CppSharp.Parser.AST.LayoutBase.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) + private LayoutBase(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypedefDecl(void* native, bool skipVTables = false) - : base((void*) null) + protected LayoutBase(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public TypedefDecl() - : this((void*) null) + public LayoutBase() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl _0) - : this((void*) null) + public LayoutBase(global::CppSharp.Parser.AST.LayoutBase other) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; + if (ReferenceEquals(other, null)) + throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = other.__Instance; __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.LayoutBase __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - } - public unsafe partial class TypeAlias : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 216)] - public new partial struct __Internal + public uint Offset { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + get + { + return ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset; + } - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + set + { + ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset = value; + } + } - [FieldOffset(8)] - public global::System.IntPtr _namespace; + public global::CppSharp.Parser.AST.Class Class + { + get + { + global::CppSharp.Parser.AST.Class __result0; + if (((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class); + return __result0; + } - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; + set + { + ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + } - [FieldOffset(20)] - public int lineNumberStart; + public unsafe partial class ClassLayout : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 136)] + public partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.CppAbi ABI; - [FieldOffset(24)] - public int lineNumberEnd; + [FieldOffset(8)] + internal global::Std.Vector.__Internal VFTables; [FieldOffset(32)] - public global::Std.Cxx11.BasicString.__Internal Name; - - [FieldOffset(64)] - public global::Std.Cxx11.BasicString.__Internal USR; - - [FieldOffset(96)] - public global::Std.Cxx11.BasicString.__Internal DebugText; - - [FieldOffset(128)] - public byte isIncomplete; - - [FieldOffset(129)] - public byte isDependent; - - [FieldOffset(130)] - public byte isImplicit; + public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; + [FieldOffset(56)] + public byte hasOwnVFPtr; - [FieldOffset(144)] - public uint definitionOrder; + [FieldOffset(64)] + public long VBPtrOffset; - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; + [FieldOffset(72)] + public int alignment; - [FieldOffset(176)] - public global::System.IntPtr originalPtr; + [FieldOffset(76)] + public int size; - [FieldOffset(184)] - public global::System.IntPtr comment; + [FieldOffset(80)] + public int dataSize; - [FieldOffset(192)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(88)] + internal global::Std.Vector.__Internal Fields; - [FieldOffset(208)] - public global::System.IntPtr describedAliasTemplate; + [FieldOffset(112)] + internal global::Std.Vector.__Internal Bases; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); - } - - internal static new global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new TypeAlias(native.ToPointer(), skipVTables); - } - internal static global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) - { - return new TypeAlias(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAlias.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); - global::CppSharp.Parser.AST.TypeAlias.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private TypeAlias(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected TypeAlias(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public TypeAlias() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public TypeAlias(global::CppSharp.Parser.AST.TypeAlias _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.TypeAliasTemplate DescribedAliasTemplate - { - get - { - global::CppSharp.Parser.AST.TypeAliasTemplate __result0; - if (((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate)) - __result0 = (global::CppSharp.Parser.AST.TypeAliasTemplate) global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate]; - else __result0 = global::CppSharp.Parser.AST.TypeAliasTemplate.__CreateInstance(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - } - - public unsafe partial class Friend : global::CppSharp.Parser.AST.Declaration, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 200)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.Cxx11.BasicString.__Internal Name; - - [FieldOffset(64)] - public global::Std.Cxx11.BasicString.__Internal USR; - - [FieldOffset(96)] - public global::Std.Cxx11.BasicString.__Internal DebugText; - - [FieldOffset(128)] - public byte isIncomplete; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11getVFTablesEj")] + internal static extern void GetVFTables_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - [FieldOffset(129)] - public byte isDependent; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11addVFTablesERNS1_11VFTableInfoE")] + internal static extern void AddVFTables_0(global::System.IntPtr instance, global::System.IntPtr s); - [FieldOffset(130)] - public byte isImplicit; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout13clearVFTablesEv")] + internal static extern void ClearVFTables_0(global::System.IntPtr instance); - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout9getFieldsEj")] + internal static extern void GetFields_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - [FieldOffset(144)] - public uint definitionOrder; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout9addFieldsERNS1_11LayoutFieldE")] + internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11clearFieldsEv")] + internal static extern void ClearFields_0(global::System.IntPtr instance); - [FieldOffset(176)] - public global::System.IntPtr originalPtr; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout8getBasesEj")] + internal static extern void GetBases_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - [FieldOffset(184)] - public global::System.IntPtr comment; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout8addBasesERNS1_10LayoutBaseE")] + internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); - [FieldOffset(192)] - public global::System.IntPtr declaration; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout10clearBasesEv")] + internal static extern void ClearBases_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6FriendC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout16getVFTablesCountEv")] + internal static extern uint GetVFTablesCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6FriendC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout14getFieldsCountEv")] + internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6FriendD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout13getBasesCountEv")] + internal static extern uint GetBasesCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Friend __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Friend(native.ToPointer(), skipVTables); + return new ClassLayout(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Friend __CreateInstance(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) { - return new Friend(native, skipVTables); + return new ClassLayout(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Friend.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassLayout.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); - global::CppSharp.Parser.AST.Friend.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + global::CppSharp.Parser.AST.ClassLayout.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Friend(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) + private ClassLayout(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Friend(void* native, bool skipVTables = false) - : base((void*) null) + protected ClassLayout(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public Friend() - : this((void*) null) + public ClassLayout() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Friend(global::CppSharp.Parser.AST.Friend _0) - : this((void*) null) + public ClassLayout(global::CppSharp.Parser.AST.ClassLayout _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.ClassLayout __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -5862,612 +5841,498 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Declaration Declaration + public global::CppSharp.Parser.AST.VFTableInfo GetVFTables(uint i) { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration); - return __result0; - } + var __ret = new global::CppSharp.Parser.AST.VFTableInfo.__Internal(); + __Internal.GetVFTables_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.VFTableInfo.__CreateInstance(__ret); + } - set - { - ((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + public void AddVFTables(global::CppSharp.Parser.AST.VFTableInfo s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddVFTables_0((__Instance + __PointerAdjustment), __arg0); } - } - public unsafe partial class Statement : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 48)] - public partial struct __Internal + public void ClearVFTables() { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + __Internal.ClearVFTables_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(8)] - public global::System.IntPtr decl; - - [FieldOffset(16)] - public global::Std.Cxx11.BasicString.__Internal String; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9StatementC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9StatementD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9Statement9getStringEv")] - internal static extern global::System.IntPtr String_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9Statement9setStringEPKc")] - internal static extern void SetString_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public global::CppSharp.Parser.AST.LayoutField GetFields(uint i) { - return new Statement(native.ToPointer(), skipVTables); + var __ret = new global::CppSharp.Parser.AST.LayoutField.__Internal(); + __Internal.GetFields_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.LayoutField.__CreateInstance(__ret); } - internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + public void AddFields(global::CppSharp.Parser.AST.LayoutField s) { - return new Statement(native, skipVTables); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Statement.__Internal native) + public void ClearFields() { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); - global::CppSharp.Parser.AST.Statement.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + __Internal.ClearFields_0((__Instance + __PointerAdjustment)); } - private Statement(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public global::CppSharp.Parser.AST.LayoutBase GetBases(uint i) { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + var __ret = new global::CppSharp.Parser.AST.LayoutBase.__Internal(); + __Internal.GetBases_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.LayoutBase.__CreateInstance(__ret); } - protected Statement(void* native, bool skipVTables = false) + public void AddBases(global::CppSharp.Parser.AST.LayoutBase s) { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); } - public Statement(global::CppSharp.Parser.AST.Statement _0) + public void ClearBases() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.ClearBases_0((__Instance + __PointerAdjustment)); } - public void Dispose() + public global::CppSharp.Parser.AST.CppAbi ABI { - Dispose(disposing: true); - } + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI; + } - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Statement __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI = value; + } } - public global::CppSharp.Parser.AST.StatementClass Class + public global::CppSharp.Parser.AST.VTableLayout Layout { get { - return ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class; + return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout); } set { - ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class = value; + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.Declaration Decl + public bool HasOwnVFPtr { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl); - return __result0; + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr != 0; } set { - ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr = (byte) (value ? 1 : 0); } } - public string String + public long VBPtrOffset { get { - var __ret = __Internal.String_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset; } set { - __Internal.SetString_0((__Instance + __PointerAdjustment), value); + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset = value; } } - } - public unsafe partial class Expression : global::CppSharp.Parser.AST.Statement, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 48)] - public new partial struct __Internal + public int Alignment { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; - - [FieldOffset(8)] - public global::System.IntPtr decl; - - [FieldOffset(16)] - public global::Std.Cxx11.BasicString.__Internal String; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10ExpressionC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10ExpressionD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment = value; + } } - internal static new global::CppSharp.Parser.AST.Expression __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public int Size { - return new Expression(native.ToPointer(), skipVTables); - } + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size; + } - internal static global::CppSharp.Parser.AST.Expression __CreateInstance(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) - { - return new Expression(native, skipVTables); + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size = value; + } } - private static void* __CopyValue(global::CppSharp.Parser.AST.Expression.__Internal native) + public int DataSize { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); - global::CppSharp.Parser.AST.Expression.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize; + } - private Expression(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize = value; + } } - protected Expression(void* native, bool skipVTables = false) - : base((void*) null) + public uint VFTablesCount { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + get + { + var __ret = __Internal.GetVFTablesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - public Expression(global::CppSharp.Parser.AST.Expression _0) - : this((void*) null) + public uint FieldsCount { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + get + { + var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - public override void Dispose(bool disposing) + public uint BasesCount { - global::CppSharp.Parser.AST.Statement __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + get + { + var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } } - public unsafe partial class BinaryOperator : global::CppSharp.Parser.AST.Expression, IDisposable + public unsafe partial class DeclarationContext : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 96)] + [StructLayout(LayoutKind.Explicit, Size = 488)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr decl; + public global::System.IntPtr _namespace; [FieldOffset(16)] - public global::Std.Cxx11.BasicString.__Internal String; + public global::CppSharp.Parser.SourceLocation.__Internal location; - [FieldOffset(48)] - public global::System.IntPtr LHS; + [FieldOffset(20)] + public int lineNumberStart; - [FieldOffset(56)] - public global::System.IntPtr RHS; + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.Cxx11.BasicString.__Internal Name; [FieldOffset(64)] - public global::Std.Cxx11.BasicString.__Internal OpcodeStr; + public global::Std.Cxx11.BasicString.__Internal USR; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperatorC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(96)] + public global::Std.Cxx11.BasicString.__Internal DebugText; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperatorD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + [FieldOffset(128)] + public byte isIncomplete; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperator12getOpcodeStrEv")] - internal static extern global::System.IntPtr OpcodeStr_0(global::System.IntPtr instance); + [FieldOffset(129)] + public byte isDependent; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperator12setOpcodeStrEPKc")] - internal static extern void SetOpcodeStr_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - } + [FieldOffset(130)] + public byte isImplicit; - internal static new global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new BinaryOperator(native.ToPointer(), skipVTables); - } + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; - internal static global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) - { - return new BinaryOperator(native, skipVTables); - } + [FieldOffset(144)] + public uint definitionOrder; - private static void* __CopyValue(global::CppSharp.Parser.AST.BinaryOperator.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); - global::CppSharp.Parser.AST.BinaryOperator.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; - private BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; - protected BinaryOperator(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [FieldOffset(200)] + public global::System.IntPtr originalPtr; - public BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(208)] + public global::System.IntPtr comment; - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Statement __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } + [FieldOffset(216)] + internal global::Std.Vector.__Internal Namespaces; - public global::CppSharp.Parser.AST.Expression LHS - { - get - { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS); - return __result0; - } + [FieldOffset(240)] + internal global::Std.Vector.__Internal Enums; - set - { - ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } + [FieldOffset(264)] + internal global::Std.Vector.__Internal Functions; - public global::CppSharp.Parser.AST.Expression RHS - { - get - { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS); - return __result0; - } + [FieldOffset(288)] + internal global::Std.Vector.__Internal Classes; - set - { - ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } + [FieldOffset(312)] + internal global::Std.Vector.__Internal Templates; - public string OpcodeStr - { - get - { - var __ret = __Internal.OpcodeStr_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } + [FieldOffset(336)] + internal global::Std.Vector.__Internal Typedefs; - set - { - __Internal.SetOpcodeStr_0((__Instance + __PointerAdjustment), value); - } - } - } + [FieldOffset(360)] + internal global::Std.Vector.__Internal TypeAliases; - public unsafe partial class CallExpr : global::CppSharp.Parser.AST.Expression, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 72)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + [FieldOffset(384)] + internal global::Std.Vector.__Internal Variables; - [FieldOffset(8)] - public global::System.IntPtr decl; + [FieldOffset(408)] + internal global::Std.Vector.__Internal Friends; - [FieldOffset(16)] - public global::Std.Cxx11.BasicString.__Internal String; + [FieldOffset(432)] + internal global::Std.Map.__Internal anonymous; - [FieldOffset(48)] - internal global::Std.Vector.__Internal Arguments; + [FieldOffset(480)] + public byte isAnonymous; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExprC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExprD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr12getArgumentsEj")] - internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13getNamespacesEj")] + internal static extern global::System.IntPtr GetNamespaces_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr12addArgumentsERPNS1_10ExpressionE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13addNamespacesERPNS1_9NamespaceE")] + internal static extern void AddNamespaces_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15clearNamespacesEv")] + internal static extern void ClearNamespaces_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); - } + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext8getEnumsEj")] + internal static extern global::System.IntPtr GetEnums_0(global::System.IntPtr instance, uint i); - internal static new global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new CallExpr(native.ToPointer(), skipVTables); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext8addEnumsERPNS1_11EnumerationE")] + internal static extern void AddEnums_0(global::System.IntPtr instance, global::System.IntPtr s); - internal static global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) - { - return new CallExpr(native, skipVTables); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10clearEnumsEv")] + internal static extern void ClearEnums_0(global::System.IntPtr instance); - private static void* __CopyValue(global::CppSharp.Parser.AST.CallExpr.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); - global::CppSharp.Parser.AST.CallExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getFunctionsEj")] + internal static extern global::System.IntPtr GetFunctions_0(global::System.IntPtr instance, uint i); - private CallExpr(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addFunctionsERPNS1_8FunctionE")] + internal static extern void AddFunctions_0(global::System.IntPtr instance, global::System.IntPtr s); - protected CallExpr(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearFunctionsEv")] + internal static extern void ClearFunctions_0(global::System.IntPtr instance); - public CallExpr(global::CppSharp.Parser.AST.CallExpr _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10getClassesEj")] + internal static extern global::System.IntPtr GetClasses_0(global::System.IntPtr instance, uint i); - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Statement __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10addClassesERPNS1_5ClassE")] + internal static extern void AddClasses_0(global::System.IntPtr instance, global::System.IntPtr s); - public global::CppSharp.Parser.AST.Expression GetArguments(uint i) - { - var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Expression __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); - return __result0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12clearClassesEv")] + internal static extern void ClearClasses_0(global::System.IntPtr instance); - public void AddArguments(global::CppSharp.Parser.AST.Expression s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getTemplatesEj")] + internal static extern global::System.IntPtr GetTemplates_0(global::System.IntPtr instance, uint i); - public void ClearArguments() - { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addTemplatesERPNS1_8TemplateE")] + internal static extern void AddTemplates_0(global::System.IntPtr instance, global::System.IntPtr s); - public uint ArgumentsCount - { - get - { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearTemplatesEv")] + internal static extern void ClearTemplates_0(global::System.IntPtr instance); - public unsafe partial class CXXConstructExpr : global::CppSharp.Parser.AST.Expression, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 72)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext11getTypedefsEj")] + internal static extern global::System.IntPtr GetTypedefs_0(global::System.IntPtr instance, uint i); - [FieldOffset(8)] - public global::System.IntPtr decl; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext11addTypedefsERPNS1_11TypedefDeclE")] + internal static extern void AddTypedefs_0(global::System.IntPtr instance, global::System.IntPtr s); - [FieldOffset(16)] - public global::Std.Cxx11.BasicString.__Internal String; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13clearTypedefsEv")] + internal static extern void ClearTypedefs_0(global::System.IntPtr instance); - [FieldOffset(48)] - internal global::Std.Vector.__Internal Arguments; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14getTypeAliasesEj")] + internal static extern global::System.IntPtr GetTypeAliases_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExprC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14addTypeAliasesERPNS1_9TypeAliasE")] + internal static extern void AddTypeAliases_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExprD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext16clearTypeAliasesEv")] + internal static extern void ClearTypeAliases_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr12getArgumentsEj")] - internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getVariablesEj")] + internal static extern global::System.IntPtr GetVariables_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr12addArgumentsERPNS1_10ExpressionE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addVariablesERPNS1_8VariableE")] + internal static extern void AddVariables_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearVariablesEv")] + internal static extern void ClearVariables_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10getFriendsEj")] + internal static extern global::System.IntPtr GetFriends_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10addFriendsERPNS1_6FriendE")] + internal static extern void AddFriends_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12clearFriendsEv")] + internal static extern void ClearFriends_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext18getNamespacesCountEv")] + internal static extern uint GetNamespacesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13getEnumsCountEv")] + internal static extern uint GetEnumsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getFunctionsCountEv")] + internal static extern uint GetFunctionsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15getClassesCountEv")] + internal static extern uint GetClassesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getTemplatesCountEv")] + internal static extern uint GetTemplatesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext16getTypedefsCountEv")] + internal static extern uint GetTypedefsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext19getTypeAliasesCountEv")] + internal static extern uint GetTypeAliasesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getVariablesCountEv")] + internal static extern uint GetVariablesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15getFriendsCountEv")] + internal static extern uint GetFriendsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new CXXConstructExpr(native.ToPointer(), skipVTables); + return new DeclarationContext(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) { - return new CXXConstructExpr(native, skipVTables); + return new DeclarationContext(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DeclarationContext.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); - global::CppSharp.Parser.AST.CXXConstructExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + global::CppSharp.Parser.AST.DeclarationContext.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) + private DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected CXXConstructExpr(void* native, bool skipVTables = false) + protected DeclarationContext(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -6476,21 +6341,30 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr _0) + public DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + } + + public DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Statement __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -6498,55 +6372,656 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Expression GetArguments(uint i) + public global::CppSharp.Parser.AST.Namespace GetNamespaces(uint i) { - var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Expression __result0; + var __ret = __Internal.GetNamespaces_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Namespace __result0; if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); + else if (global::CppSharp.Parser.AST.Namespace.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Namespace) global::CppSharp.Parser.AST.Namespace.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Namespace.__CreateInstance(__ret); return __result0; } - public void AddArguments(global::CppSharp.Parser.AST.Expression s) + public void AddNamespaces(global::CppSharp.Parser.AST.Namespace s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddNamespaces_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearArguments() + public void ClearNamespaces() { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + __Internal.ClearNamespaces_0((__Instance + __PointerAdjustment)); } - public uint ArgumentsCount + public global::CppSharp.Parser.AST.Enumeration GetEnums(uint i) { - get - { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + var __ret = __Internal.GetEnums_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Enumeration __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Enumeration) global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Enumeration.__CreateInstance(__ret); + return __result0; } - } - public unsafe partial class Parameter : global::CppSharp.Parser.AST.Declaration, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 224)] - public new partial struct __Internal + public void AddEnums(global::CppSharp.Parser.AST.Enumeration s) { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddEnums_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(8)] - public global::System.IntPtr _namespace; + public void ClearEnums() + { + __Internal.ClearEnums_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(16)] + public global::CppSharp.Parser.AST.Function GetFunctions(uint i) + { + var __ret = __Internal.GetFunctions_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Function __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(__ret); + return __result0; + } + + public void AddFunctions(global::CppSharp.Parser.AST.Function s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFunctions_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearFunctions() + { + __Internal.ClearFunctions_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.Class GetClasses(uint i) + { + var __ret = __Internal.GetClasses_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Class __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(__ret); + return __result0; + } + + public void AddClasses(global::CppSharp.Parser.AST.Class s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddClasses_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearClasses() + { + __Internal.ClearClasses_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.Template GetTemplates(uint i) + { + var __ret = __Internal.GetTemplates_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Template __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(__ret); + return __result0; + } + + public void AddTemplates(global::CppSharp.Parser.AST.Template s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddTemplates_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearTemplates() + { + __Internal.ClearTemplates_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.TypedefDecl GetTypedefs(uint i) + { + var __ret = __Internal.GetTypedefs_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.TypedefDecl __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.TypedefDecl) global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.TypedefDecl.__CreateInstance(__ret); + return __result0; + } + + public void AddTypedefs(global::CppSharp.Parser.AST.TypedefDecl s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddTypedefs_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearTypedefs() + { + __Internal.ClearTypedefs_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.TypeAlias GetTypeAliases(uint i) + { + var __ret = __Internal.GetTypeAliases_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.TypeAlias __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.TypeAlias) global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.TypeAlias.__CreateInstance(__ret); + return __result0; + } + + public void AddTypeAliases(global::CppSharp.Parser.AST.TypeAlias s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddTypeAliases_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearTypeAliases() + { + __Internal.ClearTypeAliases_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.Variable GetVariables(uint i) + { + var __ret = __Internal.GetVariables_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Variable __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Variable.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Variable) global::CppSharp.Parser.AST.Variable.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Variable.__CreateInstance(__ret); + return __result0; + } + + public void AddVariables(global::CppSharp.Parser.AST.Variable s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddVariables_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearVariables() + { + __Internal.ClearVariables_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.Friend GetFriends(uint i) + { + var __ret = __Internal.GetFriends_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Friend __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Friend.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Friend) global::CppSharp.Parser.AST.Friend.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Friend.__CreateInstance(__ret); + return __result0; + } + + public void AddFriends(global::CppSharp.Parser.AST.Friend s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFriends_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearFriends() + { + __Internal.ClearFriends_0((__Instance + __PointerAdjustment)); + } + + public static implicit operator global::CppSharp.Parser.AST.DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) + { + return new global::CppSharp.Parser.AST.DeclarationContext(kind); + } + + public bool IsAnonymous + { + get + { + return ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous != 0; + } + + set + { + ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous = (byte) (value ? 1 : 0); + } + } + + public uint NamespacesCount + { + get + { + var __ret = __Internal.GetNamespacesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + + public uint EnumsCount + { + get + { + var __ret = __Internal.GetEnumsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + + public uint FunctionsCount + { + get + { + var __ret = __Internal.GetFunctionsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + + public uint ClassesCount + { + get + { + var __ret = __Internal.GetClassesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + + public uint TemplatesCount + { + get + { + var __ret = __Internal.GetTemplatesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + + public uint TypedefsCount + { + get + { + var __ret = __Internal.GetTypedefsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + + public uint TypeAliasesCount + { + get + { + var __ret = __Internal.GetTypeAliasesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + + public uint VariablesCount + { + get + { + var __ret = __Internal.GetVariablesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + + public uint FriendsCount + { + get + { + var __ret = __Internal.GetFriendsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + } + + public unsafe partial class RawComment : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 80)] + public partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.RawCommentKind kind; + + [FieldOffset(8)] + public global::Std.Cxx11.BasicString.__Internal Text; + + [FieldOffset(40)] + public global::Std.Cxx11.BasicString.__Internal BriefText; + + [FieldOffset(72)] + public global::System.IntPtr fullCommentBlock; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment7getTextEv")] + internal static extern global::System.IntPtr Text_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment7setTextEPKc")] + internal static extern void SetText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment12getBriefTextEv")] + internal static extern global::System.IntPtr BriefText_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment12setBriefTextEPKc")] + internal static extern void SetBriefText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + } + + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new RawComment(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) + { + return new RawComment(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.RawComment.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); + global::CppSharp.Parser.AST.RawComment.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private RawComment(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected RawComment(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public RawComment() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public RawComment(global::CppSharp.Parser.AST.RawComment _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.RawComment __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.RawCommentKind Kind + { + get + { + return ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind; + } + + set + { + ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind = value; + } + } + + public global::CppSharp.Parser.AST.FullComment FullCommentBlock + { + get + { + global::CppSharp.Parser.AST.FullComment __result0; + if (((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FullComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock)) + __result0 = (global::CppSharp.Parser.AST.FullComment) global::CppSharp.Parser.AST.FullComment.NativeToManagedMap[((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock]; + else __result0 = global::CppSharp.Parser.AST.FullComment.__CreateInstance(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public string Text + { + get + { + var __ret = __Internal.Text_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetText_0((__Instance + __PointerAdjustment), value); + } + } + + public string BriefText + { + get + { + var __ret = __Internal.BriefText_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetBriefText_0((__Instance + __PointerAdjustment), value); + } + } + } + + public unsafe partial class PreprocessedEntity : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 24)] + public partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.MacroLocation macroLocation; + + [FieldOffset(8)] + public global::System.IntPtr originalPtr; + + [FieldOffset(16)] + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18PreprocessedEntityC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18PreprocessedEntityC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + } + + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new PreprocessedEntity(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) + { + return new PreprocessedEntity(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); + *(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) ret = native; + return ret.ToPointer(); + } + + private PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected PreprocessedEntity(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public PreprocessedEntity() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) _0.__Instance); + } + + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.PreprocessedEntity __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.MacroLocation MacroLocation + { + get + { + return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation; + } + + set + { + ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation = value; + } + } + + public global::System.IntPtr OriginalPtr + { + get + { + return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr; + } + + set + { + ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; + } + } + + public global::CppSharp.Parser.AST.DeclarationKind Kind + { + get + { + return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind; + } + + set + { + ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind = value; + } + } + } + + public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 528)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; + + [FieldOffset(8)] + public global::System.IntPtr _namespace; + + [FieldOffset(16)] public global::CppSharp.Parser.SourceLocation.__Internal location; [FieldOffset(20)] @@ -6564,86 +7039,330 @@ namespace CppSharp [FieldOffset(96)] public global::Std.Cxx11.BasicString.__Internal DebugText; - [FieldOffset(128)] - public byte isIncomplete; + [FieldOffset(128)] + public byte isIncomplete; + + [FieldOffset(129)] + public byte isDependent; + + [FieldOffset(130)] + public byte isImplicit; + + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(144)] + public uint definitionOrder; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] + public global::System.IntPtr originalPtr; + + [FieldOffset(208)] + public global::System.IntPtr comment; + + [FieldOffset(216)] + internal global::Std.Vector.__Internal Namespaces; + + [FieldOffset(240)] + internal global::Std.Vector.__Internal Enums; + + [FieldOffset(264)] + internal global::Std.Vector.__Internal Functions; - [FieldOffset(129)] - public byte isDependent; + [FieldOffset(288)] + internal global::Std.Vector.__Internal Classes; - [FieldOffset(130)] - public byte isImplicit; + [FieldOffset(312)] + internal global::Std.Vector.__Internal Templates; - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; + [FieldOffset(336)] + internal global::Std.Vector.__Internal Typedefs; - [FieldOffset(144)] - public uint definitionOrder; + [FieldOffset(360)] + internal global::Std.Vector.__Internal TypeAliases; - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; + [FieldOffset(384)] + internal global::Std.Vector.__Internal Variables; - [FieldOffset(176)] - public global::System.IntPtr originalPtr; + [FieldOffset(408)] + internal global::Std.Vector.__Internal Friends; - [FieldOffset(184)] - public global::System.IntPtr comment; + [FieldOffset(432)] + internal global::Std.Map.__Internal anonymous; - [FieldOffset(192)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(480)] + public byte isAnonymous; - [FieldOffset(208)] - public byte isIndirect; + [FieldOffset(484)] + public global::CppSharp.Parser.AST.Enumeration.EnumModifiers modifiers; - [FieldOffset(209)] - public byte hasDefaultValue; + [FieldOffset(488)] + public global::System.IntPtr type; - [FieldOffset(212)] - public uint index; + [FieldOffset(496)] + public global::System.IntPtr builtinType; - [FieldOffset(216)] - public global::System.IntPtr defaultArgument; + [FieldOffset(504)] + internal global::Std.Vector.__Internal Items; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration8getItemsEj")] + internal static extern global::System.IntPtr GetItems_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration8addItemsERPNS2_4ItemE")] + internal static extern void AddItems_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration10clearItemsEv")] + internal static extern void ClearItems_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration13getItemsCountEv")] + internal static extern uint GetItemsCount_0(global::System.IntPtr instance); + } + + [Flags] + public enum EnumModifiers + { + Anonymous = 1, + Scoped = 2, + Flags = 4 + } + + public unsafe partial class Item : global::CppSharp.Parser.AST.Declaration, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 256)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; + + [FieldOffset(8)] + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.Cxx11.BasicString.__Internal Name; + + [FieldOffset(64)] + public global::Std.Cxx11.BasicString.__Internal USR; + + [FieldOffset(96)] + public global::Std.Cxx11.BasicString.__Internal DebugText; + + [FieldOffset(128)] + public byte isIncomplete; + + [FieldOffset(129)] + public byte isDependent; + + [FieldOffset(130)] + public byte isImplicit; + + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(144)] + public uint definitionOrder; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] + public global::System.IntPtr originalPtr; + + [FieldOffset(208)] + public global::System.IntPtr comment; + + [FieldOffset(216)] + public global::Std.Cxx11.BasicString.__Internal Expression; + + [FieldOffset(248)] + public ulong value; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemC2ERKS3_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4Item13getExpressionEv")] + internal static extern global::System.IntPtr Expression_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4Item13setExpressionEPKc")] + internal static extern void SetExpression_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + } + + internal static new global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Item(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) + { + return new Item(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); + global::CppSharp.Parser.AST.Enumeration.Item.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private Item(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected Item(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public Item() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public Item(global::CppSharp.Parser.AST.Enumeration.Item _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public ulong Value + { + get + { + return ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value; + } + + set + { + ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value = value; + } + } + + public string Expression + { + get + { + var __ret = __Internal.Expression_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetExpression_0((__Instance + __PointerAdjustment), value); + } + } } - internal static new global::CppSharp.Parser.AST.Parameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Parameter(native.ToPointer(), skipVTables); + return new Enumeration(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Parameter __CreateInstance(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) { - return new Parameter(native, skipVTables); + return new Enumeration(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Parameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); - global::CppSharp.Parser.AST.Parameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + global::CppSharp.Parser.AST.Enumeration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Parameter(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) + private Enumeration(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Parameter(void* native, bool skipVTables = false) + protected Enumeration(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -6652,19 +7371,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Parameter() + public Enumeration() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Parameter(global::CppSharp.Parser.AST.Parameter _0) + public Enumeration(global::CppSharp.Parser.AST.Enumeration _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -6683,80 +7402,92 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public global::CppSharp.Parser.AST.Enumeration.Item GetItems(uint i) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType); - } + var __ret = __Internal.GetItems_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Enumeration.Item __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Enumeration.Item) global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Enumeration.Item.__CreateInstance(__ret); + return __result0; + } - set - { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + public void AddItems(global::CppSharp.Parser.AST.Enumeration.Item s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddItems_0((__Instance + __PointerAdjustment), __arg0); } - public bool IsIndirect + public void ClearItems() + { + __Internal.ClearItems_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.Enumeration.EnumModifiers Modifiers { get { - return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect != 0; + return ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers; } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers = value; } } - public bool HasDefaultValue + public global::CppSharp.Parser.AST.Type Type { get { - return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue != 0; + global::CppSharp.Parser.AST.Type __result0; + if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type)) + __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type]; + else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type); + return __result0; } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public uint Index + public global::CppSharp.Parser.AST.BuiltinType BuiltinType { get { - return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index; + global::CppSharp.Parser.AST.BuiltinType __result0; + if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType)) + __result0 = (global::CppSharp.Parser.AST.BuiltinType) global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType]; + else __result0 = global::CppSharp.Parser.AST.BuiltinType.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType); + return __result0; } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index = value; + ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public global::CppSharp.Parser.AST.Expression DefaultArgument + public uint ItemsCount { get { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + var __ret = __Internal.GetItemsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } public unsafe partial class Function : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 384)] + [StructLayout(LayoutKind.Explicit, Size = 408)] public new partial struct __Internal { [FieldOffset(0)] @@ -6805,63 +7536,66 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] + [FieldOffset(216)] public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(208)] + [FieldOffset(232)] public byte isReturnIndirect; - [FieldOffset(209)] + [FieldOffset(233)] public byte hasThisReturn; - [FieldOffset(210)] + [FieldOffset(234)] public byte isConstExpr; - [FieldOffset(211)] + [FieldOffset(235)] public byte isVariadic; - [FieldOffset(212)] + [FieldOffset(236)] public byte isInline; - [FieldOffset(213)] + [FieldOffset(237)] public byte isPure; - [FieldOffset(214)] + [FieldOffset(238)] public byte isDeleted; - [FieldOffset(216)] + [FieldOffset(240)] public global::CppSharp.Parser.AST.FriendKind friendKind; - [FieldOffset(220)] + [FieldOffset(244)] public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - [FieldOffset(224)] + [FieldOffset(248)] public global::Std.Cxx11.BasicString.__Internal Mangled; - [FieldOffset(256)] + [FieldOffset(280)] public global::Std.Cxx11.BasicString.__Internal Signature; - [FieldOffset(288)] + [FieldOffset(312)] public global::Std.Cxx11.BasicString.__Internal Body; - [FieldOffset(320)] + [FieldOffset(344)] public global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(328)] + [FieldOffset(352)] internal global::Std.Vector.__Internal Parameters; - [FieldOffset(352)] + [FieldOffset(376)] public global::System.IntPtr specializationInfo; - [FieldOffset(360)] + [FieldOffset(384)] public global::System.IntPtr instantiatedFrom; - [FieldOffset(368)] + [FieldOffset(392)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] @@ -7254,17 +7988,160 @@ namespace CppSharp public uint ParametersCount { - get - { - var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + get + { + var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + } + + public unsafe partial class TypedefDecl : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 232)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; + + [FieldOffset(8)] + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.Cxx11.BasicString.__Internal Name; + + [FieldOffset(64)] + public global::Std.Cxx11.BasicString.__Internal USR; + + [FieldOffset(96)] + public global::Std.Cxx11.BasicString.__Internal DebugText; + + [FieldOffset(128)] + public byte isIncomplete; + + [FieldOffset(129)] + public byte isDependent; + + [FieldOffset(130)] + public byte isImplicit; + + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(144)] + public uint definitionOrder; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] + public global::System.IntPtr originalPtr; + + [FieldOffset(208)] + public global::System.IntPtr comment; + + [FieldOffset(216)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new TypedefDecl(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) + { + return new TypedefDecl(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefDecl.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + global::CppSharp.Parser.AST.TypedefDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected TypedefDecl(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public TypedefDecl() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } } - public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable + public unsafe partial class TypeAlias : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 424)] + [StructLayout(LayoutKind.Explicit, Size = 240)] public new partial struct __Internal { [FieldOffset(0)] @@ -7313,139 +8190,61 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] - public global::System.IntPtr originalPtr; + internal global::Std.Vector.__Internal Redeclarations; - [FieldOffset(184)] - public global::System.IntPtr comment; - - [FieldOffset(192)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; + [FieldOffset(200)] + public global::System.IntPtr originalPtr; [FieldOffset(208)] - public byte isReturnIndirect; - - [FieldOffset(209)] - public byte hasThisReturn; - - [FieldOffset(210)] - public byte isConstExpr; - - [FieldOffset(211)] - public byte isVariadic; - - [FieldOffset(212)] - public byte isInline; - - [FieldOffset(213)] - public byte isPure; - - [FieldOffset(214)] - public byte isDeleted; + public global::System.IntPtr comment; [FieldOffset(216)] - public global::CppSharp.Parser.AST.FriendKind friendKind; - - [FieldOffset(220)] - public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - - [FieldOffset(224)] - public global::Std.Cxx11.BasicString.__Internal Mangled; - - [FieldOffset(256)] - public global::Std.Cxx11.BasicString.__Internal Signature; - - [FieldOffset(288)] - public global::Std.Cxx11.BasicString.__Internal Body; - - [FieldOffset(320)] - public global::CppSharp.Parser.AST.CallingConvention callingConvention; - - [FieldOffset(328)] - internal global::Std.Vector.__Internal Parameters; - - [FieldOffset(352)] - public global::System.IntPtr specializationInfo; - - [FieldOffset(360)] - public global::System.IntPtr instantiatedFrom; - - [FieldOffset(368)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(384)] - public byte isVirtual; - - [FieldOffset(385)] - public byte isStatic; - - [FieldOffset(386)] - public byte isConst; - - [FieldOffset(387)] - public byte isExplicit; - - [FieldOffset(388)] - public byte isOverride; - - [FieldOffset(392)] - public global::CppSharp.Parser.AST.CXXMethodKind methodKind; - - [FieldOffset(396)] - public byte isDefaultConstructor; - - [FieldOffset(397)] - public byte isCopyConstructor; - - [FieldOffset(398)] - public byte isMoveConstructor; - - [FieldOffset(400)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; - - [FieldOffset(416)] - public global::CppSharp.Parser.AST.RefQualifierKind refQualifier; + [FieldOffset(232)] + public global::System.IntPtr describedAliasTemplate; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6MethodD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Method(native.ToPointer(), skipVTables); + return new TypeAlias(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Method __CreateInstance(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) { - return new Method(native, skipVTables); + return new TypeAlias(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Method.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAlias.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); - global::CppSharp.Parser.AST.Method.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); + global::CppSharp.Parser.AST.TypeAlias.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Method(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) + private TypeAlias(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Method(void* native, bool skipVTables = false) + protected TypeAlias(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -7454,19 +8253,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Method() + public TypeAlias() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Method(global::CppSharp.Parser.AST.Method _0) + public TypeAlias(global::CppSharp.Parser.AST.TypeAlias _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -7485,153 +8284,28 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public bool IsVirtual - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); - } - } - - public bool IsStatic - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic = (byte) (value ? 1 : 0); - } - } - - public bool IsConst - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst = (byte) (value ? 1 : 0); - } - } - - public bool IsExplicit - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit = (byte) (value ? 1 : 0); - } - } - - public bool IsOverride - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride = (byte) (value ? 1 : 0); - } - } - - public global::CppSharp.Parser.AST.CXXMethodKind MethodKind - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind = value; - } - } - - public bool IsDefaultConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor = (byte) (value ? 1 : 0); - } - } - - public bool IsCopyConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor = (byte) (value ? 1 : 0); - } - } - - public bool IsMoveConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor = (byte) (value ? 1 : 0); - } - } - - public global::CppSharp.Parser.AST.QualifiedType ConversionType - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType); - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.RefQualifierKind RefQualifier + public global::CppSharp.Parser.AST.TypeAliasTemplate DescribedAliasTemplate { get { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier; + global::CppSharp.Parser.AST.TypeAliasTemplate __result0; + if (((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate)) + __result0 = (global::CppSharp.Parser.AST.TypeAliasTemplate) global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate]; + else __result0 = global::CppSharp.Parser.AST.TypeAliasTemplate.__CreateInstance(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate); + return __result0; } set { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value; + ((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + public unsafe partial class Namespace : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 504)] + [StructLayout(LayoutKind.Explicit, Size = 488)] public new partial struct __Internal { [FieldOffset(0)] @@ -7680,305 +8354,250 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] + [FieldOffset(216)] internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(216)] + [FieldOffset(240)] internal global::Std.Vector.__Internal Enums; - [FieldOffset(240)] + [FieldOffset(264)] internal global::Std.Vector.__Internal Functions; - [FieldOffset(264)] + [FieldOffset(288)] internal global::Std.Vector.__Internal Classes; - [FieldOffset(288)] + [FieldOffset(312)] internal global::Std.Vector.__Internal Templates; - [FieldOffset(312)] + [FieldOffset(336)] internal global::Std.Vector.__Internal Typedefs; - [FieldOffset(336)] + [FieldOffset(360)] internal global::Std.Vector.__Internal TypeAliases; - [FieldOffset(360)] + [FieldOffset(384)] internal global::Std.Vector.__Internal Variables; - [FieldOffset(384)] + [FieldOffset(408)] internal global::Std.Vector.__Internal Friends; - [FieldOffset(408)] + [FieldOffset(432)] internal global::Std.Map.__Internal anonymous; - [FieldOffset(456)] + [FieldOffset(480)] public byte isAnonymous; - [FieldOffset(460)] - public global::CppSharp.Parser.AST.Enumeration.EnumModifiers modifiers; - - [FieldOffset(464)] - public global::System.IntPtr type; - - [FieldOffset(472)] - public global::System.IntPtr builtinType; - - [FieldOffset(480)] - internal global::Std.Vector.__Internal Items; + [FieldOffset(481)] + public byte isInline; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration8getItemsEj")] - internal static extern global::System.IntPtr GetItems_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration8addItemsERPNS2_4ItemE")] - internal static extern void AddItems_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration10clearItemsEv")] - internal static extern void ClearItems_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration13getItemsCountEv")] - internal static extern uint GetItemsCount_0(global::System.IntPtr instance); } - [Flags] - public enum EnumModifiers + internal static new global::CppSharp.Parser.AST.Namespace __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - Anonymous = 1, - Scoped = 2, - Flags = 4 + return new Namespace(native.ToPointer(), skipVTables); } - public unsafe partial class Item : global::CppSharp.Parser.AST.Declaration, IDisposable + internal static global::CppSharp.Parser.AST.Namespace __CreateInstance(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) { - [StructLayout(LayoutKind.Explicit, Size = 232)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; + return new Namespace(native, skipVTables); + } - [FieldOffset(32)] - public global::Std.Cxx11.BasicString.__Internal Name; + private static void* __CopyValue(global::CppSharp.Parser.AST.Namespace.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + global::CppSharp.Parser.AST.Namespace.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [FieldOffset(64)] - public global::Std.Cxx11.BasicString.__Internal USR; + private Namespace(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [FieldOffset(96)] - public global::Std.Cxx11.BasicString.__Internal DebugText; + protected Namespace(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [FieldOffset(128)] - public byte isIncomplete; + public Namespace() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(129)] - public byte isDependent; + public Namespace(global::CppSharp.Parser.AST.Namespace _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(130)] - public byte isImplicit; + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; + public bool IsInline + { + get + { + return ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline != 0; + } - [FieldOffset(144)] - public uint definitionOrder; + set + { + ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline = (byte) (value ? 1 : 0); + } + } + } - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; + public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Template, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 248)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; - [FieldOffset(176)] - public global::System.IntPtr originalPtr; + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; - [FieldOffset(184)] - public global::System.IntPtr comment; + [FieldOffset(8)] + public global::System.IntPtr _namespace; - [FieldOffset(192)] - public global::Std.Cxx11.BasicString.__Internal Expression; + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - [FieldOffset(224)] - public ulong value; + [FieldOffset(20)] + public int lineNumberStart; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(24)] + public int lineNumberEnd; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemC2ERKS3_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(32)] + public global::Std.Cxx11.BasicString.__Internal Name; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + [FieldOffset(64)] + public global::Std.Cxx11.BasicString.__Internal USR; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4Item13getExpressionEv")] - internal static extern global::System.IntPtr Expression_0(global::System.IntPtr instance); + [FieldOffset(96)] + public global::Std.Cxx11.BasicString.__Internal DebugText; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4Item13setExpressionEPKc")] - internal static extern void SetExpression_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - } + [FieldOffset(128)] + public byte isIncomplete; - internal static new global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new Item(native.ToPointer(), skipVTables); - } + [FieldOffset(129)] + public byte isDependent; - internal static global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) - { - return new Item(native, skipVTables); - } + [FieldOffset(130)] + public byte isImplicit; - private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); - global::CppSharp.Parser.AST.Enumeration.Item.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; - private Item(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [FieldOffset(144)] + public uint definitionOrder; - protected Item(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; - public Item() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; - public Item(global::CppSharp.Parser.AST.Enumeration.Item _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(200)] + public global::System.IntPtr originalPtr; - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } + [FieldOffset(208)] + public global::System.IntPtr comment; - public ulong Value - { - get - { - return ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value; - } + [FieldOffset(216)] + public global::System.IntPtr TemplatedDecl; - set - { - ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value = value; - } - } + [FieldOffset(224)] + internal global::Std.Vector.__Internal Parameters; - public string Expression - { - get - { - var __ret = __Internal.Expression_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - set - { - __Internal.SetExpression_0((__Instance + __PointerAdjustment), value); - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Enumeration(native.ToPointer(), skipVTables); + return new TypeAliasTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) { - return new Enumeration(native, skipVTables); + return new TypeAliasTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); - global::CppSharp.Parser.AST.Enumeration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); + global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Enumeration(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) + private TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Enumeration(void* native, bool skipVTables = false) + protected TypeAliasTemplate(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -7987,19 +8606,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Enumeration() + public TypeAliasTemplate() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Enumeration(global::CppSharp.Parser.AST.Enumeration _0) + public TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8017,93 +8636,11 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - - public global::CppSharp.Parser.AST.Enumeration.Item GetItems(uint i) - { - var __ret = __Internal.GetItems_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Enumeration.Item __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Enumeration.Item) global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Enumeration.Item.__CreateInstance(__ret); - return __result0; - } - - public void AddItems(global::CppSharp.Parser.AST.Enumeration.Item s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddItems_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearItems() - { - __Internal.ClearItems_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.Enumeration.EnumModifiers Modifiers - { - get - { - return ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers; - } - - set - { - ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers = value; - } - } - - public global::CppSharp.Parser.AST.Type Type - { - get - { - global::CppSharp.Parser.AST.Type __result0; - if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type)) - __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type]; - else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public global::CppSharp.Parser.AST.BuiltinType BuiltinType - { - get - { - global::CppSharp.Parser.AST.BuiltinType __result0; - if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType)) - __result0 = (global::CppSharp.Parser.AST.BuiltinType) global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType]; - else __result0 = global::CppSharp.Parser.AST.BuiltinType.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public uint ItemsCount - { - get - { - var __ret = __Internal.GetItemsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } } - public unsafe partial class Variable : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class ClassTemplate : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 240)] + [StructLayout(LayoutKind.Explicit, Size = 272)] public new partial struct __Internal { [FieldOffset(0)] @@ -8152,68 +8689,84 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - public global::Std.Cxx11.BasicString.__Internal Mangled; + [FieldOffset(216)] + public global::System.IntPtr TemplatedDecl; [FieldOffset(224)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + internal global::Std.Vector.__Internal Parameters; + + [FieldOffset(248)] + internal global::Std.Vector.__Internal Specializations; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8VariableC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8VariableC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8VariableD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Variable10getMangledEv")] - internal static extern global::System.IntPtr Mangled_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate18getSpecializationsEj")] + internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Variable10setMangledEPKc")] - internal static extern void SetMangled_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate18addSpecializationsERPNS1_27ClassTemplateSpecializationE")] + internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate20clearSpecializationsEv")] + internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate23getSpecializationsCountEv")] + internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Variable __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Variable(native.ToPointer(), skipVTables); + return new ClassTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Variable __CreateInstance(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) { - return new Variable(native, skipVTables); + return new ClassTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Variable.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); - global::CppSharp.Parser.AST.Variable.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); + global::CppSharp.Parser.AST.ClassTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Variable(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) + private ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Variable(void* native, bool skipVTables = false) + protected ClassTemplate(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -8222,19 +8775,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Variable() + public ClassTemplate() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Variable(global::CppSharp.Parser.AST.Variable _0) + public ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8253,191 +8806,245 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public global::CppSharp.Parser.AST.ClassTemplateSpecialization GetSpecializations(uint i) + { + var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.ClassTemplateSpecialization __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.ClassTemplateSpecialization) global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.ClassTemplateSpecialization.__CreateInstance(__ret); + return __result0; + } + + public void AddSpecializations(global::CppSharp.Parser.AST.ClassTemplateSpecialization s) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType); - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); + } - set - { - ((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + public void ClearSpecializations() + { + __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); } - public string Mangled + public uint SpecializationsCount { get { - var __ret = __Internal.Mangled_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetMangled_0((__Instance + __PointerAdjustment), value); + var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class BaseClassSpecifier : IDisposable + public unsafe partial class FunctionTemplate : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 272)] + public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isVirtual; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr type; + public global::System.IntPtr _namespace; [FieldOffset(16)] - public int offset; + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.Cxx11.BasicString.__Internal Name; + + [FieldOffset(64)] + public global::Std.Cxx11.BasicString.__Internal USR; + + [FieldOffset(96)] + public global::Std.Cxx11.BasicString.__Internal DebugText; + + [FieldOffset(128)] + public byte isIncomplete; + + [FieldOffset(129)] + public byte isDependent; + + [FieldOffset(130)] + public byte isImplicit; + + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(144)] + public uint definitionOrder; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] + public global::System.IntPtr originalPtr; + + [FieldOffset(208)] + public global::System.IntPtr comment; + + [FieldOffset(216)] + public global::System.IntPtr TemplatedDecl; + + [FieldOffset(224)] + internal global::Std.Vector.__Internal Parameters; + + [FieldOffset(248)] + internal global::Std.Vector.__Internal Specializations; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18BaseClassSpecifierC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18BaseClassSpecifierC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate18getSpecializationsEj")] + internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate18addSpecializationsERPNS1_30FunctionTemplateSpecializationE")] + internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); - internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate20clearSpecializationsEv")] + internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate23getSpecializationsCountEv")] + internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new BaseClassSpecifier(native.ToPointer(), skipVTables); + return new FunctionTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) { - return new BaseClassSpecifier(native, skipVTables); + return new FunctionTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); - *(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) ret = native; + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); + global::CppSharp.Parser.AST.FunctionTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) + private FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected BaseClassSpecifier(void* native, bool skipVTables = false) + protected FunctionTemplate(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public BaseClassSpecifier() + public FunctionTemplate() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier _0) + public FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.BaseClassSpecifier __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.AccessSpecifier Access + public global::CppSharp.Parser.AST.FunctionTemplateSpecialization GetSpecializations(uint i) { - get - { - return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access = value; - } + var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.FunctionTemplateSpecialization __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.FunctionTemplateSpecialization) global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__CreateInstance(__ret); + return __result0; } - public bool IsVirtual + public void AddSpecializations(global::CppSharp.Parser.AST.FunctionTemplateSpecialization s) { - get - { - return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual != 0; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.Type Type + public void ClearSpecializations() { - get - { - global::CppSharp.Parser.AST.Type __result0; - if (((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type)) - __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type]; - else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); } - public int Offset + public uint SpecializationsCount { get { - return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset = value; + var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class Field : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class Variable : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 224)] + [StructLayout(LayoutKind.Explicit, Size = 264)] public new partial struct __Internal { [FieldOffset(0)] @@ -8486,64 +9093,71 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(216)] + public global::Std.Cxx11.BasicString.__Internal Mangled; - [FieldOffset(208)] - public global::System.IntPtr _class; + [FieldOffset(248)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(216)] - public byte isBitField; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8VariableC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(220)] - public uint bitWidth; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8VariableC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5FieldC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST8VariableD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5FieldC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST8Variable10getMangledEv")] + internal static extern global::System.IntPtr Mangled_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5FieldD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST8Variable10setMangledEPKc")] + internal static extern void SetMangled_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - internal static new global::CppSharp.Parser.AST.Field __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Variable __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Field(native.ToPointer(), skipVTables); + return new Variable(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Field __CreateInstance(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Variable __CreateInstance(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) { - return new Field(native, skipVTables); + return new Variable(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Field.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Variable.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); - global::CppSharp.Parser.AST.Field.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); + global::CppSharp.Parser.AST.Variable.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Field(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) + private Variable(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Field(void* native, bool skipVTables = false) + protected Variable(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -8552,19 +9166,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Field() + public Variable() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Field(global::CppSharp.Parser.AST.Field _0) + public Variable(global::CppSharp.Parser.AST.Variable _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8587,63 +9201,33 @@ namespace CppSharp { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.Class Class - { - get - { - global::CppSharp.Parser.AST.Class __result0; - if (((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public bool IsBitField - { - get - { - return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField != 0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public uint BitWidth + public string Mangled { get { - return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth; + var __ret = __Internal.Mangled_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth = value; + __Internal.SetMangled_0((__Instance + __PointerAdjustment), value); } } } - public unsafe partial class AccessSpecifierDecl : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class Friend : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 192)] + [StructLayout(LayoutKind.Explicit, Size = 224)] public new partial struct __Internal { [FieldOffset(0)] @@ -8692,52 +9276,58 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; + [FieldOffset(216)] + public global::System.IntPtr declaration; + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST6FriendC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST6FriendC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST6FriendD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Friend __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new AccessSpecifierDecl(native.ToPointer(), skipVTables); + return new Friend(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Friend __CreateInstance(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) { - return new AccessSpecifierDecl(native, skipVTables); + return new Friend(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Friend.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); - global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); + global::CppSharp.Parser.AST.Friend.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) + private Friend(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected AccessSpecifierDecl(void* native, bool skipVTables = false) + protected Friend(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -8746,19 +9336,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public AccessSpecifierDecl() + public Friend() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl _0) + public Friend(global::CppSharp.Parser.AST.Friend _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8776,263 +9366,222 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - } - public unsafe partial class Class : global::CppSharp.Parser.AST.DeclarationContext, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 584)] - public new partial struct __Internal + public global::CppSharp.Parser.AST.Declaration Declaration { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.Cxx11.BasicString.__Internal Name; - - [FieldOffset(64)] - public global::Std.Cxx11.BasicString.__Internal USR; - - [FieldOffset(96)] - public global::Std.Cxx11.BasicString.__Internal DebugText; - - [FieldOffset(128)] - public byte isIncomplete; - - [FieldOffset(129)] - public byte isDependent; - - [FieldOffset(130)] - public byte isImplicit; - - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(144)] - public uint definitionOrder; - - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(176)] - public global::System.IntPtr originalPtr; - - [FieldOffset(184)] - public global::System.IntPtr comment; - - [FieldOffset(192)] - internal global::Std.Vector.__Internal Namespaces; - - [FieldOffset(216)] - internal global::Std.Vector.__Internal Enums; - - [FieldOffset(240)] - internal global::Std.Vector.__Internal Functions; - - [FieldOffset(264)] - internal global::Std.Vector.__Internal Classes; - - [FieldOffset(288)] - internal global::Std.Vector.__Internal Templates; - - [FieldOffset(312)] - internal global::Std.Vector.__Internal Typedefs; - - [FieldOffset(336)] - internal global::Std.Vector.__Internal TypeAliases; - - [FieldOffset(360)] - internal global::Std.Vector.__Internal Variables; - - [FieldOffset(384)] - internal global::Std.Vector.__Internal Friends; - - [FieldOffset(408)] - internal global::Std.Map.__Internal anonymous; - - [FieldOffset(456)] - public byte isAnonymous; - - [FieldOffset(464)] - internal global::Std.Vector.__Internal Bases; - - [FieldOffset(488)] - internal global::Std.Vector.__Internal Fields; - - [FieldOffset(512)] - internal global::Std.Vector.__Internal Methods; - - [FieldOffset(536)] - internal global::Std.Vector.__Internal Specifiers; - - [FieldOffset(560)] - public byte isPOD; - - [FieldOffset(561)] - public byte isAbstract; - - [FieldOffset(562)] - public byte isUnion; - - [FieldOffset(563)] - public byte isDynamic; - - [FieldOffset(564)] - public byte isPolymorphic; - - [FieldOffset(565)] - public byte hasNonTrivialDefaultConstructor; - - [FieldOffset(566)] - public byte hasNonTrivialCopyConstructor; - - [FieldOffset(567)] - public byte hasNonTrivialDestructor; + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration); + return __result0; + } - [FieldOffset(568)] - public byte isExternCContext; + set + { + ((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + } - [FieldOffset(569)] - public byte isInjected; + public unsafe partial class Statement : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 48)] + public partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; - [FieldOffset(576)] - public global::System.IntPtr layout; + [FieldOffset(8)] + public global::System.IntPtr decl; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5ClassC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(16)] + public global::Std.Cxx11.BasicString.__Internal String; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5ClassC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST9StatementC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5ClassD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9StatementD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class8getBasesEj")] - internal static extern global::System.IntPtr GetBases_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST9Statement9getStringEv")] + internal static extern global::System.IntPtr String_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class8addBasesERPNS1_18BaseClassSpecifierE")] - internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST9Statement9setStringEPKc")] + internal static extern void SetString_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class10clearBasesEv")] - internal static extern void ClearBases_0(global::System.IntPtr instance); + public global::System.IntPtr __Instance { get; protected set; } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class9getFieldsEj")] - internal static extern global::System.IntPtr GetFields_0(global::System.IntPtr instance, uint i); + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class9addFieldsERPNS1_5FieldE")] - internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); + protected bool __ownsNativeInstance; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class11clearFieldsEv")] - internal static extern void ClearFields_0(global::System.IntPtr instance); + internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Statement(native.ToPointer(), skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class10getMethodsEj")] - internal static extern global::System.IntPtr GetMethods_0(global::System.IntPtr instance, uint i); + internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + { + return new Statement(native, skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class10addMethodsERPNS1_6MethodE")] - internal static extern void AddMethods_0(global::System.IntPtr instance, global::System.IntPtr s); + private static void* __CopyValue(global::CppSharp.Parser.AST.Statement.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); + global::CppSharp.Parser.AST.Statement.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class12clearMethodsEv")] - internal static extern void ClearMethods_0(global::System.IntPtr instance); + private Statement(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class13getSpecifiersEj")] - internal static extern global::System.IntPtr GetSpecifiers_0(global::System.IntPtr instance, uint i); + protected Statement(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class13addSpecifiersERPNS1_19AccessSpecifierDeclE")] - internal static extern void AddSpecifiers_0(global::System.IntPtr instance, global::System.IntPtr s); + public Statement(global::CppSharp.Parser.AST.Statement _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class15clearSpecifiersEv")] - internal static extern void ClearSpecifiers_0(global::System.IntPtr instance); + public void Dispose() + { + Dispose(disposing: true); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class13getBasesCountEv")] - internal static extern uint GetBasesCount_0(global::System.IntPtr instance); + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Statement __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class14getFieldsCountEv")] - internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); + public global::CppSharp.Parser.AST.StatementClass Class + { + get + { + return ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class; + } + + set + { + ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class = value; + } + } + + public global::CppSharp.Parser.AST.Declaration Decl + { + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public string String + { + get + { + var __ret = __Internal.String_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetString_0((__Instance + __PointerAdjustment), value); + } + } + } + + public unsafe partial class Expression : global::CppSharp.Parser.AST.Statement, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 48)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; + + [FieldOffset(8)] + public global::System.IntPtr decl; + + [FieldOffset(16)] + public global::Std.Cxx11.BasicString.__Internal String; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class15getMethodsCountEv")] - internal static extern uint GetMethodsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST10ExpressionC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class18getSpecifiersCountEv")] - internal static extern uint GetSpecifiersCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST10ExpressionD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Class __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Expression __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Class(native.ToPointer(), skipVTables); + return new Expression(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Class __CreateInstance(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Expression __CreateInstance(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) { - return new Class(native, skipVTables); + return new Expression(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Class.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Expression.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); - global::CppSharp.Parser.AST.Class.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); + global::CppSharp.Parser.AST.Expression.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Class(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) + private Expression(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Class(void* native, bool skipVTables = false) + protected Expression(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -9041,19 +9590,10 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Class() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public Class(global::CppSharp.Parser.AST.Class _0) + public Expression(global::CppSharp.Parser.AST.Expression _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -9064,423 +9604,375 @@ namespace CppSharp public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Declaration __dummy; + global::CppSharp.Parser.AST.Statement __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + } - public global::CppSharp.Parser.AST.BaseClassSpecifier GetBases(uint i) + public unsafe partial class BinaryOperator : global::CppSharp.Parser.AST.Expression, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 96)] + public new partial struct __Internal { - var __ret = __Internal.GetBases_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.BaseClassSpecifier __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.BaseClassSpecifier) global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.BaseClassSpecifier.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; + + [FieldOffset(8)] + public global::System.IntPtr decl; + + [FieldOffset(16)] + public global::Std.Cxx11.BasicString.__Internal String; + + [FieldOffset(48)] + public global::System.IntPtr LHS; + + [FieldOffset(56)] + public global::System.IntPtr RHS; - public void AddBases(global::CppSharp.Parser.AST.BaseClassSpecifier s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(64)] + public global::Std.Cxx11.BasicString.__Internal OpcodeStr; - public void ClearBases() - { - __Internal.ClearBases_0((__Instance + __PointerAdjustment)); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperatorC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - public global::CppSharp.Parser.AST.Field GetFields(uint i) - { - var __ret = __Internal.GetFields_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Field __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Field.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Field) global::CppSharp.Parser.AST.Field.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Field.__CreateInstance(__ret); - return __result0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperatorD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - public void AddFields(global::CppSharp.Parser.AST.Field s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperator12getOpcodeStrEv")] + internal static extern global::System.IntPtr OpcodeStr_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperator12setOpcodeStrEPKc")] + internal static extern void SetOpcodeStr_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - public void ClearFields() + internal static new global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - __Internal.ClearFields_0((__Instance + __PointerAdjustment)); + return new BinaryOperator(native.ToPointer(), skipVTables); } - public global::CppSharp.Parser.AST.Method GetMethods(uint i) + internal static global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) { - var __ret = __Internal.GetMethods_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Method __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Method.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Method) global::CppSharp.Parser.AST.Method.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Method.__CreateInstance(__ret); - return __result0; + return new BinaryOperator(native, skipVTables); } - public void AddMethods(global::CppSharp.Parser.AST.Method s) + private static void* __CopyValue(global::CppSharp.Parser.AST.BinaryOperator.__Internal native) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddMethods_0((__Instance + __PointerAdjustment), __arg0); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); + global::CppSharp.Parser.AST.BinaryOperator.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public void ClearMethods() + private BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - __Internal.ClearMethods_0((__Instance + __PointerAdjustment)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public global::CppSharp.Parser.AST.AccessSpecifierDecl GetSpecifiers(uint i) + protected BinaryOperator(void* native, bool skipVTables = false) + : base((void*) null) { - var __ret = __Internal.GetSpecifiers_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.AccessSpecifierDecl __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.AccessSpecifierDecl) global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.AccessSpecifierDecl.__CreateInstance(__ret); - return __result0; + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public void AddSpecifiers(global::CppSharp.Parser.AST.AccessSpecifierDecl s) + public BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator _0) + : this((void*) null) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecifiers_0((__Instance + __PointerAdjustment), __arg0); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void ClearSpecifiers() + public override void Dispose(bool disposing) { - __Internal.ClearSpecifiers_0((__Instance + __PointerAdjustment)); + global::CppSharp.Parser.AST.Statement __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public bool IsPOD + public global::CppSharp.Parser.AST.Expression LHS { get { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD != 0; + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS); + return __result0; } set { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsAbstract + public global::CppSharp.Parser.AST.Expression RHS { get { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract != 0; + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS); + return __result0; } set { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsUnion + public string OpcodeStr { get { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion != 0; + var __ret = __Internal.OpcodeStr_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion = (byte) (value ? 1 : 0); + __Internal.SetOpcodeStr_0((__Instance + __PointerAdjustment), value); } } + } - public bool IsDynamic + public unsafe partial class CallExpr : global::CppSharp.Parser.AST.Expression, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 72)] + public new partial struct __Internal { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic != 0; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic = (byte) (value ? 1 : 0); - } - } + [FieldOffset(8)] + public global::System.IntPtr decl; - public bool IsPolymorphic - { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic != 0; - } + [FieldOffset(16)] + public global::Std.Cxx11.BasicString.__Internal String; - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic = (byte) (value ? 1 : 0); - } - } + [FieldOffset(48)] + internal global::Std.Vector.__Internal Arguments; - public bool HasNonTrivialDefaultConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor != 0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExprC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor = (byte) (value ? 1 : 0); - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExprD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - public bool HasNonTrivialCopyConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor != 0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr12getArgumentsEj")] + internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor = (byte) (value ? 1 : 0); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr12addArgumentsERPNS1_10ExpressionE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - public bool HasNonTrivialDestructor + internal static new global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor != 0; - } + return new CallExpr(native.ToPointer(), skipVTables); + } - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor = (byte) (value ? 1 : 0); - } + internal static global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) + { + return new CallExpr(native, skipVTables); } - public bool IsExternCContext + private static void* __CopyValue(global::CppSharp.Parser.AST.CallExpr.__Internal native) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext != 0; - } + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); + global::CppSharp.Parser.AST.CallExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext = (byte) (value ? 1 : 0); - } + private CallExpr(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public bool IsInjected + protected CallExpr(void* native, bool skipVTables = false) + : base((void*) null) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected = (byte) (value ? 1 : 0); - } + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public global::CppSharp.Parser.AST.ClassLayout Layout + public CallExpr(global::CppSharp.Parser.AST.CallExpr _0) + : this((void*) null) { - get - { - global::CppSharp.Parser.AST.ClassLayout __result0; - if (((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout)) - __result0 = (global::CppSharp.Parser.AST.ClassLayout) global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap[((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout]; - else __result0 = global::CppSharp.Parser.AST.ClassLayout.__CreateInstance(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout); - return __result0; - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Statement __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public uint BasesCount + public global::CppSharp.Parser.AST.Expression GetArguments(uint i) { - get - { - var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Expression __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); + return __result0; } - public uint FieldsCount + public void AddArguments(global::CppSharp.Parser.AST.Expression s) { - get - { - var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); } - public uint MethodsCount + public void ClearArguments() { - get - { - var __ret = __Internal.GetMethodsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint SpecifiersCount + public uint ArgumentsCount { get { - var __ret = __Internal.GetSpecifiersCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class Template : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class CXXConstructExpr : global::CppSharp.Parser.AST.Expression, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 224)] + [StructLayout(LayoutKind.Explicit, Size = 72)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::CppSharp.Parser.AST.StatementClass _class; [FieldOffset(8)] - public global::System.IntPtr _namespace; + public global::System.IntPtr decl; [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.Cxx11.BasicString.__Internal Name; - - [FieldOffset(64)] - public global::Std.Cxx11.BasicString.__Internal USR; - - [FieldOffset(96)] - public global::Std.Cxx11.BasicString.__Internal DebugText; - - [FieldOffset(128)] - public byte isIncomplete; - - [FieldOffset(129)] - public byte isDependent; - - [FieldOffset(130)] - public byte isImplicit; - - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(144)] - public uint definitionOrder; - - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(176)] - public global::System.IntPtr originalPtr; - - [FieldOffset(184)] - public global::System.IntPtr comment; - - [FieldOffset(192)] - public global::System.IntPtr TemplatedDecl; - - [FieldOffset(200)] - internal global::Std.Vector.__Internal Parameters; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + public global::Std.Cxx11.BasicString.__Internal String; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2Ev")] - internal static extern void ctor_1(global::System.IntPtr instance); + [FieldOffset(48)] + internal global::Std.Vector.__Internal Arguments; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2ERKS2_")] - internal static extern void cctor_3(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExprC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExprD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Template13getParametersEj")] - internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr12getArgumentsEj")] + internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Template13addParametersERPNS1_11DeclarationE")] - internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr12addArgumentsERPNS1_10ExpressionE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Template15clearParametersEv")] - internal static extern void ClearParameters_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Template18getParametersCountEv")] - internal static extern uint GetParametersCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Template __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Template(native.ToPointer(), skipVTables); + return new CXXConstructExpr(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Template __CreateInstance(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) { - return new Template(native, skipVTables); + return new CXXConstructExpr(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Template.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); - global::CppSharp.Parser.AST.Template.__Internal.cctor_3(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); + global::CppSharp.Parser.AST.CXXConstructExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Template(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) + private CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Template(void* native, bool skipVTables = false) + protected CXXConstructExpr(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -9489,39 +9981,21 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Template(global::CppSharp.Parser.AST.DeclarationKind kind) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); - } - - public Template() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_1((__Instance + __PointerAdjustment)); - } - - public Template(global::CppSharp.Parser.AST.Template _0) + public CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_3((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Declaration __dummy; + global::CppSharp.Parser.AST.Statement __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -9529,187 +10003,143 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Declaration GetParameters(uint i) + public global::CppSharp.Parser.AST.Expression GetArguments(uint i) { - var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Declaration __result0; + var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Expression __result0; if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(__ret); + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); return __result0; } - public void AddParameters(global::CppSharp.Parser.AST.Declaration s) + public void AddArguments(global::CppSharp.Parser.AST.Expression s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearParameters() - { - __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); - } - - public static implicit operator global::CppSharp.Parser.AST.Template(global::CppSharp.Parser.AST.DeclarationKind kind) - { - return new global::CppSharp.Parser.AST.Template(kind); + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.Declaration TemplatedDecl - { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + public void ClearArguments() + { + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint ParametersCount + public uint ArgumentsCount { get { - var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class FunctionTemplateSpecialization : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 224)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 48)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::System.IntPtr _template; [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; + internal global::Std.Vector.__Internal Arguments; [FieldOffset(32)] - public global::Std.Cxx11.BasicString.__Internal Name; - - [FieldOffset(64)] - public global::Std.Cxx11.BasicString.__Internal USR; - - [FieldOffset(96)] - public global::Std.Cxx11.BasicString.__Internal DebugText; - - [FieldOffset(128)] - public byte isIncomplete; - - [FieldOffset(129)] - public byte isDependent; - - [FieldOffset(130)] - public byte isImplicit; - - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(144)] - public uint definitionOrder; + public global::System.IntPtr specializedFunction; - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; + [FieldOffset(40)] + public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; - [FieldOffset(176)] - public global::System.IntPtr originalPtr; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(184)] - public global::System.IntPtr comment; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(192)] - public global::System.IntPtr TemplatedDecl; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - [FieldOffset(200)] - internal global::Std.Vector.__Internal Parameters; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization12getArgumentsEj")] + internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypeAliasTemplate(native.ToPointer(), skipVTables); + return new FunctionTemplateSpecialization(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) { - return new TypeAliasTemplate(native, skipVTables); + return new FunctionTemplateSpecialization(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); - global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); + global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) + private FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypeAliasTemplate(void* native, bool skipVTables = false) - : base((void*) null) + protected FunctionTemplateSpecialization(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public TypeAliasTemplate() - : this((void*) null) + public FunctionTemplateSpecialization() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate _0) - : this((void*) null) + public FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -9718,20 +10148,103 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.FunctionTemplateSpecialization __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + + public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) + { + var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); + __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); + } + + public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearArguments() + { + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.FunctionTemplate Template + { + get + { + global::CppSharp.Parser.AST.FunctionTemplate __result0; + if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template)) + __result0 = (global::CppSharp.Parser.AST.FunctionTemplate) global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template]; + else __result0 = global::CppSharp.Parser.AST.FunctionTemplate.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public global::CppSharp.Parser.AST.Function SpecializedFunction + { + get + { + global::CppSharp.Parser.AST.Function __result0; + if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction)) + __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction]; + else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public global::CppSharp.Parser.AST.TemplateSpecializationKind SpecializationKind + { + get + { + return ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; + } + } + + public uint ArgumentsCount + { + get + { + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } } - public unsafe partial class TemplateParameter : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class AccessSpecifierDecl : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 208)] + [StructLayout(LayoutKind.Explicit, Size = 216)] public new partial struct __Internal { [FieldOffset(0)] @@ -9780,61 +10293,55 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - public uint depth; - - [FieldOffset(196)] - public uint index; - - [FieldOffset(200)] - public byte isParameterPack; - [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateParameter(native.ToPointer(), skipVTables); + return new AccessSpecifierDecl(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) { - return new TemplateParameter(native, skipVTables); + return new AccessSpecifierDecl(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); - global::CppSharp.Parser.AST.TemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) + private AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateParameter(void* native, bool skipVTables = false) + protected AccessSpecifierDecl(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -9843,19 +10350,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) + public AccessSpecifierDecl() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter _0) + public AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -9873,55 +10380,11 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - - public static implicit operator global::CppSharp.Parser.AST.TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) - { - return new global::CppSharp.Parser.AST.TemplateParameter(kind); - } - - public uint Depth - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth = value; - } - } - - public uint Index - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index = value; - } - } - - public bool IsParameterPack - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack != 0; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); - } - } } - public unsafe partial class TemplateTemplateParameter : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 232)] + [StructLayout(LayoutKind.Explicit, Size = 448)] public new partial struct __Internal { [FieldOffset(0)] @@ -9970,67 +10433,142 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(216)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(200)] + [FieldOffset(232)] + public byte isReturnIndirect; + + [FieldOffset(233)] + public byte hasThisReturn; + + [FieldOffset(234)] + public byte isConstExpr; + + [FieldOffset(235)] + public byte isVariadic; + + [FieldOffset(236)] + public byte isInline; + + [FieldOffset(237)] + public byte isPure; + + [FieldOffset(238)] + public byte isDeleted; + + [FieldOffset(240)] + public global::CppSharp.Parser.AST.FriendKind friendKind; + + [FieldOffset(244)] + public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; + + [FieldOffset(248)] + public global::Std.Cxx11.BasicString.__Internal Mangled; + + [FieldOffset(280)] + public global::Std.Cxx11.BasicString.__Internal Signature; + + [FieldOffset(312)] + public global::Std.Cxx11.BasicString.__Internal Body; + + [FieldOffset(344)] + public global::CppSharp.Parser.AST.CallingConvention callingConvention; + + [FieldOffset(352)] internal global::Std.Vector.__Internal Parameters; - [FieldOffset(224)] - public byte isParameterPack; + [FieldOffset(376)] + public global::System.IntPtr specializationInfo; - [FieldOffset(225)] - public byte isPackExpansion; + [FieldOffset(384)] + public global::System.IntPtr instantiatedFrom; - [FieldOffset(226)] - public byte isExpandedParameterPack; + [FieldOffset(392)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(408)] + public byte isVirtual; + + [FieldOffset(409)] + public byte isStatic; + + [FieldOffset(410)] + public byte isConst; + + [FieldOffset(411)] + public byte isExplicit; + + [FieldOffset(412)] + public byte isOverride; + + [FieldOffset(416)] + public global::CppSharp.Parser.AST.CXXMethodKind methodKind; + + [FieldOffset(420)] + public byte isDefaultConstructor; + + [FieldOffset(421)] + public byte isCopyConstructor; + + [FieldOffset(422)] + public byte isMoveConstructor; + + [FieldOffset(424)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; + + [FieldOffset(440)] + public global::CppSharp.Parser.AST.RefQualifierKind refQualifier; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST6MethodD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateTemplateParameter(native.ToPointer(), skipVTables); + return new Method(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Method __CreateInstance(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) { - return new TemplateTemplateParameter(native, skipVTables); + return new Method(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Method.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); - global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); + global::CppSharp.Parser.AST.Method.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) + private Method(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateTemplateParameter(void* native, bool skipVTables = false) + protected Method(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10039,242 +10577,338 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateTemplateParameter() + public Method() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter _0) + public Method(global::CppSharp.Parser.AST.Method _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public bool IsVirtual + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); + } + } + + public bool IsStatic + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic = (byte) (value ? 1 : 0); + } + } + + public bool IsConst + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst = (byte) (value ? 1 : 0); + } + } + + public bool IsExplicit + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit = (byte) (value ? 1 : 0); + } + } + + public bool IsOverride + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride = (byte) (value ? 1 : 0); + } + } + + public global::CppSharp.Parser.AST.CXXMethodKind MethodKind + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind = value; + } + } + + public bool IsDefaultConstructor + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor = (byte) (value ? 1 : 0); + } } - public override void Dispose(bool disposing) + public bool IsCopyConstructor { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor = (byte) (value ? 1 : 0); + } } - public bool IsParameterPack + public bool IsMoveConstructor { get { - return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack != 0; + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor != 0; } set { - ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor = (byte) (value ? 1 : 0); } } - public bool IsPackExpansion + public global::CppSharp.Parser.AST.QualifiedType ConversionType { get { - return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType); } set { - ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public bool IsExpandedParameterPack + public global::CppSharp.Parser.AST.RefQualifierKind RefQualifier { get { - return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier; } set { - ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value; } } } - public unsafe partial class TypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable + public unsafe partial class BaseClassSpecifier : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 224)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 24)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public byte isVirtual; [FieldOffset(8)] - public global::System.IntPtr _namespace; + public global::System.IntPtr type; [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.Cxx11.BasicString.__Internal Name; - - [FieldOffset(64)] - public global::Std.Cxx11.BasicString.__Internal USR; - - [FieldOffset(96)] - public global::Std.Cxx11.BasicString.__Internal DebugText; - - [FieldOffset(128)] - public byte isIncomplete; - - [FieldOffset(129)] - public byte isDependent; - - [FieldOffset(130)] - public byte isImplicit; - - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(144)] - public uint definitionOrder; - - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(176)] - public global::System.IntPtr originalPtr; - - [FieldOffset(184)] - public global::System.IntPtr comment; - - [FieldOffset(192)] - public uint depth; - - [FieldOffset(196)] - public uint index; - - [FieldOffset(200)] - public byte isParameterPack; - - [FieldOffset(208)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal defaultArgument; + public int offset; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST18BaseClassSpecifierC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST18BaseClassSpecifierC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypeTemplateParameter(native.ToPointer(), skipVTables); + return new BaseClassSpecifier(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) { - return new TypeTemplateParameter(native, skipVTables); + return new BaseClassSpecifier(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); - global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); + *(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) ret = native; return ret.ToPointer(); } - private TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) + private BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypeTemplateParameter(void* native, bool skipVTables = false) - : base((void*) null) + protected BaseClassSpecifier(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public TypeTemplateParameter() - : this((void*) null) + public BaseClassSpecifier() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter _0) - : this((void*) null) + public BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) _0.__Instance); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.BaseClassSpecifier __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.QualifiedType DefaultArgument + public global::CppSharp.Parser.AST.AccessSpecifier Access { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument); + return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access; } set { - ((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access = value; + } + } + + public bool IsVirtual + { + get + { + return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual != 0; + } + + set + { + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); + } + } + + public global::CppSharp.Parser.AST.Type Type + { + get + { + global::CppSharp.Parser.AST.Type __result0; + if (((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type)) + __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type]; + else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public int Offset + { + get + { + return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset; + } + + set + { + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset = value; } } } - public unsafe partial class NonTypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable + public unsafe partial class Field : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 224)] + [StructLayout(LayoutKind.Explicit, Size = 248)] public new partial struct __Internal { [FieldOffset(0)] @@ -10323,73 +10957,67 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] - public global::System.IntPtr originalPtr; - - [FieldOffset(184)] - public global::System.IntPtr comment; - - [FieldOffset(192)] - public uint depth; - - [FieldOffset(196)] - public uint index; + internal global::Std.Vector.__Internal Redeclarations; [FieldOffset(200)] - public byte isParameterPack; + public global::System.IntPtr originalPtr; [FieldOffset(208)] - public global::System.IntPtr defaultArgument; + public global::System.IntPtr comment; [FieldOffset(216)] - public uint position; + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(220)] - public byte isPackExpansion; + [FieldOffset(232)] + public global::System.IntPtr _class; - [FieldOffset(221)] - public byte isExpandedParameterPack; + [FieldOffset(240)] + public byte isBitField; + + [FieldOffset(244)] + public uint bitWidth; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST5FieldC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST5FieldC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST5FieldD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Field __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new NonTypeTemplateParameter(native.ToPointer(), skipVTables); + return new Field(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Field __CreateInstance(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) { - return new NonTypeTemplateParameter(native, skipVTables); + return new Field(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Field.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); - global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); + global::CppSharp.Parser.AST.Field.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) + private Field(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected NonTypeTemplateParameter(void* native, bool skipVTables = false) + protected Field(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10398,19 +11026,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public NonTypeTemplateParameter() + public Field() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter _0) + public Field(global::CppSharp.Parser.AST.Field _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10429,67 +11057,67 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Expression DefaultArgument + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public uint Position + public global::CppSharp.Parser.AST.Class Class { get { - return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position; + global::CppSharp.Parser.AST.Class __result0; + if (((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class); + return __result0; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position = value; + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsPackExpansion + public bool IsBitField { get { - return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField != 0; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField = (byte) (value ? 1 : 0); } } - public bool IsExpandedParameterPack + public uint BitWidth { get { - return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth = value; } } } - public unsafe partial class ClassTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class TemplateParameter : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 248)] + [StructLayout(LayoutKind.Explicit, Size = 232)] public new partial struct __Internal { [FieldOffset(0)] @@ -10538,81 +11166,64 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(216)] + public uint depth; - [FieldOffset(200)] - internal global::Std.Vector.__Internal Parameters; + [FieldOffset(220)] + public uint index; [FieldOffset(224)] - internal global::Std.Vector.__Internal Specializations; + public byte isParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate18getSpecializationsEj")] - internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate18addSpecializationsERPNS1_27ClassTemplateSpecializationE")] - internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate20clearSpecializationsEv")] - internal static extern void ClearSpecializations_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate23getSpecializationsCountEv")] - internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassTemplate(native.ToPointer(), skipVTables); + return new TemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) { - return new ClassTemplate(native, skipVTables); + return new TemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); - global::CppSharp.Parser.AST.ClassTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); + global::CppSharp.Parser.AST.TemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) + private TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassTemplate(void* native, bool skipVTables = false) + protected TemplateParameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10621,19 +11232,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public ClassTemplate() + public TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate _0) + public TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10652,43 +11263,54 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.ClassTemplateSpecialization GetSpecializations(uint i) + public static implicit operator global::CppSharp.Parser.AST.TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) { - var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.ClassTemplateSpecialization __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.ClassTemplateSpecialization) global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.ClassTemplateSpecialization.__CreateInstance(__ret); - return __result0; + return new global::CppSharp.Parser.AST.TemplateParameter(kind); } - public void AddSpecializations(global::CppSharp.Parser.AST.ClassTemplateSpecialization s) + public uint Depth { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); + get + { + return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth = value; + } } - public void ClearSpecializations() + public uint Index { - __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); + get + { + return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index = value; + } } - public uint SpecializationsCount + public bool IsParameterPack { get { - var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); } } } - public unsafe partial class ClassTemplateSpecialization : global::CppSharp.Parser.AST.Class, IDisposable + public unsafe partial class TemplateTemplateParameter : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 624)] + [StructLayout(LayoutKind.Explicit, Size = 256)] public new partial struct __Internal { [FieldOffset(0)] @@ -10737,159 +11359,70 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(216)] - internal global::Std.Vector.__Internal Enums; - - [FieldOffset(240)] - internal global::Std.Vector.__Internal Functions; - - [FieldOffset(264)] - internal global::Std.Vector.__Internal Classes; - - [FieldOffset(288)] - internal global::Std.Vector.__Internal Templates; - - [FieldOffset(312)] - internal global::Std.Vector.__Internal Typedefs; - - [FieldOffset(336)] - internal global::Std.Vector.__Internal TypeAliases; - - [FieldOffset(360)] - internal global::Std.Vector.__Internal Variables; - - [FieldOffset(384)] - internal global::Std.Vector.__Internal Friends; - - [FieldOffset(408)] - internal global::Std.Map.__Internal anonymous; - - [FieldOffset(456)] - public byte isAnonymous; - - [FieldOffset(464)] - internal global::Std.Vector.__Internal Bases; - - [FieldOffset(488)] - internal global::Std.Vector.__Internal Fields; - - [FieldOffset(512)] - internal global::Std.Vector.__Internal Methods; - - [FieldOffset(536)] - internal global::Std.Vector.__Internal Specifiers; - - [FieldOffset(560)] - public byte isPOD; - - [FieldOffset(561)] - public byte isAbstract; - - [FieldOffset(562)] - public byte isUnion; - - [FieldOffset(563)] - public byte isDynamic; - - [FieldOffset(564)] - public byte isPolymorphic; - - [FieldOffset(565)] - public byte hasNonTrivialDefaultConstructor; - - [FieldOffset(566)] - public byte hasNonTrivialCopyConstructor; - - [FieldOffset(567)] - public byte hasNonTrivialDestructor; - - [FieldOffset(568)] - public byte isExternCContext; - - [FieldOffset(569)] - public byte isInjected; + public global::System.IntPtr TemplatedDecl; - [FieldOffset(576)] - public global::System.IntPtr layout; + [FieldOffset(224)] + internal global::Std.Vector.__Internal Parameters; - [FieldOffset(584)] - public global::System.IntPtr templatedDecl; + [FieldOffset(248)] + public byte isParameterPack; - [FieldOffset(592)] - internal global::Std.Vector.__Internal Arguments; + [FieldOffset(249)] + public byte isPackExpansion; - [FieldOffset(616)] - public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; + [FieldOffset(250)] + public byte isExpandedParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization12getArgumentsEj")] - internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassTemplateSpecialization(native.ToPointer(), skipVTables); + return new TemplateTemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) { - return new ClassTemplateSpecialization(native, skipVTables); + return new TemplateTemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); - global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); + global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) + private TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassTemplateSpecialization(void* native, bool skipVTables = false) + protected TemplateTemplateParameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10898,19 +11431,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public ClassTemplateSpecialization() + public TemplateTemplateParameter() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization _0) + public TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10929,70 +11462,49 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) - { - var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); - __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); - } - - public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearArguments() - { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.ClassTemplate TemplatedDecl + public bool IsParameterPack { get { - global::CppSharp.Parser.AST.ClassTemplate __result0; - if (((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl)) - __result0 = (global::CppSharp.Parser.AST.ClassTemplate) global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl]; - else __result0 = global::CppSharp.Parser.AST.ClassTemplate.__CreateInstance(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl); - return __result0; + return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack != 0; } set { - ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.TemplateSpecializationKind SpecializationKind + public bool IsPackExpansion { get { - return ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind; + return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; } set { - ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; + ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); } } - public uint ArgumentsCount + public bool IsExpandedParameterPack { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); } } } - public unsafe partial class ClassTemplatePartialSpecialization : global::CppSharp.Parser.AST.ClassTemplateSpecialization, IDisposable + public unsafe partial class NonTypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 624)] + [StructLayout(LayoutKind.Explicit, Size = 248)] public new partial struct __Internal { [FieldOffset(0)] @@ -11041,139 +11553,76 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(216)] - internal global::Std.Vector.__Internal Enums; - - [FieldOffset(240)] - internal global::Std.Vector.__Internal Functions; - - [FieldOffset(264)] - internal global::Std.Vector.__Internal Classes; - - [FieldOffset(288)] - internal global::Std.Vector.__Internal Templates; - - [FieldOffset(312)] - internal global::Std.Vector.__Internal Typedefs; - - [FieldOffset(336)] - internal global::Std.Vector.__Internal TypeAliases; - - [FieldOffset(360)] - internal global::Std.Vector.__Internal Variables; - - [FieldOffset(384)] - internal global::Std.Vector.__Internal Friends; - - [FieldOffset(408)] - internal global::Std.Map.__Internal anonymous; - - [FieldOffset(456)] - public byte isAnonymous; - - [FieldOffset(464)] - internal global::Std.Vector.__Internal Bases; - - [FieldOffset(488)] - internal global::Std.Vector.__Internal Fields; - - [FieldOffset(512)] - internal global::Std.Vector.__Internal Methods; - - [FieldOffset(536)] - internal global::Std.Vector.__Internal Specifiers; - - [FieldOffset(560)] - public byte isPOD; - - [FieldOffset(561)] - public byte isAbstract; - - [FieldOffset(562)] - public byte isUnion; - - [FieldOffset(563)] - public byte isDynamic; - - [FieldOffset(564)] - public byte isPolymorphic; - - [FieldOffset(565)] - public byte hasNonTrivialDefaultConstructor; - - [FieldOffset(566)] - public byte hasNonTrivialCopyConstructor; - - [FieldOffset(567)] - public byte hasNonTrivialDestructor; + public uint depth; - [FieldOffset(568)] - public byte isExternCContext; + [FieldOffset(220)] + public uint index; - [FieldOffset(569)] - public byte isInjected; + [FieldOffset(224)] + public byte isParameterPack; - [FieldOffset(576)] - public global::System.IntPtr layout; + [FieldOffset(232)] + public global::System.IntPtr defaultArgument; - [FieldOffset(584)] - public global::System.IntPtr templatedDecl; + [FieldOffset(240)] + public uint position; - [FieldOffset(592)] - internal global::Std.Vector.__Internal Arguments; + [FieldOffset(244)] + public byte isPackExpansion; - [FieldOffset(616)] - public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; + [FieldOffset(245)] + public byte isExpandedParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassTemplatePartialSpecialization(native.ToPointer(), skipVTables); + return new NonTypeTemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) { - return new ClassTemplatePartialSpecialization(native, skipVTables); + return new NonTypeTemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); - global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) + private NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassTemplatePartialSpecialization(void* native, bool skipVTables = false) + protected NonTypeTemplateParameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -11182,41 +11631,98 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public ClassTemplatePartialSpecialization() - : this((void*) null) + public NonTypeTemplateParameter() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.Expression DefaultArgument + { + get + { + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public uint Position { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + get + { + return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position = value; + } } - public ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization _0) - : this((void*) null) + public bool IsPackExpansion { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + get + { + return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + } } - public override void Dispose(bool disposing) + public bool IsExpandedParameterPack { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + get + { + return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); + } } } - public unsafe partial class FunctionTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class ClassTemplateSpecialization : global::CppSharp.Parser.AST.Class, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 248)] + [StructLayout(LayoutKind.Explicit, Size = 648)] public new partial struct __Internal { [FieldOffset(0)] @@ -11265,257 +11771,183 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(216)] + internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(200)] - internal global::Std.Vector.__Internal Parameters; + [FieldOffset(240)] + internal global::Std.Vector.__Internal Enums; - [FieldOffset(224)] - internal global::Std.Vector.__Internal Specializations; + [FieldOffset(264)] + internal global::Std.Vector.__Internal Functions; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(288)] + internal global::Std.Vector.__Internal Classes; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(312)] + internal global::Std.Vector.__Internal Templates; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + [FieldOffset(336)] + internal global::Std.Vector.__Internal Typedefs; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate18getSpecializationsEj")] - internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); + [FieldOffset(360)] + internal global::Std.Vector.__Internal TypeAliases; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate18addSpecializationsERPNS1_30FunctionTemplateSpecializationE")] - internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); + [FieldOffset(384)] + internal global::Std.Vector.__Internal Variables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate20clearSpecializationsEv")] - internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + [FieldOffset(408)] + internal global::Std.Vector.__Internal Friends; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate23getSpecializationsCountEv")] - internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); - } + [FieldOffset(432)] + internal global::Std.Map.__Internal anonymous; - internal static new global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new FunctionTemplate(native.ToPointer(), skipVTables); - } + [FieldOffset(480)] + public byte isAnonymous; - internal static global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) - { - return new FunctionTemplate(native, skipVTables); - } + [FieldOffset(488)] + internal global::Std.Vector.__Internal Bases; - private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); - global::CppSharp.Parser.AST.FunctionTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [FieldOffset(512)] + internal global::Std.Vector.__Internal Fields; - private FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [FieldOffset(536)] + internal global::Std.Vector.__Internal Methods; - protected FunctionTemplate(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [FieldOffset(560)] + internal global::Std.Vector.__Internal Specifiers; - public FunctionTemplate() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(584)] + public byte isPOD; - public FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(585)] + public byte isAbstract; - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } + [FieldOffset(586)] + public byte isUnion; - public global::CppSharp.Parser.AST.FunctionTemplateSpecialization GetSpecializations(uint i) - { - var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.FunctionTemplateSpecialization __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.FunctionTemplateSpecialization) global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(587)] + public byte isDynamic; - public void AddSpecializations(global::CppSharp.Parser.AST.FunctionTemplateSpecialization s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(588)] + public byte isPolymorphic; - public void ClearSpecializations() - { - __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(589)] + public byte hasNonTrivialDefaultConstructor; - public uint SpecializationsCount - { - get - { - var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - } + [FieldOffset(590)] + public byte hasNonTrivialCopyConstructor; - public unsafe partial class FunctionTemplateSpecialization : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 48)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::System.IntPtr _template; + [FieldOffset(591)] + public byte hasNonTrivialDestructor; - [FieldOffset(8)] - internal global::Std.Vector.__Internal Arguments; + [FieldOffset(592)] + public byte isExternCContext; - [FieldOffset(32)] - public global::System.IntPtr specializedFunction; + [FieldOffset(593)] + public byte isInjected; - [FieldOffset(40)] + [FieldOffset(600)] + public global::System.IntPtr layout; + + [FieldOffset(608)] + public global::System.IntPtr templatedDecl; + + [FieldOffset(616)] + internal global::Std.Vector.__Internal Arguments; + + [FieldOffset(640)] public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization12getArgumentsEj")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization12getArgumentsEj")] internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE")] internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization14clearArgumentsEv")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization14clearArgumentsEv")] internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization17getArgumentsCountEv")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization17getArgumentsCountEv")] internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new FunctionTemplateSpecialization(native.ToPointer(), skipVTables); + return new ClassTemplateSpecialization(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) { - return new FunctionTemplateSpecialization(native, skipVTables); + return new ClassTemplateSpecialization(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); - global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); + global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) + private ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected FunctionTemplateSpecialization(void* native, bool skipVTables = false) + protected ClassTemplateSpecialization(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public FunctionTemplateSpecialization() + public ClassTemplateSpecialization() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization _0) + public ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -11524,14 +11956,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.FunctionTemplateSpecialization __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -11559,39 +11986,21 @@ namespace CppSharp __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.FunctionTemplate Template - { - get - { - global::CppSharp.Parser.AST.FunctionTemplate __result0; - if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template)) - __result0 = (global::CppSharp.Parser.AST.FunctionTemplate) global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template]; - else __result0 = global::CppSharp.Parser.AST.FunctionTemplate.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public global::CppSharp.Parser.AST.Function SpecializedFunction + public global::CppSharp.Parser.AST.ClassTemplate TemplatedDecl { get { - global::CppSharp.Parser.AST.Function __result0; - if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction)) - __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction]; - else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction); + global::CppSharp.Parser.AST.ClassTemplate __result0; + if (((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl)) + __result0 = (global::CppSharp.Parser.AST.ClassTemplate) global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl]; + else __result0 = global::CppSharp.Parser.AST.ClassTemplate.__CreateInstance(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl); return __result0; } set { - ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } @@ -11599,12 +12008,12 @@ namespace CppSharp { get { - return ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind; + return ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind; } set { - ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; + ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; } } @@ -11618,9 +12027,9 @@ namespace CppSharp } } - public unsafe partial class VarTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class ClassTemplatePartialSpecialization : global::CppSharp.Parser.AST.ClassTemplateSpecialization, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 248)] + [StructLayout(LayoutKind.Explicit, Size = 648)] public new partial struct __Internal { [FieldOffset(0)] @@ -11669,81 +12078,142 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(216)] + internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(200)] - internal global::Std.Vector.__Internal Parameters; + [FieldOffset(240)] + internal global::Std.Vector.__Internal Enums; - [FieldOffset(224)] - internal global::Std.Vector.__Internal Specializations; + [FieldOffset(264)] + internal global::Std.Vector.__Internal Functions; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(288)] + internal global::Std.Vector.__Internal Classes; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(312)] + internal global::Std.Vector.__Internal Templates; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + [FieldOffset(336)] + internal global::Std.Vector.__Internal Typedefs; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate18getSpecializationsEj")] - internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); + [FieldOffset(360)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(384)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(408)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(432)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(480)] + public byte isAnonymous; + + [FieldOffset(488)] + internal global::Std.Vector.__Internal Bases; + + [FieldOffset(512)] + internal global::Std.Vector.__Internal Fields; + + [FieldOffset(536)] + internal global::Std.Vector.__Internal Methods; + + [FieldOffset(560)] + internal global::Std.Vector.__Internal Specifiers; + + [FieldOffset(584)] + public byte isPOD; + + [FieldOffset(585)] + public byte isAbstract; + + [FieldOffset(586)] + public byte isUnion; + + [FieldOffset(587)] + public byte isDynamic; + + [FieldOffset(588)] + public byte isPolymorphic; + + [FieldOffset(589)] + public byte hasNonTrivialDefaultConstructor; + + [FieldOffset(590)] + public byte hasNonTrivialCopyConstructor; + + [FieldOffset(591)] + public byte hasNonTrivialDestructor; + + [FieldOffset(592)] + public byte isExternCContext; + + [FieldOffset(593)] + public byte isInjected; + + [FieldOffset(600)] + public global::System.IntPtr layout; + + [FieldOffset(608)] + public global::System.IntPtr templatedDecl; + + [FieldOffset(616)] + internal global::Std.Vector.__Internal Arguments; + + [FieldOffset(640)] + public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate18addSpecializationsERPNS1_25VarTemplateSpecializationE")] - internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate20clearSpecializationsEv")] - internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate23getSpecializationsCountEv")] - internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VarTemplate(native.ToPointer(), skipVTables); + return new ClassTemplatePartialSpecialization(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) { - return new VarTemplate(native, skipVTables); + return new ClassTemplatePartialSpecialization(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VarTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); - global::CppSharp.Parser.AST.VarTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); + global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VarTemplate(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) + private ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VarTemplate(void* native, bool skipVTables = false) + protected ClassTemplatePartialSpecialization(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -11752,19 +12222,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public VarTemplate() + public ClassTemplatePartialSpecialization() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VarTemplate(global::CppSharp.Parser.AST.VarTemplate _0) + public ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -11782,44 +12252,11 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - - public global::CppSharp.Parser.AST.VarTemplateSpecialization GetSpecializations(uint i) - { - var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.VarTemplateSpecialization __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.VarTemplateSpecialization) global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.VarTemplateSpecialization.__CreateInstance(__ret); - return __result0; - } - - public void AddSpecializations(global::CppSharp.Parser.AST.VarTemplateSpecialization s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearSpecializations() - { - __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); - } - - public uint SpecializationsCount - { - get - { - var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } } public unsafe partial class VarTemplateSpecialization : global::CppSharp.Parser.AST.Variable, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 280)] + [StructLayout(LayoutKind.Explicit, Size = 304)] public new partial struct __Internal { [FieldOffset(0)] @@ -11868,24 +12305,27 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] + [FieldOffset(216)] public global::Std.Cxx11.BasicString.__Internal Mangled; - [FieldOffset(224)] + [FieldOffset(248)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(240)] + [FieldOffset(264)] public global::System.IntPtr templatedDecl; - [FieldOffset(248)] + [FieldOffset(272)] internal global::Std.Vector.__Internal Arguments; - [FieldOffset(272)] + [FieldOffset(296)] public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] @@ -12051,7 +12491,7 @@ namespace CppSharp public unsafe partial class VarTemplatePartialSpecialization : global::CppSharp.Parser.AST.VarTemplateSpecialization, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 280)] + [StructLayout(LayoutKind.Explicit, Size = 304)] public new partial struct __Internal { [FieldOffset(0)] @@ -12100,24 +12540,27 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] + [FieldOffset(216)] public global::Std.Cxx11.BasicString.__Internal Mangled; - [FieldOffset(224)] + [FieldOffset(248)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(240)] + [FieldOffset(264)] public global::System.IntPtr templatedDecl; - [FieldOffset(248)] + [FieldOffset(272)] internal global::Std.Vector.__Internal Arguments; - [FieldOffset(272)] + [FieldOffset(296)] public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] @@ -12201,9 +12644,9 @@ namespace CppSharp } } - public unsafe partial class Namespace : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + public unsafe partial class VarTemplate : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 464)] + [StructLayout(LayoutKind.Explicit, Size = 272)] public new partial struct __Internal { [FieldOffset(0)] @@ -12252,88 +12695,84 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(216)] - internal global::Std.Vector.__Internal Enums; - - [FieldOffset(240)] - internal global::Std.Vector.__Internal Functions; - - [FieldOffset(264)] - internal global::Std.Vector.__Internal Classes; - - [FieldOffset(288)] - internal global::Std.Vector.__Internal Templates; - - [FieldOffset(312)] - internal global::Std.Vector.__Internal Typedefs; + public global::System.IntPtr TemplatedDecl; - [FieldOffset(336)] - internal global::Std.Vector.__Internal TypeAliases; + [FieldOffset(224)] + internal global::Std.Vector.__Internal Parameters; - [FieldOffset(360)] - internal global::Std.Vector.__Internal Variables; + [FieldOffset(248)] + internal global::Std.Vector.__Internal Specializations; - [FieldOffset(384)] - internal global::Std.Vector.__Internal Friends; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(408)] - internal global::Std.Map.__Internal anonymous; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(456)] - public byte isAnonymous; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - [FieldOffset(457)] - public byte isInline; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate18getSpecializationsEj")] + internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate18addSpecializationsERPNS1_25VarTemplateSpecializationE")] + internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate20clearSpecializationsEv")] + internal static extern void ClearSpecializations_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate23getSpecializationsCountEv")] + internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Namespace __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Namespace(native.ToPointer(), skipVTables); + return new VarTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Namespace __CreateInstance(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) { - return new Namespace(native, skipVTables); + return new VarTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Namespace.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.VarTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); - global::CppSharp.Parser.AST.Namespace.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); + global::CppSharp.Parser.AST.VarTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Namespace(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + private VarTemplate(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Namespace(void* native, bool skipVTables = false) + protected VarTemplate(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -12342,19 +12781,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Namespace() + public VarTemplate() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Namespace(global::CppSharp.Parser.AST.Namespace _0) + public VarTemplate(global::CppSharp.Parser.AST.VarTemplate _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -12373,149 +12812,36 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public bool IsInline - { - get - { - return ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline = (byte) (value ? 1 : 0); - } - } - } - - public unsafe partial class PreprocessedEntity : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.MacroLocation macroLocation; - - [FieldOffset(8)] - public global::System.IntPtr originalPtr; - - [FieldOffset(16)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18PreprocessedEntityC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18PreprocessedEntityC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new PreprocessedEntity(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) - { - return new PreprocessedEntity(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); - *(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) ret = native; - return ret.ToPointer(); - } - - private PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected PreprocessedEntity(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public PreprocessedEntity() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public global::CppSharp.Parser.AST.VarTemplateSpecialization GetSpecializations(uint i) { - global::CppSharp.Parser.AST.PreprocessedEntity __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.VarTemplateSpecialization __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.VarTemplateSpecialization) global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.VarTemplateSpecialization.__CreateInstance(__ret); + return __result0; } - public global::CppSharp.Parser.AST.MacroLocation MacroLocation + public void AddSpecializations(global::CppSharp.Parser.AST.VarTemplateSpecialization s) { - get - { - return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation; - } - - set - { - ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation = value; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); } - public global::System.IntPtr OriginalPtr + public void ClearSpecializations() { - get - { - return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr; - } - - set - { - ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; - } + __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.DeclarationKind Kind + public uint SpecializationsCount { get { - return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind = value; + var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } @@ -12873,7 +13199,7 @@ namespace CppSharp public unsafe partial class TranslationUnit : global::CppSharp.Parser.AST.Namespace, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 528)] + [StructLayout(LayoutKind.Explicit, Size = 552)] public new partial struct __Internal { [FieldOffset(0)] @@ -12922,54 +13248,57 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] + [FieldOffset(216)] internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(216)] + [FieldOffset(240)] internal global::Std.Vector.__Internal Enums; - [FieldOffset(240)] + [FieldOffset(264)] internal global::Std.Vector.__Internal Functions; - [FieldOffset(264)] + [FieldOffset(288)] internal global::Std.Vector.__Internal Classes; - [FieldOffset(288)] + [FieldOffset(312)] internal global::Std.Vector.__Internal Templates; - [FieldOffset(312)] + [FieldOffset(336)] internal global::Std.Vector.__Internal Typedefs; - [FieldOffset(336)] + [FieldOffset(360)] internal global::Std.Vector.__Internal TypeAliases; - [FieldOffset(360)] + [FieldOffset(384)] internal global::Std.Vector.__Internal Variables; - [FieldOffset(384)] + [FieldOffset(408)] internal global::Std.Vector.__Internal Friends; - [FieldOffset(408)] + [FieldOffset(432)] internal global::Std.Map.__Internal anonymous; - [FieldOffset(456)] + [FieldOffset(480)] public byte isAnonymous; - [FieldOffset(457)] + [FieldOffset(481)] public byte isInline; - [FieldOffset(464)] + [FieldOffset(488)] public global::Std.Cxx11.BasicString.__Internal FileName; - [FieldOffset(496)] + [FieldOffset(520)] public byte isSystemHeader; - [FieldOffset(504)] + [FieldOffset(528)] internal global::Std.Vector.__Internal Macros; [SuppressUnmanagedCodeSecurity] @@ -16093,192 +16422,6 @@ namespace CppSharp } } } - - public unsafe partial class RawComment : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 80)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.RawCommentKind kind; - - [FieldOffset(8)] - public global::Std.Cxx11.BasicString.__Internal Text; - - [FieldOffset(40)] - public global::Std.Cxx11.BasicString.__Internal BriefText; - - [FieldOffset(72)] - public global::System.IntPtr fullCommentBlock; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment7getTextEv")] - internal static extern global::System.IntPtr Text_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment7setTextEPKc")] - internal static extern void SetText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment12getBriefTextEv")] - internal static extern global::System.IntPtr BriefText_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment12setBriefTextEPKc")] - internal static extern void SetBriefText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new RawComment(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) - { - return new RawComment(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.RawComment.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); - global::CppSharp.Parser.AST.RawComment.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private RawComment(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected RawComment(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public RawComment() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public RawComment(global::CppSharp.Parser.AST.RawComment _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.RawComment __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.RawCommentKind Kind - { - get - { - return ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind = value; - } - } - - public global::CppSharp.Parser.AST.FullComment FullCommentBlock - { - get - { - global::CppSharp.Parser.AST.FullComment __result0; - if (((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FullComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock)) - __result0 = (global::CppSharp.Parser.AST.FullComment) global::CppSharp.Parser.AST.FullComment.NativeToManagedMap[((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock]; - else __result0 = global::CppSharp.Parser.AST.FullComment.__CreateInstance(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public string Text - { - get - { - var __ret = __Internal.Text_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetText_0((__Instance + __PointerAdjustment), value); - } - } - - public string BriefText - { - get - { - var __ret = __Internal.BriefText_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetBriefText_0((__Instance + __PointerAdjustment), value); - } - } - } } } } @@ -17172,6 +17315,53 @@ namespace CppSharp User = 4 } + public unsafe partial class Parser + { + [StructLayout(LayoutKind.Explicit, Size = 0)] + public partial struct __Internal + { + } + + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.Parser __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Parser(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.Parser __CreateInstance(global::CppSharp.Parser.Parser.__Internal native, bool skipVTables = false) + { + return new Parser(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.Parser.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.Parser.__Internal)); + *(global::CppSharp.Parser.Parser.__Internal*) ret = native; + return ret.ToPointer(); + } + + private Parser(global::CppSharp.Parser.Parser.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected Parser(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + } + public unsafe partial class CppParserOptions : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 272)] @@ -18206,6 +18396,24 @@ namespace CppSharp } } + public global::CppSharp.Parser.Parser CodeParser + { + get + { + global::CppSharp.Parser.Parser __result0; + if (((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.Parser.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser)) + __result0 = (global::CppSharp.Parser.Parser) global::CppSharp.Parser.Parser.NativeToManagedMap[((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser]; + else __result0 = global::CppSharp.Parser.Parser.__CreateInstance(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser); + return __result0; + } + + set + { + ((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + public uint DiagnosticsCount { get diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs index 425f27ce..3b371441 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs @@ -749,10 +749,13 @@ namespace Std Marshal.FreeHGlobal(__Instance); } - public string CStr() + public string CStr { - var __ret = global::Std.Cxx11.BasicString.__Internal.CStrc__N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + get + { + var __ret = global::Std.Cxx11.BasicString.__Internal.CStrc__N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } } } 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 e9ebb463..5c8274e2 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 @@ -669,569 +669,525 @@ namespace CppSharp } } - public unsafe partial class TagType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class Declaration : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 16)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 144)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr declaration; + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(40)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(48)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(56)] + public byte isIncomplete; + + [FieldOffset(57)] + public byte isDependent; + + [FieldOffset(58)] + public byte isImplicit; + + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(72)] + public uint definitionOrder; + + [FieldOffset(80)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] + public global::System.IntPtr originalPtr; + + [FieldOffset(136)] + public global::System.IntPtr comment; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST7TagTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST7TagTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.TagType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new TagType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.TagType __CreateInstance(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) - { - return new TagType(native, skipVTables); - } + EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - private static void* __CopyValue(global::CppSharp.Parser.AST.TagType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); - global::CppSharp.Parser.AST.TagType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - private TagType(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration23getPreprocessedEntitiesEj")] + internal static extern global::System.IntPtr GetPreprocessedEntities_0(global::System.IntPtr instance, uint i); - protected TagType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration23addPreprocessedEntitiesERPNS1_18PreprocessedEntityE")] + internal static extern void AddPreprocessedEntities_0(global::System.IntPtr instance, global::System.IntPtr s); - public TagType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration25clearPreprocessedEntitiesEv")] + internal static extern void ClearPreprocessedEntities_0(global::System.IntPtr instance); - public TagType(global::CppSharp.Parser.AST.TagType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration17getRedeclarationsEj")] + internal static extern global::System.IntPtr GetRedeclarations_0(global::System.IntPtr instance, uint i); - public global::CppSharp.Parser.AST.Declaration Declaration - { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration); - return __result0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration17addRedeclarationsERPS2_")] + internal static extern void AddRedeclarations_0(global::System.IntPtr instance, global::System.IntPtr s); - set - { - ((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration19clearRedeclarationsEv")] + internal static extern void ClearRedeclarations_0(global::System.IntPtr instance); - public unsafe partial class ArrayType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 48)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration7getNameEv")] + internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); - [FieldOffset(4)] - public byte isDependent; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration7setNameEPKc")] + internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration6getUSREv")] + internal static extern global::System.IntPtr USR_0(global::System.IntPtr instance); - [FieldOffset(24)] - public global::CppSharp.Parser.AST.ArrayType.ArraySize sizeType; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration6setUSREPKc")] + internal static extern void SetUSR_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - [FieldOffset(32)] - public long size; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration12getDebugTextEv")] + internal static extern global::System.IntPtr DebugText_0(global::System.IntPtr instance); - [FieldOffset(40)] - public long elementSize; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration12setDebugTextEPKc")] + internal static extern void SetDebugText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ArrayTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration28getPreprocessedEntitiesCountEv")] + internal static extern uint GetPreprocessedEntitiesCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ArrayTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration22getRedeclarationsCountEv")] + internal static extern uint GetRedeclarationsCount_0(global::System.IntPtr instance); } - public enum ArraySize - { - Constant = 0, - Variable = 1, - Dependent = 2, - Incomplete = 3 - } + public global::System.IntPtr __Instance { get; protected set; } - internal static new global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ArrayType(native.ToPointer(), skipVTables); + return new Declaration(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) { - return new ArrayType(native, skipVTables); + return new Declaration(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ArrayType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Declaration.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); - global::CppSharp.Parser.AST.ArrayType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); + global::CppSharp.Parser.AST.Declaration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ArrayType(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) + private Declaration(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ArrayType(void* native, bool skipVTables = false) - : base((void*) null) + protected Declaration(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public ArrayType() - : this((void*) null) + public Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public ArrayType(global::CppSharp.Parser.AST.ArrayType _0) - : this((void*) null) + public Declaration(global::CppSharp.Parser.AST.Declaration _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public void Dispose() { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType); - } + Dispose(disposing: true); + } - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.ArrayType.ArraySize SizeType + public virtual void Dispose(bool disposing) { - get - { - return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType; - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType = value; - } + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public long Size + public global::CppSharp.Parser.AST.PreprocessedEntity GetPreprocessedEntities(uint i) { - get - { - return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size; - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size = value; - } + var __ret = __Internal.GetPreprocessedEntities_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.PreprocessedEntity __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.PreprocessedEntity) global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.PreprocessedEntity.__CreateInstance(__ret); + return __result0; } - public long ElementSize + public void AddPreprocessedEntities(global::CppSharp.Parser.AST.PreprocessedEntity s) { - get - { - return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize; - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize = value; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddPreprocessedEntities_0((__Instance + __PointerAdjustment), __arg0); } - } - public unsafe partial class FunctionType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 56)] - public new partial struct __Internal + public void ClearPreprocessedEntities() { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - - [FieldOffset(24)] - public global::CppSharp.Parser.AST.CallingConvention callingConvention; - - [FieldOffset(28)] - public global::CppSharp.Parser.AST.ExceptionSpecType exceptionSpecType; - - [FieldOffset(32)] - internal global::Std.Vector.__Internal Parameters; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType13getParametersEj")] - internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType13addParametersERPNS1_9ParameterE")] - internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType15clearParametersEv")] - internal static extern void ClearParameters_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType18getParametersCountEv")] - internal static extern uint GetParametersCount_0(global::System.IntPtr instance); + __Internal.ClearPreprocessedEntities_0((__Instance + __PointerAdjustment)); } - internal static new global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public global::CppSharp.Parser.AST.Declaration GetRedeclarations(uint i) { - return new FunctionType(native.ToPointer(), skipVTables); + var __ret = __Internal.GetRedeclarations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Declaration __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(__ret); + return __result0; } - internal static global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) + public void AddRedeclarations(global::CppSharp.Parser.AST.Declaration s) { - return new FunctionType(native, skipVTables); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddRedeclarations_0((__Instance + __PointerAdjustment), __arg0); } - private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionType.__Internal native) + public void ClearRedeclarations() { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); - global::CppSharp.Parser.AST.FunctionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + __Internal.ClearRedeclarations_0((__Instance + __PointerAdjustment)); } - private FunctionType(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public static implicit operator global::CppSharp.Parser.AST.Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + return new global::CppSharp.Parser.AST.Declaration(kind); } - protected FunctionType(void* native, bool skipVTables = false) - : base((void*) null) + public global::CppSharp.Parser.AST.DeclarationKind Kind { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind; + } - public FunctionType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind = value; + } } - public FunctionType(global::CppSharp.Parser.AST.FunctionType _0) - : this((void*) null) + public global::CppSharp.Parser.AST.AccessSpecifier Access { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access; + } - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Type __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access = value; + } } - public global::CppSharp.Parser.AST.Parameter GetParameters(uint i) + public global::CppSharp.Parser.AST.DeclarationContext Namespace { - var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Parameter __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Parameter.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Parameter) global::CppSharp.Parser.AST.Parameter.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Parameter.__CreateInstance(__ret); - return __result0; - } + get + { + global::CppSharp.Parser.AST.DeclarationContext __result0; + if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace)) + __result0 = (global::CppSharp.Parser.AST.DeclarationContext) global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace]; + else __result0 = global::CppSharp.Parser.AST.DeclarationContext.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace); + return __result0; + } - public void AddParameters(global::CppSharp.Parser.AST.Parameter s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public void ClearParameters() + public global::CppSharp.Parser.SourceLocation Location { - __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); + get + { + return global::CppSharp.Parser.SourceLocation.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location); + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location = value.__Instance; + } } - public global::CppSharp.Parser.AST.QualifiedType ReturnType + public int LineNumberStart { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType); + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart; } set { - ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart = value; } } - public global::CppSharp.Parser.AST.CallingConvention CallingConvention + public int LineNumberEnd { get { - return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention; + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd; } set { - ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention = value; + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd = value; } } - public global::CppSharp.Parser.AST.ExceptionSpecType ExceptionSpecType + public bool IsIncomplete { get { - return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType; + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete != 0; } set { - ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType = value; + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete = (byte) (value ? 1 : 0); } } - public uint ParametersCount + public bool IsDependent { get { - var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent != 0; } - } - } - public unsafe partial class PointerType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 32)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedPointee; - - [FieldOffset(24)] - public global::CppSharp.Parser.AST.PointerType.TypeModifier modifier; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11PointerTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11PointerTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent = (byte) (value ? 1 : 0); + } } - public enum TypeModifier + public bool IsImplicit { - Value = 0, - Pointer = 1, - LVReference = 2, - RVReference = 3 - } + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit != 0; + } - internal static new global::CppSharp.Parser.AST.PointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new PointerType(native.ToPointer(), skipVTables); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit = (byte) (value ? 1 : 0); + } } - internal static global::CppSharp.Parser.AST.PointerType __CreateInstance(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) + public global::CppSharp.Parser.AST.Declaration CompleteDeclaration { - return new PointerType(native, skipVTables); + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - private static void* __CopyValue(global::CppSharp.Parser.AST.PointerType.__Internal native) + public uint DefinitionOrder { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); - global::CppSharp.Parser.AST.PointerType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder = value; + } } - private PointerType(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public global::System.IntPtr OriginalPtr { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; + } } - protected PointerType(void* native, bool skipVTables = false) - : base((void*) null) + public global::CppSharp.Parser.AST.RawComment Comment { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + get + { + global::CppSharp.Parser.AST.RawComment __result0; + if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.RawComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment)) + __result0 = (global::CppSharp.Parser.AST.RawComment) global::CppSharp.Parser.AST.RawComment.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment]; + else __result0 = global::CppSharp.Parser.AST.RawComment.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public PointerType() - : this((void*) null) + public string Name { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + get + { + var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetName_0((__Instance + __PointerAdjustment), value); + } } - public PointerType(global::CppSharp.Parser.AST.PointerType _0) - : this((void*) null) + public string USR { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + get + { + var __ret = __Internal.USR_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetUSR_0((__Instance + __PointerAdjustment), value); + } } - public global::CppSharp.Parser.AST.QualifiedType QualifiedPointee + public string DebugText { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee); + var __ret = __Internal.DebugText_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + __Internal.SetDebugText_0((__Instance + __PointerAdjustment), value); } } - public global::CppSharp.Parser.AST.PointerType.TypeModifier Modifier + public uint PreprocessedEntitiesCount { get { - return ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier; + var __ret = __Internal.GetPreprocessedEntitiesCount_0((__Instance + __PointerAdjustment)); + return __ret; } + } - set + public uint RedeclarationsCount + { + get { - ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier = value; + var __ret = __Internal.GetRedeclarationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class MemberPointerType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TagType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] + [StructLayout(LayoutKind.Explicit, Size = 16)] public new partial struct __Internal { [FieldOffset(0)] @@ -1241,44 +1197,44 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; + public global::System.IntPtr declaration; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17MemberPointerTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST7TagTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17MemberPointerTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST7TagTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TagType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new MemberPointerType(native.ToPointer(), skipVTables); + return new TagType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TagType __CreateInstance(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) { - return new MemberPointerType(native, skipVTables); + return new TagType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.MemberPointerType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TagType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); - global::CppSharp.Parser.AST.MemberPointerType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); + global::CppSharp.Parser.AST.TagType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) + private TagType(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected MemberPointerType(void* native, bool skipVTables = false) + protected TagType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1287,19 +1243,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public MemberPointerType() + public TagType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType _0) + public TagType(global::CppSharp.Parser.AST.TagType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1308,23 +1264,28 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Pointee + public global::CppSharp.Parser.AST.Declaration Declaration { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee); + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration); + return __result0; } set { - ((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class TypedefType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class ArrayType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 16)] + [StructLayout(LayoutKind.Explicit, Size = 48)] public new partial struct __Internal { [FieldOffset(0)] @@ -1334,44 +1295,61 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr declaration; + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(24)] + public global::CppSharp.Parser.AST.ArrayType.ArraySize sizeType; + + [FieldOffset(32)] + public long size; + + [FieldOffset(40)] + public long elementSize; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9ArrayTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST9ArrayTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public enum ArraySize { - return new TypedefType(native.ToPointer(), skipVTables); + Constant = 0, + Variable = 1, + Dependent = 2, + Incomplete = 3 } - internal static global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypedefType(native, skipVTables); + return new ArrayType(native.ToPointer(), skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefType.__Internal native) + internal static global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); - global::CppSharp.Parser.AST.TypedefType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + return new ArrayType(native, skipVTables); } - private TypedefType(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + private static void* __CopyValue(global::CppSharp.Parser.AST.ArrayType.__Internal native) { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); + global::CppSharp.Parser.AST.ArrayType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - protected TypedefType(void* native, bool skipVTables = false) + private ArrayType(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected ArrayType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1380,19 +1358,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TypedefType() + public ArrayType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypedefType(global::CppSharp.Parser.AST.TypedefType _0) + public ArrayType(global::CppSharp.Parser.AST.ArrayType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1401,190 +1379,174 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.TypedefNameDecl Declaration + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - global::CppSharp.Parser.AST.TypedefNameDecl __result0; - if (((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.TypedefNameDecl) global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap[((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.TypedefNameDecl.__CreateInstance(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - } - - public unsafe partial class AttributedType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 40)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal modified; - - [FieldOffset(24)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal equivalent; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14AttributedTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14AttributedTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new AttributedType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) - { - return new AttributedType(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.AttributedType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); - global::CppSharp.Parser.AST.AttributedType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private AttributedType(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected AttributedType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - public AttributedType() - : this((void*) null) + public global::CppSharp.Parser.AST.ArrayType.ArraySize SizeType { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + get + { + return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType; + } - public AttributedType(global::CppSharp.Parser.AST.AttributedType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType = value; + } } - public global::CppSharp.Parser.AST.QualifiedType Modified + public long Size { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified); + return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size; } set { - ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size = value; } } - public global::CppSharp.Parser.AST.QualifiedType Equivalent + public long ElementSize { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent); + return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize; } set { - ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize = value; } } } - public unsafe partial class DecayedType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class Parameter : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 56)] + [StructLayout(LayoutKind.Explicit, Size = 176)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal decayed; + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; [FieldOffset(24)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal original; + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; [FieldOffset(40)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; + public global::Std.BasicString.__Internal USR; + + [FieldOffset(48)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(56)] + public byte isIncomplete; + + [FieldOffset(57)] + public byte isDependent; + + [FieldOffset(58)] + public byte isImplicit; + + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(72)] + public uint definitionOrder; + + [FieldOffset(80)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] + public global::System.IntPtr originalPtr; + + [FieldOffset(136)] + public global::System.IntPtr comment; + + [FieldOffset(144)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(160)] + public byte isIndirect; + + [FieldOffset(161)] + public byte hasDefaultValue; + + [FieldOffset(164)] + public uint index; + + [FieldOffset(168)] + public global::System.IntPtr defaultArgument; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DecayedTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DecayedTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Parameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DecayedType(native.ToPointer(), skipVTables); + return new Parameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Parameter __CreateInstance(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) { - return new DecayedType(native, skipVTables); + return new Parameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DecayedType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Parameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); - global::CppSharp.Parser.AST.DecayedType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); + global::CppSharp.Parser.AST.Parameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DecayedType(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) + private Parameter(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DecayedType(void* native, bool skipVTables = false) + protected Parameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1593,234 +1555,109 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public DecayedType() + public Parameter() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DecayedType(global::CppSharp.Parser.AST.DecayedType _0) + public Parameter(global::CppSharp.Parser.AST.Parameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Decayed + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType Original + public bool IsIndirect { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original); + return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect != 0; } set { - ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.QualifiedType Pointee - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee); - } - - set - { - ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect = (byte) (value ? 1 : 0); } } - } - - public unsafe partial class TemplateArgument : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 40)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind kind; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal type; - - [FieldOffset(24)] - public global::System.IntPtr declaration; - - [FieldOffset(32)] - public long integral; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16TemplateArgumentC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16TemplateArgumentC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - - public enum ArgumentKind - { - Type = 0, - Declaration = 1, - NullPtr = 2, - Integral = 3, - Template = 4, - TemplateExpansion = 5, - Expression = 6, - Pack = 7 - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new TemplateArgument(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) - { - return new TemplateArgument(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateArgument.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); - *(global::CppSharp.Parser.AST.TemplateArgument.__Internal*) ret = native; - return ret.ToPointer(); - } - - private TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected TemplateArgument(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public TemplateArgument() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.TemplateArgument __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind Kind + public bool HasDefaultValue { get { - return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind; + return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue != 0; } set { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind = value; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.QualifiedType Type + public uint Index { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type); + return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index; } set { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index = value; } } - public global::CppSharp.Parser.AST.Declaration Declaration + public global::CppSharp.Parser.AST.Expression DefaultArgument { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration); + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument); return __result0; } set { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public long Integral - { - get - { - return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral = value; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class TemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class FunctionType : global::CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 56)] public new partial struct __Internal @@ -1832,75 +1669,78 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - internal global::Std.Vector.__Internal Arguments; + public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(32)] - public global::System.IntPtr _template; + [FieldOffset(24)] + public global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(40)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + [FieldOffset(28)] + public global::CppSharp.Parser.AST.ExceptionSpecType exceptionSpecType; + + [FieldOffset(32)] + internal global::Std.Vector.__Internal Parameters; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionTypeD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType12getArgumentsEj")] - internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType13getParametersEj")] + internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType12addArgumentsERNS1_16TemplateArgumentE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType13addParametersERPNS1_9ParameterE")] + internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType15clearParametersEv")] + internal static extern void ClearParameters_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST12FunctionType18getParametersCountEv")] + internal static extern uint GetParametersCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateSpecializationType(native.ToPointer(), skipVTables); + return new FunctionType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) { - return new TemplateSpecializationType(native, skipVTables); + return new FunctionType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); - global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); + global::CppSharp.Parser.AST.FunctionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) + private FunctionType(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateSpecializationType(void* native, bool skipVTables = false) + protected FunctionType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1909,19 +1749,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateSpecializationType() + public FunctionType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType _0) + public FunctionType(global::CppSharp.Parser.AST.FunctionType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1940,70 +1780,82 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) + public global::CppSharp.Parser.AST.Parameter GetParameters(uint i) { - var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); - __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); + var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Parameter __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Parameter.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Parameter) global::CppSharp.Parser.AST.Parameter.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Parameter.__CreateInstance(__ret); + return __result0; } - public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) + public void AddParameters(global::CppSharp.Parser.AST.Parameter s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearArguments() + public void ClearParameters() { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.Template Template + public global::CppSharp.Parser.AST.QualifiedType ReturnType { get { - global::CppSharp.Parser.AST.Template __result0; - if (((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template)) - __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template]; - else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType); } set { - ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.CallingConvention CallingConvention { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared); + return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention; } set { - ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention = value; } } - public uint ArgumentsCount + public global::CppSharp.Parser.AST.ExceptionSpecType ExceptionSpecType { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); + return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType = value; + } + } + + public uint ParametersCount + { + get + { + var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class DependentTemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class PointerType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 48)] + [StructLayout(LayoutKind.Explicit, Size = 32)] public new partial struct __Internal { [FieldOffset(0)] @@ -2013,72 +1865,55 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - internal global::Std.Vector.__Internal Arguments; + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedPointee; - [FieldOffset(32)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + [FieldOffset(24)] + public global::CppSharp.Parser.AST.PointerType.TypeModifier modifier; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11PointerTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType12getArgumentsEj")] - internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType12addArgumentsERNS1_16TemplateArgumentE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11PointerTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + public enum TypeModifier + { + Value = 0, + Pointer = 1, + LVReference = 2, + RVReference = 3 } - internal static new global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.PointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DependentTemplateSpecializationType(native.ToPointer(), skipVTables); + return new PointerType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.PointerType __CreateInstance(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) { - return new DependentTemplateSpecializationType(native, skipVTables); + return new PointerType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.PointerType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); - global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); + global::CppSharp.Parser.AST.PointerType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) + private PointerType(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DependentTemplateSpecializationType(void* native, bool skipVTables = false) + protected PointerType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2087,83 +1922,57 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public DependentTemplateSpecializationType() + public PointerType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType _0) + public PointerType(global::CppSharp.Parser.AST.PointerType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Type __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) - { - var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); - __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); - } - - public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearArguments() - { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.QualifiedType QualifiedPointee { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee); } set { - ((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public uint ArgumentsCount + public global::CppSharp.Parser.AST.PointerType.TypeModifier Modifier { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier; + } + + set + { + ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier = value; } } } - public unsafe partial class TemplateParameterType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class MemberPointerType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] + [StructLayout(LayoutKind.Explicit, Size = 24)] public new partial struct __Internal { [FieldOffset(0)] @@ -2173,58 +1982,44 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr parameter; - - [FieldOffset(16)] - public uint depth; - - [FieldOffset(20)] - public uint index; - - [FieldOffset(24)] - public byte isParameterPack; + public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST17MemberPointerTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST17MemberPointerTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateParameterType(native.ToPointer(), skipVTables); + return new MemberPointerType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) { - return new TemplateParameterType(native, skipVTables); + return new MemberPointerType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.MemberPointerType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); - global::CppSharp.Parser.AST.TemplateParameterType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); + global::CppSharp.Parser.AST.MemberPointerType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) + private MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateParameterType(void* native, bool skipVTables = false) + protected MemberPointerType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2233,148 +2028,144 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateParameterType() + public MemberPointerType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType _0) + public MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Type __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.TypeTemplateParameter Parameter + public global::CppSharp.Parser.AST.QualifiedType Pointee { get { - global::CppSharp.Parser.AST.TypeTemplateParameter __result0; - if (((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter)) - __result0 = (global::CppSharp.Parser.AST.TypeTemplateParameter) global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter]; - else __result0 = global::CppSharp.Parser.AST.TypeTemplateParameter.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee); } set { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } + } - public uint Depth + public unsafe partial class TypedefNameDecl : global::CppSharp.Parser.AST.Declaration, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 160)] + public new partial struct __Internal { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; - set - { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth = value; - } - } + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; - public uint Index - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index; - } + [FieldOffset(8)] + public global::System.IntPtr _namespace; - set - { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index = value; - } - } + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - public bool IsParameterPack - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack != 0; - } + [FieldOffset(20)] + public int lineNumberStart; - set - { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); - } - } - } + [FieldOffset(24)] + public int lineNumberEnd; - public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 32)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; - [FieldOffset(4)] + [FieldOffset(40)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(48)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(56)] + public byte isIncomplete; + + [FieldOffset(57)] public byte isDependent; - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal replacement; + [FieldOffset(58)] + public byte isImplicit; - [FieldOffset(24)] - public global::System.IntPtr replacedParameter; + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(72)] + public uint definitionOrder; + + [FieldOffset(80)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] + public global::System.IntPtr originalPtr; + + [FieldOffset(136)] + public global::System.IntPtr comment; + + [FieldOffset(144)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateParameterSubstitutionType(native.ToPointer(), skipVTables); + return new TypedefNameDecl(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) { - return new TemplateParameterSubstitutionType(native, skipVTables); + return new TypedefNameDecl(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); - global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); + global::CppSharp.Parser.AST.TypedefNameDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) + private TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateParameterSubstitutionType(void* native, bool skipVTables = false) + protected TypedefNameDecl(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2383,62 +2174,59 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateParameterSubstitutionType() + public TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0) + public TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Replacement + public override void Dispose(bool disposing) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement); - } + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - set - { - ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + public static implicit operator global::CppSharp.Parser.AST.TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) + { + return new global::CppSharp.Parser.AST.TypedefNameDecl(kind); } - public global::CppSharp.Parser.AST.TemplateParameterType ReplacedParameter + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - global::CppSharp.Parser.AST.TemplateParameterType __result0; - if (((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter)) - __result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter]; - else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TypedefType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] + [StructLayout(LayoutKind.Explicit, Size = 16)] public new partial struct __Internal { [FieldOffset(0)] @@ -2448,47 +2236,44 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal injectedSpecializationType; - - [FieldOffset(24)] - public global::System.IntPtr _class; + public global::System.IntPtr declaration; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21InjectedClassNameTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21InjectedClassNameTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new InjectedClassNameType(native.ToPointer(), skipVTables); + return new TypedefType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) { - return new InjectedClassNameType(native, skipVTables); + return new TypedefType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); - global::CppSharp.Parser.AST.InjectedClassNameType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); + global::CppSharp.Parser.AST.TypedefType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + private TypedefType(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected InjectedClassNameType(void* native, bool skipVTables = false) + protected TypedefType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2497,19 +2282,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public InjectedClassNameType() + public TypedefType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType _0) + public TypedefType(global::CppSharp.Parser.AST.TypedefType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2518,41 +2303,28 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType InjectedSpecializationType - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType); - } - - set - { - ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.Class Class + public global::CppSharp.Parser.AST.TypedefNameDecl Declaration { get { - global::CppSharp.Parser.AST.Class __result0; - if (((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class); + global::CppSharp.Parser.AST.TypedefNameDecl __result0; + if (((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.TypedefNameDecl) global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap[((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.TypedefNameDecl.__CreateInstance(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration); return __result0; } set { - ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class DependentNameType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class AttributedType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] + [StructLayout(LayoutKind.Explicit, Size = 40)] public new partial struct __Internal { [FieldOffset(0)] @@ -2562,44 +2334,47 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + public global::CppSharp.Parser.AST.QualifiedType.__Internal modified; + + [FieldOffset(24)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal equivalent; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17DependentNameTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST14AttributedTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17DependentNameTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST14AttributedTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DependentNameType(native.ToPointer(), skipVTables); + return new AttributedType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) { - return new DependentNameType(native, skipVTables); + return new AttributedType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DependentNameType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.AttributedType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); - global::CppSharp.Parser.AST.DependentNameType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); + global::CppSharp.Parser.AST.AttributedType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DependentNameType(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + private AttributedType(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DependentNameType(void* native, bool skipVTables = false) + protected AttributedType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2608,19 +2383,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public DependentNameType() + public AttributedType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DependentNameType(global::CppSharp.Parser.AST.DependentNameType _0) + public AttributedType(global::CppSharp.Parser.AST.AttributedType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2629,100 +2404,36 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.QualifiedType Modified { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified); } set { - ((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - } - public unsafe partial class PackExpansionType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 8)] - public new partial struct __Internal + public global::CppSharp.Parser.AST.QualifiedType Equivalent { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent); + } - [FieldOffset(4)] - public byte isDependent; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17PackExpansionTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17PackExpansionTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new PackExpansionType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) - { - return new PackExpansionType(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.PackExpansionType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); - global::CppSharp.Parser.AST.PackExpansionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected PackExpansionType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public PackExpansionType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } } - public unsafe partial class UnaryTransformType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class DecayedType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 40)] + [StructLayout(LayoutKind.Explicit, Size = 56)] public new partial struct __Internal { [FieldOffset(0)] @@ -2732,47 +2443,50 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + public global::CppSharp.Parser.AST.QualifiedType.__Internal decayed; [FieldOffset(24)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal baseType; + public global::CppSharp.Parser.AST.QualifiedType.__Internal original; + + [FieldOffset(40)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18UnaryTransformTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11DecayedTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18UnaryTransformTypeC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST11DecayedTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new UnaryTransformType(native.ToPointer(), skipVTables); + return new DecayedType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) { - return new UnaryTransformType(native, skipVTables); + return new DecayedType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DecayedType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); - global::CppSharp.Parser.AST.UnaryTransformType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); + global::CppSharp.Parser.AST.DecayedType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) + private DecayedType(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected UnaryTransformType(void* native, bool skipVTables = false) + protected DecayedType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2781,19 +2495,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public UnaryTransformType() + public DecayedType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType _0) + public DecayedType(global::CppSharp.Parser.AST.DecayedType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2802,467 +2516,550 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.QualifiedType Decayed { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed); } set { - ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType BaseType + public global::CppSharp.Parser.AST.QualifiedType Original { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original); } set { - ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public global::CppSharp.Parser.AST.QualifiedType Pointee + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee); + } + + set + { + ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class VectorType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TemplateArgument : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 40)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind kind; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal elementType; + public global::CppSharp.Parser.AST.QualifiedType.__Internal type; [FieldOffset(24)] - public uint numElements; + public global::System.IntPtr declaration; + + [FieldOffset(32)] + public long integral; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10VectorTypeC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST16TemplateArgumentC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10VectorTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST16TemplateArgumentC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.VectorType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public enum ArgumentKind { - return new VectorType(native.ToPointer(), skipVTables); + Type = 0, + Declaration = 1, + NullPtr = 2, + Integral = 3, + Template = 4, + TemplateExpansion = 5, + Expression = 6, + Pack = 7 } - internal static global::CppSharp.Parser.AST.VectorType __CreateInstance(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VectorType(native, skipVTables); + return new TemplateArgument(native.ToPointer(), skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VectorType.__Internal native) + internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); - global::CppSharp.Parser.AST.VectorType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return new TemplateArgument(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateArgument.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); + *(global::CppSharp.Parser.AST.TemplateArgument.__Internal*) ret = native; return ret.ToPointer(); } - private VectorType(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + private TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VectorType(void* native, bool skipVTables = false) - : base((void*) null) + protected TemplateArgument(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VectorType() - : this((void*) null) + public TemplateArgument() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VectorType(global::CppSharp.Parser.AST.VectorType _0) - : this((void*) null) + public TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) _0.__Instance); } - public global::CppSharp.Parser.AST.QualifiedType ElementType + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.TemplateArgument __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind Kind { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType); + return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind; } set { - ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind = value; } } - public uint NumElements + public global::CppSharp.Parser.AST.QualifiedType Type { get { - return ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type); } set { - ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements = value; + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - } - public unsafe partial class BuiltinType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 12)] - public new partial struct __Internal + public global::CppSharp.Parser.AST.Declaration Declaration { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.PrimitiveType type; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11BuiltinTypeC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11BuiltinTypeC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new BuiltinType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) - { - return new BuiltinType(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.BuiltinType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); - global::CppSharp.Parser.AST.BuiltinType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private BuiltinType(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected BuiltinType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public BuiltinType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration); + return __result0; + } - public BuiltinType(global::CppSharp.Parser.AST.BuiltinType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public global::CppSharp.Parser.AST.PrimitiveType Type + public long Integral { get { - return ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type; + return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral; } set { - ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type = value; + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral = value; } } } - public unsafe partial class VTableComponent : IDisposable + public unsafe partial class Template : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 16)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 176)] + public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.VTableComponentKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public uint offset; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr declaration; + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(40)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(48)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(56)] + public byte isIncomplete; + + [FieldOffset(57)] + public byte isDependent; + + [FieldOffset(58)] + public byte isImplicit; + + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(72)] + public uint definitionOrder; + + [FieldOffset(80)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] + public global::System.IntPtr originalPtr; + + [FieldOffset(136)] + public global::System.IntPtr comment; + + [FieldOffset(144)] + public global::System.IntPtr TemplatedDecl; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal Parameters; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15VTableComponentC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15VTableComponentC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } + EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2Ev")] + internal static extern void ctor_1(global::System.IntPtr instance); - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Template13getParametersEj")] + internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); - internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Template13addParametersERPNS1_11DeclarationE")] + internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Template15clearParametersEv")] + internal static extern void ClearParameters_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Template18getParametersCountEv")] + internal static extern uint GetParametersCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.Template __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VTableComponent(native.ToPointer(), skipVTables); + return new Template(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Template __CreateInstance(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) { - return new VTableComponent(native, skipVTables); + return new Template(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VTableComponent.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Template.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); - *(global::CppSharp.Parser.AST.VTableComponent.__Internal*) ret = native; + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); + global::CppSharp.Parser.AST.Template.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VTableComponent(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + private Template(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VTableComponent(void* native, bool skipVTables = false) + protected Template(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VTableComponent() + public Template(global::CppSharp.Parser.AST.DeclarationKind kind) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public VTableComponent(global::CppSharp.Parser.AST.VTableComponent _0) + public Template() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) _0.__Instance); + __Internal.ctor_1((__Instance + __PointerAdjustment)); } - public void Dispose() + public Template(global::CppSharp.Parser.AST.Template _0) + : this((void*) null) { - Dispose(disposing: true); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.VTableComponent __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.VTableComponentKind Kind + public global::CppSharp.Parser.AST.Declaration GetParameters(uint i) { - get - { - return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind = value; - } + var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Declaration __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(__ret); + return __result0; } - public uint Offset + public void AddParameters(global::CppSharp.Parser.AST.Declaration s) { - get - { - return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); + } - set - { - ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset = value; - } + public void ClearParameters() + { + __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.Declaration Declaration + public static implicit operator global::CppSharp.Parser.AST.Template(global::CppSharp.Parser.AST.DeclarationKind kind) + { + return new global::CppSharp.Parser.AST.Template(kind); + } + + public global::CppSharp.Parser.AST.Declaration TemplatedDecl { get { global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration); + if (((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl); return __result0; } set { - ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public uint ParametersCount + { + get + { + var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class VTableLayout : IDisposable + public unsafe partial class TemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 56)] + public new partial struct __Internal { [FieldOffset(0)] - internal global::Std.Vector.__Internal Components; + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + internal global::Std.Vector.__Internal Arguments; + + [FieldOffset(32)] + public global::System.IntPtr _template; + + [FieldOffset(40)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationTypeD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout13getComponentsEj")] - internal static extern global::CppSharp.Parser.AST.VTableComponent.__Internal GetComponents_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType12getArgumentsEj")] + internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout13addComponentsERNS1_15VTableComponentE")] - internal static extern void AddComponents_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType12addArgumentsERNS1_16TemplateArgumentE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout15clearComponentsEv")] - internal static extern void ClearComponents_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout18getComponentsCountEv")] - internal static extern uint GetComponentsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST26TemplateSpecializationType17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VTableLayout(native.ToPointer(), skipVTables); + return new TemplateSpecializationType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) { - return new VTableLayout(native, skipVTables); + return new TemplateSpecializationType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VTableLayout.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); - global::CppSharp.Parser.AST.VTableLayout.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); + global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VTableLayout(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + private TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VTableLayout(void* native, bool skipVTables = false) + protected TemplateSpecializationType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VTableLayout() + public TemplateSpecializationType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VTableLayout(global::CppSharp.Parser.AST.VTableLayout _0) + public TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -3271,14 +3068,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.VTableLayout __dummy; + global::CppSharp.Parser.AST.Type __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -3286,118 +3078,166 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.VTableComponent GetComponents(uint i) + public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) { - var __ret = __Internal.GetComponents_0((__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.VTableComponent.__CreateInstance(__ret); + var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); + __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); } - public void AddComponents(global::CppSharp.Parser.AST.VTableComponent s) + public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddComponents_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearComponents() + public void ClearArguments() { - __Internal.ClearComponents_0((__Instance + __PointerAdjustment)); + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint ComponentsCount + public global::CppSharp.Parser.AST.Template Template { get { - var __ret = __Internal.GetComponentsCount_0((__Instance + __PointerAdjustment)); + global::CppSharp.Parser.AST.Template __result0; + if (((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template)) + __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template]; + else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public global::CppSharp.Parser.AST.QualifiedType Desugared + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared); + } + + set + { + ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public uint ArgumentsCount + { + get + { + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class VFTableInfo : IDisposable + public unsafe partial class DependentTemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 40)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 48)] + public new partial struct __Internal { [FieldOffset(0)] - public ulong VBTableIndex; + public global::CppSharp.Parser.AST.TypeKind kind; - [FieldOffset(8)] - public uint VFPtrOffset; + [FieldOffset(4)] + public byte isDependent; - [FieldOffset(12)] - public uint VFPtrFullOffset; + [FieldOffset(8)] + internal global::Std.Vector.__Internal Arguments; - [FieldOffset(16)] - public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; + [FieldOffset(32)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationTypeD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); - } - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType12getArgumentsEj")] + internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType12addArgumentsERNS1_16TemplateArgumentE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); - internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST35DependentTemplateSpecializationType17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VFTableInfo(native.ToPointer(), skipVTables); + return new DependentTemplateSpecializationType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) { - return new VFTableInfo(native, skipVTables); + return new DependentTemplateSpecializationType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VFTableInfo.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); - global::CppSharp.Parser.AST.VFTableInfo.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); + global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + private DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VFTableInfo(void* native, bool skipVTables = false) + protected DependentTemplateSpecializationType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VFTableInfo() + public DependentTemplateSpecializationType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo _0) + public DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -3406,14 +3246,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.VFTableInfo __dummy; + global::CppSharp.Parser.AST.Type __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -3421,168 +3256,193 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public ulong VBTableIndex + public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) { - get - { - return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex; - } - - set - { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex = value; - } + var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); + __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); } - public uint VFPtrOffset + public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) { - get - { - return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + } - set - { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset = value; - } + public void ClearArguments() + { + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint VFPtrFullOffset + public global::CppSharp.Parser.AST.QualifiedType Desugared { get { - return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared); } set { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset = value; + ((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.VTableLayout Layout + public uint ArgumentsCount { get { - return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout); - } - - set - { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class LayoutField : IDisposable + public unsafe partial class TypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 40)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 176)] + public new partial struct __Internal { [FieldOffset(0)] - public uint offset; + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::Std.BasicString.__Internal Name; + public global::System.IntPtr _namespace; [FieldOffset(16)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; [FieldOffset(32)] - public global::System.IntPtr fieldPtr; + public global::Std.BasicString.__Internal Name; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(40)] + public global::Std.BasicString.__Internal USR; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr other); + [FieldOffset(48)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(56)] + public byte isIncomplete; + + [FieldOffset(57)] + public byte isDependent; + + [FieldOffset(58)] + public byte isImplicit; + + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(72)] + public uint definitionOrder; + + [FieldOffset(80)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] + public global::System.IntPtr originalPtr; + + [FieldOffset(136)] + public global::System.IntPtr comment; + + [FieldOffset(144)] + public uint depth; + + [FieldOffset(148)] + public uint index; + + [FieldOffset(152)] + public byte isParameterPack; + + [FieldOffset(160)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal defaultArgument; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutField7getNameEv")] - internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutField7setNameEPKc")] - internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new LayoutField(native.ToPointer(), skipVTables); + return new TypeTemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) { - return new LayoutField(native, skipVTables); + return new TypeTemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutField.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); - global::CppSharp.Parser.AST.LayoutField.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); + global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private LayoutField(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) + private TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected LayoutField(void* native, bool skipVTables = false) + protected TypeTemplateParameter(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public LayoutField() + public TypeTemplateParameter() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public LayoutField(global::CppSharp.Parser.AST.LayoutField other) + public TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(other, null)) - throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = other.__Instance; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.LayoutField __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -3590,153 +3450,116 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public uint Offset + public global::CppSharp.Parser.AST.QualifiedType DefaultArgument { get { - return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument); } set { - ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset = value; + ((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } + } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public unsafe partial class TemplateParameterType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 32)] + public new partial struct __Internal { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType); - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; - set - { - ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } + [FieldOffset(4)] + public byte isDependent; - public global::System.IntPtr FieldPtr - { - get - { - return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr; - } + [FieldOffset(8)] + public global::System.IntPtr parameter; - set - { - ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr = (global::System.IntPtr) value; - } - } + [FieldOffset(16)] + public uint depth; - public string Name - { - get - { - var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } + [FieldOffset(20)] + public uint index; - set - { - __Internal.SetName_0((__Instance + __PointerAdjustment), value); - } - } - } - - public unsafe partial class LayoutBase : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 16)] - public partial struct __Internal - { - [FieldOffset(0)] - public uint offset; - - [FieldOffset(8)] - public global::System.IntPtr _class; + [FieldOffset(24)] + public byte isParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr other); + EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST21TemplateParameterTypeD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new LayoutBase(native.ToPointer(), skipVTables); + return new TemplateParameterType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) { - return new LayoutBase(native, skipVTables); + return new TemplateParameterType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutBase.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); - global::CppSharp.Parser.AST.LayoutBase.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); + global::CppSharp.Parser.AST.TemplateParameterType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private LayoutBase(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) + private TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected LayoutBase(void* native, bool skipVTables = false) + protected TemplateParameterType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public LayoutBase() + public TemplateParameterType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public LayoutBase(global::CppSharp.Parser.AST.LayoutBase other) + public TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(other, null)) - throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = other.__Instance; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.LayoutBase __dummy; + global::CppSharp.Parser.AST.Type __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -3744,199 +3567,138 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public uint Offset + public global::CppSharp.Parser.AST.TypeTemplateParameter Parameter { get { - return ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset; + global::CppSharp.Parser.AST.TypeTemplateParameter __result0; + if (((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter)) + __result0 = (global::CppSharp.Parser.AST.TypeTemplateParameter) global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter]; + else __result0 = global::CppSharp.Parser.AST.TypeTemplateParameter.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter); + return __result0; } set { - ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset = value; + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public global::CppSharp.Parser.AST.Class Class + public uint Depth { get { - global::CppSharp.Parser.AST.Class __result0; - if (((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class); - return __result0; + return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth; } set { - ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth = value; } } - } - public unsafe partial class ClassLayout : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 136)] - public partial struct __Internal + public uint Index { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.CppAbi ABI; - - [FieldOffset(8)] - internal global::Std.Vector.__Internal VFTables; - - [FieldOffset(32)] - public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; + get + { + return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index; + } - [FieldOffset(56)] - public byte hasOwnVFPtr; + set + { + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index = value; + } + } - [FieldOffset(64)] - public long VBPtrOffset; + public bool IsParameterPack + { + get + { + return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack != 0; + } - [FieldOffset(72)] - public int alignment; + set + { + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); + } + } + } - [FieldOffset(76)] - public int size; + public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 32)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; - [FieldOffset(80)] - public int dataSize; + [FieldOffset(4)] + public byte isDependent; - [FieldOffset(88)] - internal global::Std.Vector.__Internal Fields; + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal replacement; - [FieldOffset(112)] - internal global::Std.Vector.__Internal Bases; + [FieldOffset(24)] + public global::System.IntPtr replacedParameter; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2ERKS2_")] internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11getVFTablesEj")] - internal static extern void GetVFTables_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11addVFTablesERNS1_11VFTableInfoE")] - internal static extern void AddVFTables_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout13clearVFTablesEv")] - internal static extern void ClearVFTables_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout9getFieldsEj")] - internal static extern void GetFields_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout9addFieldsERNS1_11LayoutFieldE")] - internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11clearFieldsEv")] - internal static extern void ClearFields_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout8getBasesEj")] - internal static extern void GetBases_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout8addBasesERNS1_10LayoutBaseE")] - internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout10clearBasesEv")] - internal static extern void ClearBases_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout16getVFTablesCountEv")] - internal static extern uint GetVFTablesCount_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout14getFieldsCountEv")] - internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout13getBasesCountEv")] - internal static extern uint GetBasesCount_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassLayout(native.ToPointer(), skipVTables); + return new TemplateParameterSubstitutionType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) { - return new ClassLayout(native, skipVTables); + return new TemplateParameterSubstitutionType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassLayout.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); - global::CppSharp.Parser.AST.ClassLayout.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); + global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassLayout(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) + private TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassLayout(void* native, bool skipVTables = false) + protected TemplateParameterSubstitutionType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public ClassLayout() + public TemplateParameterSubstitutionType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public ClassLayout(global::CppSharp.Parser.AST.ClassLayout _0) + public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -3945,204 +3707,42 @@ namespace CppSharp __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.ClassLayout __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.VFTableInfo GetVFTables(uint i) - { - var __ret = new global::CppSharp.Parser.AST.VFTableInfo.__Internal(); - __Internal.GetVFTables_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.VFTableInfo.__CreateInstance(__ret); - } - - public void AddVFTables(global::CppSharp.Parser.AST.VFTableInfo s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddVFTables_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearVFTables() - { - __Internal.ClearVFTables_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.LayoutField GetFields(uint i) - { - var __ret = new global::CppSharp.Parser.AST.LayoutField.__Internal(); - __Internal.GetFields_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.LayoutField.__CreateInstance(__ret); - } - - public void AddFields(global::CppSharp.Parser.AST.LayoutField s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearFields() - { - __Internal.ClearFields_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.LayoutBase GetBases(uint i) - { - var __ret = new global::CppSharp.Parser.AST.LayoutBase.__Internal(); - __Internal.GetBases_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.LayoutBase.__CreateInstance(__ret); - } - - public void AddBases(global::CppSharp.Parser.AST.LayoutBase s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearBases() - { - __Internal.ClearBases_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.CppAbi ABI - { - get - { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI; - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI = value; - } - } - - public global::CppSharp.Parser.AST.VTableLayout Layout - { - get - { - return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout); - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; - } - } - - public bool HasOwnVFPtr - { - get - { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr != 0; - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr = (byte) (value ? 1 : 0); - } - } - - public long VBPtrOffset - { - get - { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset; - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset = value; - } - } - - public int Alignment - { - get - { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment; - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment = value; - } - } - - public int Size + public global::CppSharp.Parser.AST.QualifiedType Replacement { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement); } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size = value; + ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public int DataSize + public global::CppSharp.Parser.AST.TemplateParameterType ReplacedParameter { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize; + global::CppSharp.Parser.AST.TemplateParameterType __result0; + if (((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter)) + __result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter]; + else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter); + return __result0; } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize = value; - } - } - - public uint VFTablesCount - { - get - { - var __ret = __Internal.GetVFTablesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint FieldsCount - { - get - { - var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint BasesCount - { - get - { - var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class Declaration : IDisposable + public unsafe partial class Class : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 120)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 536)] + public new partial struct __Internal { [FieldOffset(0)] public global::CppSharp.Parser.AST.DeclarationKind kind; @@ -4190,127 +3790,234 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] public global::System.IntPtr originalPtr; - [FieldOffset(112)] + [FieldOffset(136)] public global::System.IntPtr comment; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + [FieldOffset(144)] + internal global::Std.Vector.__Internal Namespaces; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(168)] + internal global::Std.Vector.__Internal Enums; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11DeclarationD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + [FieldOffset(192)] + internal global::Std.Vector.__Internal Functions; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration23getPreprocessedEntitiesEj")] - internal static extern global::System.IntPtr GetPreprocessedEntities_0(global::System.IntPtr instance, uint i); + [FieldOffset(216)] + internal global::Std.Vector.__Internal Classes; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration23addPreprocessedEntitiesERPNS1_18PreprocessedEntityE")] - internal static extern void AddPreprocessedEntities_0(global::System.IntPtr instance, global::System.IntPtr s); + [FieldOffset(240)] + internal global::Std.Vector.__Internal Templates; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration25clearPreprocessedEntitiesEv")] - internal static extern void ClearPreprocessedEntities_0(global::System.IntPtr instance); + [FieldOffset(264)] + internal global::Std.Vector.__Internal Typedefs; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration7getNameEv")] - internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); + [FieldOffset(288)] + internal global::Std.Vector.__Internal TypeAliases; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration7setNameEPKc")] - internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + [FieldOffset(312)] + internal global::Std.Vector.__Internal Variables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration6getUSREv")] - internal static extern global::System.IntPtr USR_0(global::System.IntPtr instance); + [FieldOffset(336)] + internal global::Std.Vector.__Internal Friends; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration6setUSREPKc")] - internal static extern void SetUSR_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + [FieldOffset(360)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(408)] + public byte isAnonymous; + + [FieldOffset(416)] + internal global::Std.Vector.__Internal Bases; + + [FieldOffset(440)] + internal global::Std.Vector.__Internal Fields; + + [FieldOffset(464)] + internal global::Std.Vector.__Internal Methods; + + [FieldOffset(488)] + internal global::Std.Vector.__Internal Specifiers; + + [FieldOffset(512)] + public byte isPOD; + + [FieldOffset(513)] + public byte isAbstract; + + [FieldOffset(514)] + public byte isUnion; + + [FieldOffset(515)] + public byte isDynamic; + + [FieldOffset(516)] + public byte isPolymorphic; + + [FieldOffset(517)] + public byte hasNonTrivialDefaultConstructor; + + [FieldOffset(518)] + public byte hasNonTrivialCopyConstructor; + + [FieldOffset(519)] + public byte hasNonTrivialDestructor; + + [FieldOffset(520)] + public byte isExternCContext; + + [FieldOffset(521)] + public byte isInjected; + + [FieldOffset(528)] + public global::System.IntPtr layout; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration12getDebugTextEv")] - internal static extern global::System.IntPtr DebugText_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST5ClassC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration12setDebugTextEPKc")] - internal static extern void SetDebugText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="_ZN8CppSharp9CppParser3AST5ClassC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Declaration28getPreprocessedEntitiesCountEv")] - internal static extern uint GetPreprocessedEntitiesCount_0(global::System.IntPtr instance); - } + EntryPoint="_ZN8CppSharp9CppParser3AST5ClassD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class8getBasesEj")] + internal static extern global::System.IntPtr GetBases_0(global::System.IntPtr instance, uint i); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class8addBasesERPNS1_18BaseClassSpecifierE")] + internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class10clearBasesEv")] + internal static extern void ClearBases_0(global::System.IntPtr instance); - internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class9getFieldsEj")] + internal static extern global::System.IntPtr GetFields_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class9addFieldsERPNS1_5FieldE")] + internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class11clearFieldsEv")] + internal static extern void ClearFields_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class10getMethodsEj")] + internal static extern global::System.IntPtr GetMethods_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class10addMethodsERPNS1_6MethodE")] + internal static extern void AddMethods_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class12clearMethodsEv")] + internal static extern void ClearMethods_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class13getSpecifiersEj")] + internal static extern global::System.IntPtr GetSpecifiers_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class13addSpecifiersERPNS1_19AccessSpecifierDeclE")] + internal static extern void AddSpecifiers_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class15clearSpecifiersEv")] + internal static extern void ClearSpecifiers_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class13getBasesCountEv")] + internal static extern uint GetBasesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class14getFieldsCountEv")] + internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class15getMethodsCountEv")] + internal static extern uint GetMethodsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST5Class18getSpecifiersCountEv")] + internal static extern uint GetSpecifiersCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.Class __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Declaration(native.ToPointer(), skipVTables); + return new Class(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Class __CreateInstance(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) { - return new Declaration(native, skipVTables); + return new Class(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Declaration.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Class.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); - global::CppSharp.Parser.AST.Declaration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); + global::CppSharp.Parser.AST.Class.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Declaration(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) + private Class(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Declaration(void* native, bool skipVTables = false) + protected Class(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) + public Class() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Declaration(global::CppSharp.Parser.AST.Declaration _0) + public Class(global::CppSharp.Parser.AST.Class _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -4319,12 +4026,7 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); @@ -4334,613 +4036,1434 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.PreprocessedEntity GetPreprocessedEntities(uint i) + public global::CppSharp.Parser.AST.BaseClassSpecifier GetBases(uint i) { - var __ret = __Internal.GetPreprocessedEntities_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.PreprocessedEntity __result0; + var __ret = __Internal.GetBases_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.BaseClassSpecifier __result0; if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.PreprocessedEntity) global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.PreprocessedEntity.__CreateInstance(__ret); + else if (global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.BaseClassSpecifier) global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.BaseClassSpecifier.__CreateInstance(__ret); return __result0; } - public void AddPreprocessedEntities(global::CppSharp.Parser.AST.PreprocessedEntity s) + public void AddBases(global::CppSharp.Parser.AST.BaseClassSpecifier s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddPreprocessedEntities_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearPreprocessedEntities() + public void ClearBases() { - __Internal.ClearPreprocessedEntities_0((__Instance + __PointerAdjustment)); + __Internal.ClearBases_0((__Instance + __PointerAdjustment)); } - public static implicit operator global::CppSharp.Parser.AST.Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) + public global::CppSharp.Parser.AST.Field GetFields(uint i) { - return new global::CppSharp.Parser.AST.Declaration(kind); + var __ret = __Internal.GetFields_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Field __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Field.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Field) global::CppSharp.Parser.AST.Field.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Field.__CreateInstance(__ret); + return __result0; } - public global::CppSharp.Parser.AST.DeclarationKind Kind + public void AddFields(global::CppSharp.Parser.AST.Field s) { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind = value; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.AccessSpecifier Access + public void ClearFields() { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access; - } - - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access = value; - } + __Internal.ClearFields_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.DeclarationContext Namespace + public global::CppSharp.Parser.AST.Method GetMethods(uint i) { - get - { - global::CppSharp.Parser.AST.DeclarationContext __result0; - if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace)) - __result0 = (global::CppSharp.Parser.AST.DeclarationContext) global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace]; - else __result0 = global::CppSharp.Parser.AST.DeclarationContext.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + var __ret = __Internal.GetMethods_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Method __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Method.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Method) global::CppSharp.Parser.AST.Method.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Method.__CreateInstance(__ret); + return __result0; } - public global::CppSharp.Parser.SourceLocation Location + public void AddMethods(global::CppSharp.Parser.AST.Method s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddMethods_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearMethods() + { + __Internal.ClearMethods_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.AccessSpecifierDecl GetSpecifiers(uint i) + { + var __ret = __Internal.GetSpecifiers_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.AccessSpecifierDecl __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.AccessSpecifierDecl) global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.AccessSpecifierDecl.__CreateInstance(__ret); + return __result0; + } + + public void AddSpecifiers(global::CppSharp.Parser.AST.AccessSpecifierDecl s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecifiers_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearSpecifiers() + { + __Internal.ClearSpecifiers_0((__Instance + __PointerAdjustment)); + } + + public bool IsPOD { get { - return global::CppSharp.Parser.SourceLocation.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location); + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location = value.__Instance; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD = (byte) (value ? 1 : 0); } } - public int LineNumberStart + public bool IsAbstract { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract = (byte) (value ? 1 : 0); } } - public int LineNumberEnd + public bool IsUnion { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion = (byte) (value ? 1 : 0); } } - public bool IsIncomplete + public bool IsDynamic { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete != 0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic = (byte) (value ? 1 : 0); } } - public bool IsDependent + public bool IsPolymorphic { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent != 0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic = (byte) (value ? 1 : 0); } } - public bool IsImplicit + public bool HasNonTrivialDefaultConstructor { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit != 0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.Declaration CompleteDeclaration + public bool HasNonTrivialCopyConstructor { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration); - return __result0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor = (byte) (value ? 1 : 0); } } - public uint DefinitionOrder + public bool HasNonTrivialDestructor { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor = (byte) (value ? 1 : 0); } } - public global::System.IntPtr OriginalPtr + public bool IsExternCContext { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.RawComment Comment + public bool IsInjected { get { - global::CppSharp.Parser.AST.RawComment __result0; - if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.RawComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment)) - __result0 = (global::CppSharp.Parser.AST.RawComment) global::CppSharp.Parser.AST.RawComment.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment]; - else __result0 = global::CppSharp.Parser.AST.RawComment.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment); - return __result0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected = (byte) (value ? 1 : 0); } } - public string Name + public global::CppSharp.Parser.AST.ClassLayout Layout { get { - var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + global::CppSharp.Parser.AST.ClassLayout __result0; + if (((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout)) + __result0 = (global::CppSharp.Parser.AST.ClassLayout) global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap[((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout]; + else __result0 = global::CppSharp.Parser.AST.ClassLayout.__CreateInstance(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout); + return __result0; } set { - __Internal.SetName_0((__Instance + __PointerAdjustment), value); + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public string USR + public uint BasesCount { get { - var __ret = __Internal.USR_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetUSR_0((__Instance + __PointerAdjustment), value); + var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); + return __ret; } } - public string DebugText + public uint FieldsCount { get { - var __ret = __Internal.DebugText_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); + return __ret; } + } - set + public uint MethodsCount + { + get { - __Internal.SetDebugText_0((__Instance + __PointerAdjustment), value); + var __ret = __Internal.GetMethodsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } - public uint PreprocessedEntitiesCount + public uint SpecifiersCount { get { - var __ret = __Internal.GetPreprocessedEntitiesCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetSpecifiersCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class DeclarationContext : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 392)] + [StructLayout(LayoutKind.Explicit, Size = 32)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.TypeKind kind; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; + public global::CppSharp.Parser.AST.QualifiedType.__Internal injectedSpecializationType; [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; + public global::System.IntPtr _class; - [FieldOffset(40)] - public global::Std.BasicString.__Internal USR; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST21InjectedClassNameTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(48)] - public global::Std.BasicString.__Internal DebugText; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST21InjectedClassNameTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } - [FieldOffset(56)] - public byte isIncomplete; + internal static new global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new InjectedClassNameType(native.ToPointer(), skipVTables); + } - [FieldOffset(57)] - public byte isDependent; + internal static global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + { + return new InjectedClassNameType(native, skipVTables); + } - [FieldOffset(58)] - public byte isImplicit; + private static void* __CopyValue(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + global::CppSharp.Parser.AST.InjectedClassNameType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; + private InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [FieldOffset(72)] - public uint definitionOrder; + protected InjectedClassNameType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [FieldOffset(80)] - internal global::Std.Vector.__Internal PreprocessedEntities; + public InjectedClassNameType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(104)] - public global::System.IntPtr originalPtr; + public InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(112)] - public global::System.IntPtr comment; + public global::CppSharp.Parser.AST.QualifiedType InjectedSpecializationType + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType); + } - [FieldOffset(120)] - internal global::Std.Vector.__Internal Namespaces; + set + { + ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } - [FieldOffset(144)] - internal global::Std.Vector.__Internal Enums; + public global::CppSharp.Parser.AST.Class Class + { + get + { + global::CppSharp.Parser.AST.Class __result0; + if (((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + } + + public unsafe partial class DependentNameType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 24)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17DependentNameTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17DependentNameTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } + + internal static new global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new DependentNameType(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + { + return new DependentNameType(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.DependentNameType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + global::CppSharp.Parser.AST.DependentNameType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private DependentNameType(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected DependentNameType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public DependentNameType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public DependentNameType(global::CppSharp.Parser.AST.DependentNameType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } + + public global::CppSharp.Parser.AST.QualifiedType Desugared + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared); + } + + set + { + ((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + } + + public unsafe partial class PackExpansionType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 8)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17PackExpansionTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17PackExpansionTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } + + internal static new global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new PackExpansionType(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) + { + return new PackExpansionType(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.PackExpansionType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + global::CppSharp.Parser.AST.PackExpansionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected PackExpansionType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public PackExpansionType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } + } + + public unsafe partial class UnaryTransformType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 40)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + + [FieldOffset(24)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal baseType; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18UnaryTransformTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18UnaryTransformTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } + + internal static new global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new UnaryTransformType(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) + { + return new UnaryTransformType(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + global::CppSharp.Parser.AST.UnaryTransformType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected UnaryTransformType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public UnaryTransformType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } + + public global::CppSharp.Parser.AST.QualifiedType Desugared + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared); + } + + set + { + ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public global::CppSharp.Parser.AST.QualifiedType BaseType + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType); + } + + set + { + ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + } + + public unsafe partial class VectorType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 32)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal elementType; + + [FieldOffset(24)] + public uint numElements; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10VectorTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10VectorTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } + + internal static new global::CppSharp.Parser.AST.VectorType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new VectorType(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.VectorType __CreateInstance(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + { + return new VectorType(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.VectorType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + global::CppSharp.Parser.AST.VectorType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private VectorType(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected VectorType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public VectorType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public VectorType(global::CppSharp.Parser.AST.VectorType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } + + public global::CppSharp.Parser.AST.QualifiedType ElementType + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType); + } + + set + { + ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public uint NumElements + { + get + { + return ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements; + } + + set + { + ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements = value; + } + } + } + + public unsafe partial class BuiltinType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 12)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + public global::CppSharp.Parser.AST.PrimitiveType type; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11BuiltinTypeC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11BuiltinTypeC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + } + + internal static new global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new BuiltinType(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) + { + return new BuiltinType(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.BuiltinType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + global::CppSharp.Parser.AST.BuiltinType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private BuiltinType(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected BuiltinType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public BuiltinType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public BuiltinType(global::CppSharp.Parser.AST.BuiltinType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + } + + public global::CppSharp.Parser.AST.PrimitiveType Type + { + get + { + return ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type; + } + + set + { + ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type = value; + } + } + } + + public unsafe partial class VTableComponent : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 16)] + public partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.VTableComponentKind kind; + + [FieldOffset(4)] + public uint offset; + + [FieldOffset(8)] + public global::System.IntPtr declaration; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST15VTableComponentC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST15VTableComponentC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + } + + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new VTableComponent(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + { + return new VTableComponent(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.VTableComponent.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + *(global::CppSharp.Parser.AST.VTableComponent.__Internal*) ret = native; + return ret.ToPointer(); + } + + private VTableComponent(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [FieldOffset(168)] - internal global::Std.Vector.__Internal Functions; + protected VTableComponent(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [FieldOffset(192)] - internal global::Std.Vector.__Internal Classes; + public VTableComponent() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(216)] - internal global::Std.Vector.__Internal Templates; + public VTableComponent(global::CppSharp.Parser.AST.VTableComponent _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) _0.__Instance); + } - [FieldOffset(240)] - internal global::Std.Vector.__Internal Typedefs; + public void Dispose() + { + Dispose(disposing: true); + } - [FieldOffset(264)] - internal global::Std.Vector.__Internal TypeAliases; + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.VTableComponent __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - [FieldOffset(288)] - internal global::Std.Vector.__Internal Variables; + public global::CppSharp.Parser.AST.VTableComponentKind Kind + { + get + { + return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind; + } - [FieldOffset(312)] - internal global::Std.Vector.__Internal Friends; + set + { + ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind = value; + } + } - [FieldOffset(336)] - internal global::Std.Map.__Internal anonymous; + public uint Offset + { + get + { + return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset; + } - [FieldOffset(384)] - public byte isAnonymous; + set + { + ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset = value; + } + } + + public global::CppSharp.Parser.AST.Declaration Declaration + { + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + } + + public unsafe partial class VTableLayout : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 24)] + public partial struct __Internal + { + [FieldOffset(0)] + internal global::Std.Vector.__Internal Components; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayoutD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13getNamespacesEj")] - internal static extern global::System.IntPtr GetNamespaces_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout13getComponentsEj")] + internal static extern global::CppSharp.Parser.AST.VTableComponent.__Internal GetComponents_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13addNamespacesERPNS1_9NamespaceE")] - internal static extern void AddNamespaces_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout13addComponentsERNS1_15VTableComponentE")] + internal static extern void AddComponents_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15clearNamespacesEv")] - internal static extern void ClearNamespaces_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout15clearComponentsEv")] + internal static extern void ClearComponents_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext8getEnumsEj")] - internal static extern global::System.IntPtr GetEnums_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST12VTableLayout18getComponentsCountEv")] + internal static extern uint GetComponentsCount_0(global::System.IntPtr instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext8addEnumsERPNS1_11EnumerationE")] - internal static extern void AddEnums_0(global::System.IntPtr instance, global::System.IntPtr s); + public global::System.IntPtr __Instance { get; protected set; } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10clearEnumsEv")] - internal static extern void ClearEnums_0(global::System.IntPtr instance); + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getFunctionsEj")] - internal static extern global::System.IntPtr GetFunctions_0(global::System.IntPtr instance, uint i); + protected bool __ownsNativeInstance; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addFunctionsERPNS1_8FunctionE")] - internal static extern void AddFunctions_0(global::System.IntPtr instance, global::System.IntPtr s); + internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new VTableLayout(native.ToPointer(), skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearFunctionsEv")] - internal static extern void ClearFunctions_0(global::System.IntPtr instance); + internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + { + return new VTableLayout(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.VTableLayout.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + global::CppSharp.Parser.AST.VTableLayout.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private VTableLayout(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected VTableLayout(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public VTableLayout() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public VTableLayout(global::CppSharp.Parser.AST.VTableLayout _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.VTableLayout __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.VTableComponent GetComponents(uint i) + { + var __ret = __Internal.GetComponents_0((__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.VTableComponent.__CreateInstance(__ret); + } + + public void AddComponents(global::CppSharp.Parser.AST.VTableComponent s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddComponents_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearComponents() + { + __Internal.ClearComponents_0((__Instance + __PointerAdjustment)); + } + + public uint ComponentsCount + { + get + { + var __ret = __Internal.GetComponentsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + } + + public unsafe partial class VFTableInfo : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 40)] + public partial struct __Internal + { + [FieldOffset(0)] + public ulong VBTableIndex; + + [FieldOffset(8)] + public uint VFPtrOffset; + + [FieldOffset(12)] + public uint VFPtrFullOffset; + + [FieldOffset(16)] + public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10getClassesEj")] - internal static extern global::System.IntPtr GetClasses_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10addClassesERPNS1_5ClassE")] - internal static extern void AddClasses_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12clearClassesEv")] - internal static extern void ClearClasses_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11VFTableInfoD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getTemplatesEj")] - internal static extern global::System.IntPtr GetTemplates_0(global::System.IntPtr instance, uint i); + public global::System.IntPtr __Instance { get; protected set; } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addTemplatesERPNS1_8TemplateE")] - internal static extern void AddTemplates_0(global::System.IntPtr instance, global::System.IntPtr s); + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearTemplatesEv")] - internal static extern void ClearTemplates_0(global::System.IntPtr instance); + protected bool __ownsNativeInstance; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext11getTypedefsEj")] - internal static extern global::System.IntPtr GetTypedefs_0(global::System.IntPtr instance, uint i); + internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new VFTableInfo(native.ToPointer(), skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext11addTypedefsERPNS1_11TypedefDeclE")] - internal static extern void AddTypedefs_0(global::System.IntPtr instance, global::System.IntPtr s); + internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + { + return new VFTableInfo(native, skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13clearTypedefsEv")] - internal static extern void ClearTypedefs_0(global::System.IntPtr instance); + private static void* __CopyValue(global::CppSharp.Parser.AST.VFTableInfo.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + global::CppSharp.Parser.AST.VFTableInfo.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14getTypeAliasesEj")] - internal static extern global::System.IntPtr GetTypeAliases_0(global::System.IntPtr instance, uint i); + private VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14addTypeAliasesERPNS1_9TypeAliasE")] - internal static extern void AddTypeAliases_0(global::System.IntPtr instance, global::System.IntPtr s); + protected VFTableInfo(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext16clearTypeAliasesEv")] - internal static extern void ClearTypeAliases_0(global::System.IntPtr instance); + public VFTableInfo() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getVariablesEj")] - internal static extern global::System.IntPtr GetVariables_0(global::System.IntPtr instance, uint i); + public VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addVariablesERPNS1_8VariableE")] - internal static extern void AddVariables_0(global::System.IntPtr instance, global::System.IntPtr s); + public void Dispose() + { + Dispose(disposing: true); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearVariablesEv")] - internal static extern void ClearVariables_0(global::System.IntPtr instance); + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.VFTableInfo __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10getFriendsEj")] - internal static extern global::System.IntPtr GetFriends_0(global::System.IntPtr instance, uint i); + public ulong VBTableIndex + { + get + { + return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10addFriendsERPNS1_6FriendE")] - internal static extern void AddFriends_0(global::System.IntPtr instance, global::System.IntPtr s); + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12clearFriendsEv")] - internal static extern void ClearFriends_0(global::System.IntPtr instance); + public uint VFPtrOffset + { + get + { + return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext18getNamespacesCountEv")] - internal static extern uint GetNamespacesCount_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13getEnumsCountEv")] - internal static extern uint GetEnumsCount_0(global::System.IntPtr instance); + public uint VFPtrFullOffset + { + get + { + return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getFunctionsCountEv")] - internal static extern uint GetFunctionsCount_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15getClassesCountEv")] - internal static extern uint GetClassesCount_0(global::System.IntPtr instance); + public global::CppSharp.Parser.AST.VTableLayout Layout + { + get + { + return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout); + } + + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; + } + } + } + + public unsafe partial class LayoutField : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 40)] + public partial struct __Internal + { + [FieldOffset(0)] + public uint offset; + + [FieldOffset(8)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(16)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(32)] + public global::System.IntPtr fieldPtr; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getTemplatesCountEv")] - internal static extern uint GetTemplatesCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext16getTypedefsCountEv")] - internal static extern uint GetTypedefsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr other); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext19getTypeAliasesCountEv")] - internal static extern uint GetTypeAliasesCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutFieldD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getVariablesCountEv")] - internal static extern uint GetVariablesCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutField7getNameEv")] + internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15getFriendsCountEv")] - internal static extern uint GetFriendsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11LayoutField7setNameEPKc")] + internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - internal static new global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DeclarationContext(native.ToPointer(), skipVTables); + return new LayoutField(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) { - return new DeclarationContext(native, skipVTables); + return new LayoutField(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DeclarationContext.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutField.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); - global::CppSharp.Parser.AST.DeclarationContext.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + global::CppSharp.Parser.AST.LayoutField.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) + private LayoutField(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DeclarationContext(void* native, bool skipVTables = false) - : base((void*) null) + protected LayoutField(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) - : this((void*) null) + public LayoutField() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext _0) - : this((void*) null) + public LayoutField(global::CppSharp.Parser.AST.LayoutField other) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; + if (ReferenceEquals(other, null)) + throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = other.__Instance; __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.LayoutField __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -4948,454 +5471,369 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Namespace GetNamespaces(uint i) - { - var __ret = __Internal.GetNamespaces_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Namespace __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Namespace.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Namespace) global::CppSharp.Parser.AST.Namespace.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Namespace.__CreateInstance(__ret); - return __result0; - } - - public void AddNamespaces(global::CppSharp.Parser.AST.Namespace s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddNamespaces_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearNamespaces() - { - __Internal.ClearNamespaces_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.Enumeration GetEnums(uint i) - { - var __ret = __Internal.GetEnums_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Enumeration __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Enumeration) global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Enumeration.__CreateInstance(__ret); - return __result0; - } - - public void AddEnums(global::CppSharp.Parser.AST.Enumeration s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddEnums_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearEnums() - { - __Internal.ClearEnums_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.Function GetFunctions(uint i) - { - var __ret = __Internal.GetFunctions_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Function __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(__ret); - return __result0; - } - - public void AddFunctions(global::CppSharp.Parser.AST.Function s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFunctions_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearFunctions() - { - __Internal.ClearFunctions_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.Class GetClasses(uint i) - { - var __ret = __Internal.GetClasses_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Class __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(__ret); - return __result0; - } - - public void AddClasses(global::CppSharp.Parser.AST.Class s) + public uint Offset { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddClasses_0((__Instance + __PointerAdjustment), __arg0); - } + get + { + return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset; + } - public void ClearClasses() - { - __Internal.ClearClasses_0((__Instance + __PointerAdjustment)); + set + { + ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset = value; + } } - public global::CppSharp.Parser.AST.Template GetTemplates(uint i) + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { - var __ret = __Internal.GetTemplates_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Template __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(__ret); - return __result0; - } + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType); + } - public void AddTemplates(global::CppSharp.Parser.AST.Template s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddTemplates_0((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } - public void ClearTemplates() + public global::System.IntPtr FieldPtr { - __Internal.ClearTemplates_0((__Instance + __PointerAdjustment)); - } + get + { + return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr; + } - public global::CppSharp.Parser.AST.TypedefDecl GetTypedefs(uint i) - { - var __ret = __Internal.GetTypedefs_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.TypedefDecl __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.TypedefDecl) global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.TypedefDecl.__CreateInstance(__ret); - return __result0; + set + { + ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr = (global::System.IntPtr) value; + } } - public void AddTypedefs(global::CppSharp.Parser.AST.TypedefDecl s) + public string Name { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddTypedefs_0((__Instance + __PointerAdjustment), __arg0); - } + get + { + var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } - public void ClearTypedefs() - { - __Internal.ClearTypedefs_0((__Instance + __PointerAdjustment)); + set + { + __Internal.SetName_0((__Instance + __PointerAdjustment), value); + } } + } - public global::CppSharp.Parser.AST.TypeAlias GetTypeAliases(uint i) + public unsafe partial class LayoutBase : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 16)] + public partial struct __Internal { - var __ret = __Internal.GetTypeAliases_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.TypeAlias __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.TypeAlias) global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.TypeAlias.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(0)] + public uint offset; - public void AddTypeAliases(global::CppSharp.Parser.AST.TypeAlias s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddTypeAliases_0((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(8)] + public global::System.IntPtr _class; - public void ClearTypeAliases() - { - __Internal.ClearTypeAliases_0((__Instance + __PointerAdjustment)); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - public global::CppSharp.Parser.AST.Variable GetVariables(uint i) - { - var __ret = __Internal.GetVariables_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Variable __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Variable.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Variable) global::CppSharp.Parser.AST.Variable.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Variable.__CreateInstance(__ret); - return __result0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr other); - public void AddVariables(global::CppSharp.Parser.AST.Variable s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddVariables_0((__Instance + __PointerAdjustment), __arg0); + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10LayoutBaseD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - public void ClearVariables() - { - __Internal.ClearVariables_0((__Instance + __PointerAdjustment)); - } + public global::System.IntPtr __Instance { get; protected set; } - public global::CppSharp.Parser.AST.Friend GetFriends(uint i) - { - var __ret = __Internal.GetFriends_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Friend __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Friend.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Friend) global::CppSharp.Parser.AST.Friend.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Friend.__CreateInstance(__ret); - return __result0; - } + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - public void AddFriends(global::CppSharp.Parser.AST.Friend s) + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFriends_0((__Instance + __PointerAdjustment), __arg0); + return new LayoutBase(native.ToPointer(), skipVTables); } - public void ClearFriends() + internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) { - __Internal.ClearFriends_0((__Instance + __PointerAdjustment)); + return new LayoutBase(native, skipVTables); } - public static implicit operator global::CppSharp.Parser.AST.DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) + private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutBase.__Internal native) { - return new global::CppSharp.Parser.AST.DeclarationContext(kind); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + global::CppSharp.Parser.AST.LayoutBase.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public bool IsAnonymous + private LayoutBase(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - get - { - return ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous != 0; - } - - set - { - ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous = (byte) (value ? 1 : 0); - } + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public uint NamespacesCount + protected LayoutBase(void* native, bool skipVTables = false) { - get - { - var __ret = __Internal.GetNamespacesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public uint EnumsCount + public LayoutBase() { - get - { - var __ret = __Internal.GetEnumsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public uint FunctionsCount + public LayoutBase(global::CppSharp.Parser.AST.LayoutBase other) { - get - { - var __ret = __Internal.GetFunctionsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(other, null)) + throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = other.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public uint ClassesCount + public void Dispose() { - get - { - var __ret = __Internal.GetClassesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + Dispose(disposing: true); } - public uint TemplatesCount + public virtual void Dispose(bool disposing) { - get - { - var __ret = __Internal.GetTemplatesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + global::CppSharp.Parser.AST.LayoutBase __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public uint TypedefsCount + public uint Offset { get { - var __ret = __Internal.GetTypedefsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset; } - } - public uint TypeAliasesCount - { - get + set { - var __ret = __Internal.GetTypeAliasesCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset = value; } } - public uint VariablesCount + public global::CppSharp.Parser.AST.Class Class { get { - var __ret = __Internal.GetVariablesCount_0((__Instance + __PointerAdjustment)); - return __ret; + global::CppSharp.Parser.AST.Class __result0; + if (((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class); + return __result0; } - } - public uint FriendsCount - { - get + set { - var __ret = __Internal.GetFriendsCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class TypedefNameDecl : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class ClassLayout : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 136)] - public new partial struct __Internal + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::CppSharp.Parser.AST.CppAbi ABI; [FieldOffset(8)] - public global::System.IntPtr _namespace; + internal global::Std.Vector.__Internal VFTables; - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; + [FieldOffset(32)] + public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; - [FieldOffset(20)] - public int lineNumberStart; + [FieldOffset(56)] + public byte hasOwnVFPtr; - [FieldOffset(24)] - public int lineNumberEnd; + [FieldOffset(64)] + public long VBPtrOffset; - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; + [FieldOffset(72)] + public int alignment; - [FieldOffset(40)] - public global::Std.BasicString.__Internal USR; + [FieldOffset(76)] + public int size; - [FieldOffset(48)] - public global::Std.BasicString.__Internal DebugText; + [FieldOffset(80)] + public int dataSize; - [FieldOffset(56)] - public byte isIncomplete; + [FieldOffset(88)] + internal global::Std.Vector.__Internal Fields; - [FieldOffset(57)] - public byte isDependent; + [FieldOffset(112)] + internal global::Std.Vector.__Internal Bases; - [FieldOffset(58)] - public byte isImplicit; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutC2ERKS2_")] + internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(72)] - public uint definitionOrder; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayoutD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - [FieldOffset(80)] - internal global::Std.Vector.__Internal PreprocessedEntities; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11getVFTablesEj")] + internal static extern void GetVFTables_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - [FieldOffset(104)] - public global::System.IntPtr originalPtr; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11addVFTablesERNS1_11VFTableInfoE")] + internal static extern void AddVFTables_0(global::System.IntPtr instance, global::System.IntPtr s); - [FieldOffset(112)] - public global::System.IntPtr comment; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout13clearVFTablesEv")] + internal static extern void ClearVFTables_0(global::System.IntPtr instance); - [FieldOffset(120)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout9getFieldsEj")] + internal static extern void GetFields_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout9addFieldsERNS1_11LayoutFieldE")] + internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout11clearFieldsEv")] + internal static extern void ClearFields_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST15TypedefNameDeclD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout8getBasesEj")] + internal static extern void GetBases_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout8addBasesERNS1_10LayoutBaseE")] + internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout10clearBasesEv")] + internal static extern void ClearBases_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout16getVFTablesCountEv")] + internal static extern uint GetVFTablesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout14getFieldsCountEv")] + internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11ClassLayout13getBasesCountEv")] + internal static extern uint GetBasesCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypedefNameDecl(native.ToPointer(), skipVTables); + return new ClassLayout(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) { - return new TypedefNameDecl(native, skipVTables); + return new ClassLayout(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassLayout.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); - global::CppSharp.Parser.AST.TypedefNameDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + global::CppSharp.Parser.AST.ClassLayout.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) + private ClassLayout(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypedefNameDecl(void* native, bool skipVTables = false) - : base((void*) null) + protected ClassLayout(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) - : this((void*) null) + public ClassLayout() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl _0) - : this((void*) null) + public ClassLayout(global::CppSharp.Parser.AST.ClassLayout _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.ClassLayout __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -5403,168 +5841,188 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public static implicit operator global::CppSharp.Parser.AST.TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) + public global::CppSharp.Parser.AST.VFTableInfo GetVFTables(uint i) { - return new global::CppSharp.Parser.AST.TypedefNameDecl(kind); + var __ret = new global::CppSharp.Parser.AST.VFTableInfo.__Internal(); + __Internal.GetVFTables_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.VFTableInfo.__CreateInstance(__ret); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public void AddVFTables(global::CppSharp.Parser.AST.VFTableInfo s) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddVFTables_0((__Instance + __PointerAdjustment), __arg0); } - } - public unsafe partial class TypedefDecl : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 136)] - public new partial struct __Internal + public void ClearVFTables() { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(40)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(48)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(56)] - public byte isIncomplete; - - [FieldOffset(57)] - public byte isDependent; + __Internal.ClearVFTables_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(58)] - public byte isImplicit; + public global::CppSharp.Parser.AST.LayoutField GetFields(uint i) + { + var __ret = new global::CppSharp.Parser.AST.LayoutField.__Internal(); + __Internal.GetFields_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.LayoutField.__CreateInstance(__ret); + } - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; + public void AddFields(global::CppSharp.Parser.AST.LayoutField s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(72)] - public uint definitionOrder; + public void ClearFields() + { + __Internal.ClearFields_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(80)] - internal global::Std.Vector.__Internal PreprocessedEntities; + public global::CppSharp.Parser.AST.LayoutBase GetBases(uint i) + { + var __ret = new global::CppSharp.Parser.AST.LayoutBase.__Internal(); + __Internal.GetBases_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.LayoutBase.__CreateInstance(__ret); + } - [FieldOffset(104)] - public global::System.IntPtr originalPtr; + public void AddBases(global::CppSharp.Parser.AST.LayoutBase s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(112)] - public global::System.IntPtr comment; + public void ClearBases() + { + __Internal.ClearBases_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(120)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + public global::CppSharp.Parser.AST.CppAbi ABI + { + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public global::CppSharp.Parser.AST.VTableLayout Layout + { + get + { + return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; + } } - internal static new global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public bool HasOwnVFPtr { - return new TypedefDecl(native.ToPointer(), skipVTables); + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr != 0; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr = (byte) (value ? 1 : 0); + } } - internal static global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) + public long VBPtrOffset { - return new TypedefDecl(native, skipVTables); + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset = value; + } } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefDecl.__Internal native) + public int Alignment { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); - global::CppSharp.Parser.AST.TypedefDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment = value; + } } - private TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public int Size { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size = value; + } } - protected TypedefDecl(void* native, bool skipVTables = false) - : base((void*) null) + public int DataSize { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize = value; + } } - public TypedefDecl() - : this((void*) null) + public uint VFTablesCount { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + get + { + var __ret = __Internal.GetVFTablesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - public TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl _0) - : this((void*) null) + public uint FieldsCount { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + get + { + var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - public override void Dispose(bool disposing) + public uint BasesCount { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + get + { + var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } } - public unsafe partial class TypeAlias : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable + public unsafe partial class DeclarationContext : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 144)] + [StructLayout(LayoutKind.Explicit, Size = 416)] public new partial struct __Internal { [FieldOffset(0)] @@ -5613,58 +6071,268 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] public global::System.IntPtr originalPtr; - [FieldOffset(112)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(120)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(144)] + internal global::Std.Vector.__Internal Namespaces; + + [FieldOffset(168)] + internal global::Std.Vector.__Internal Enums; + + [FieldOffset(192)] + internal global::Std.Vector.__Internal Functions; + + [FieldOffset(216)] + internal global::Std.Vector.__Internal Classes; + + [FieldOffset(240)] + internal global::Std.Vector.__Internal Templates; + + [FieldOffset(264)] + internal global::Std.Vector.__Internal Typedefs; + + [FieldOffset(288)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(312)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(336)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(360)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(408)] + public byte isAnonymous; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContextD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13getNamespacesEj")] + internal static extern global::System.IntPtr GetNamespaces_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13addNamespacesERPNS1_9NamespaceE")] + internal static extern void AddNamespaces_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15clearNamespacesEv")] + internal static extern void ClearNamespaces_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext8getEnumsEj")] + internal static extern global::System.IntPtr GetEnums_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext8addEnumsERPNS1_11EnumerationE")] + internal static extern void AddEnums_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10clearEnumsEv")] + internal static extern void ClearEnums_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getFunctionsEj")] + internal static extern global::System.IntPtr GetFunctions_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addFunctionsERPNS1_8FunctionE")] + internal static extern void AddFunctions_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearFunctionsEv")] + internal static extern void ClearFunctions_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10getClassesEj")] + internal static extern global::System.IntPtr GetClasses_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10addClassesERPNS1_5ClassE")] + internal static extern void AddClasses_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12clearClassesEv")] + internal static extern void ClearClasses_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getTemplatesEj")] + internal static extern global::System.IntPtr GetTemplates_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addTemplatesERPNS1_8TemplateE")] + internal static extern void AddTemplates_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearTemplatesEv")] + internal static extern void ClearTemplates_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext11getTypedefsEj")] + internal static extern global::System.IntPtr GetTypedefs_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext11addTypedefsERPNS1_11TypedefDeclE")] + internal static extern void AddTypedefs_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13clearTypedefsEv")] + internal static extern void ClearTypedefs_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14getTypeAliasesEj")] + internal static extern global::System.IntPtr GetTypeAliases_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14addTypeAliasesERPNS1_9TypeAliasE")] + internal static extern void AddTypeAliases_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext16clearTypeAliasesEv")] + internal static extern void ClearTypeAliases_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12getVariablesEj")] + internal static extern global::System.IntPtr GetVariables_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12addVariablesERPNS1_8VariableE")] + internal static extern void AddVariables_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext14clearVariablesEv")] + internal static extern void ClearVariables_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10getFriendsEj")] + internal static extern global::System.IntPtr GetFriends_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext10addFriendsERPNS1_6FriendE")] + internal static extern void AddFriends_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext12clearFriendsEv")] + internal static extern void ClearFriends_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext18getNamespacesCountEv")] + internal static extern uint GetNamespacesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext13getEnumsCountEv")] + internal static extern uint GetEnumsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getFunctionsCountEv")] + internal static extern uint GetFunctionsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15getClassesCountEv")] + internal static extern uint GetClassesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getTemplatesCountEv")] + internal static extern uint GetTemplatesCount_0(global::System.IntPtr instance); - [FieldOffset(136)] - public global::System.IntPtr describedAliasTemplate; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext16getTypedefsCountEv")] + internal static extern uint GetTypedefsCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext19getTypeAliasesCountEv")] + internal static extern uint GetTypeAliasesCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext17getVariablesCountEv")] + internal static extern uint GetVariablesCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST18DeclarationContext15getFriendsCountEv")] + internal static extern uint GetFriendsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypeAlias(native.ToPointer(), skipVTables); + return new DeclarationContext(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) { - return new TypeAlias(native, skipVTables); + return new DeclarationContext(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAlias.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DeclarationContext.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); - global::CppSharp.Parser.AST.TypeAlias.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + global::CppSharp.Parser.AST.DeclarationContext.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypeAlias(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) + private DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypeAlias(void* native, bool skipVTables = false) + protected DeclarationContext(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -5673,19 +6341,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TypeAlias() + public DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public TypeAlias(global::CppSharp.Parser.AST.TypeAlias _0) + public DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -5704,491 +6372,425 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.TypeAliasTemplate DescribedAliasTemplate + public global::CppSharp.Parser.AST.Namespace GetNamespaces(uint i) { - get - { - global::CppSharp.Parser.AST.TypeAliasTemplate __result0; - if (((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate)) - __result0 = (global::CppSharp.Parser.AST.TypeAliasTemplate) global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate]; - else __result0 = global::CppSharp.Parser.AST.TypeAliasTemplate.__CreateInstance(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + var __ret = __Internal.GetNamespaces_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Namespace __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Namespace.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Namespace) global::CppSharp.Parser.AST.Namespace.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Namespace.__CreateInstance(__ret); + return __result0; } - } - public unsafe partial class Friend : global::CppSharp.Parser.AST.Declaration, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 128)] - public new partial struct __Internal + public void AddNamespaces(global::CppSharp.Parser.AST.Namespace s) { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(40)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(48)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(56)] - public byte isIncomplete; - - [FieldOffset(57)] - public byte isDependent; - - [FieldOffset(58)] - public byte isImplicit; - - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(72)] - public uint definitionOrder; + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddNamespaces_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(80)] - internal global::Std.Vector.__Internal PreprocessedEntities; + public void ClearNamespaces() + { + __Internal.ClearNamespaces_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(104)] - public global::System.IntPtr originalPtr; + public global::CppSharp.Parser.AST.Enumeration GetEnums(uint i) + { + var __ret = __Internal.GetEnums_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Enumeration __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Enumeration) global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Enumeration.__CreateInstance(__ret); + return __result0; + } - [FieldOffset(112)] - public global::System.IntPtr comment; + public void AddEnums(global::CppSharp.Parser.AST.Enumeration s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddEnums_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(120)] - public global::System.IntPtr declaration; + public void ClearEnums() + { + __Internal.ClearEnums_0((__Instance + __PointerAdjustment)); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6FriendC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + public global::CppSharp.Parser.AST.Function GetFunctions(uint i) + { + var __ret = __Internal.GetFunctions_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Function __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(__ret); + return __result0; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6FriendC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public void AddFunctions(global::CppSharp.Parser.AST.Function s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFunctions_0((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6FriendD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + public void ClearFunctions() + { + __Internal.ClearFunctions_0((__Instance + __PointerAdjustment)); } - internal static new global::CppSharp.Parser.AST.Friend __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public global::CppSharp.Parser.AST.Class GetClasses(uint i) { - return new Friend(native.ToPointer(), skipVTables); + var __ret = __Internal.GetClasses_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Class __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(__ret); + return __result0; } - internal static global::CppSharp.Parser.AST.Friend __CreateInstance(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) + public void AddClasses(global::CppSharp.Parser.AST.Class s) { - return new Friend(native, skipVTables); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddClasses_0((__Instance + __PointerAdjustment), __arg0); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Friend.__Internal native) + public void ClearClasses() { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); - global::CppSharp.Parser.AST.Friend.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + __Internal.ClearClasses_0((__Instance + __PointerAdjustment)); } - private Friend(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public global::CppSharp.Parser.AST.Template GetTemplates(uint i) { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + var __ret = __Internal.GetTemplates_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Template __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(__ret); + return __result0; } - protected Friend(void* native, bool skipVTables = false) - : base((void*) null) + public void AddTemplates(global::CppSharp.Parser.AST.Template s) { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddTemplates_0((__Instance + __PointerAdjustment), __arg0); } - public Friend() - : this((void*) null) + public void ClearTemplates() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ClearTemplates_0((__Instance + __PointerAdjustment)); } - public Friend(global::CppSharp.Parser.AST.Friend _0) - : this((void*) null) + public global::CppSharp.Parser.AST.TypedefDecl GetTypedefs(uint i) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + var __ret = __Internal.GetTypedefs_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.TypedefDecl __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.TypedefDecl) global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.TypedefDecl.__CreateInstance(__ret); + return __result0; } - public override void Dispose(bool disposing) + public void AddTypedefs(global::CppSharp.Parser.AST.TypedefDecl s) { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddTypedefs_0((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.Declaration Declaration + public void ClearTypedefs() { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + __Internal.ClearTypedefs_0((__Instance + __PointerAdjustment)); } - } - public unsafe partial class Statement : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public partial struct __Internal + public global::CppSharp.Parser.AST.TypeAlias GetTypeAliases(uint i) { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; - - [FieldOffset(8)] - public global::System.IntPtr decl; - - [FieldOffset(16)] - public global::Std.BasicString.__Internal String; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9StatementC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9StatementD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9Statement9getStringEv")] - internal static extern global::System.IntPtr String_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9Statement9setStringEPKc")] - internal static extern void SetString_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + var __ret = __Internal.GetTypeAliases_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.TypeAlias __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.TypeAlias) global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.TypeAlias.__CreateInstance(__ret); + return __result0; } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; + public void AddTypeAliases(global::CppSharp.Parser.AST.TypeAlias s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddTypeAliases_0((__Instance + __PointerAdjustment), __arg0); + } - internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public void ClearTypeAliases() { - return new Statement(native.ToPointer(), skipVTables); + __Internal.ClearTypeAliases_0((__Instance + __PointerAdjustment)); } - internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + public global::CppSharp.Parser.AST.Variable GetVariables(uint i) { - return new Statement(native, skipVTables); + var __ret = __Internal.GetVariables_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Variable __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Variable.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Variable) global::CppSharp.Parser.AST.Variable.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Variable.__CreateInstance(__ret); + return __result0; } - private static void* __CopyValue(global::CppSharp.Parser.AST.Statement.__Internal native) + public void AddVariables(global::CppSharp.Parser.AST.Variable s) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); - global::CppSharp.Parser.AST.Statement.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddVariables_0((__Instance + __PointerAdjustment), __arg0); } - private Statement(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public void ClearVariables() { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + __Internal.ClearVariables_0((__Instance + __PointerAdjustment)); } - protected Statement(void* native, bool skipVTables = false) + public global::CppSharp.Parser.AST.Friend GetFriends(uint i) { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + var __ret = __Internal.GetFriends_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Friend __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Friend.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Friend) global::CppSharp.Parser.AST.Friend.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Friend.__CreateInstance(__ret); + return __result0; } - public Statement(global::CppSharp.Parser.AST.Statement _0) + public void AddFriends(global::CppSharp.Parser.AST.Friend s) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFriends_0((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() + public void ClearFriends() { - Dispose(disposing: true); + __Internal.ClearFriends_0((__Instance + __PointerAdjustment)); } - public virtual void Dispose(bool disposing) + public static implicit operator global::CppSharp.Parser.AST.DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) { - global::CppSharp.Parser.AST.Statement __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + return new global::CppSharp.Parser.AST.DeclarationContext(kind); } - public global::CppSharp.Parser.AST.StatementClass Class + public bool IsAnonymous { get { - return ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class; + return ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous != 0; } set { - ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class = value; + ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.Declaration Decl + public uint NamespacesCount { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + var __ret = __Internal.GetNamespacesCount_0((__Instance + __PointerAdjustment)); + return __ret; } } - public string String + public uint EnumsCount { get { - var __ret = __Internal.String_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetString_0((__Instance + __PointerAdjustment), value); + var __ret = __Internal.GetEnumsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } - } - - public unsafe partial class Expression : global::CppSharp.Parser.AST.Statement, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; - - [FieldOffset(8)] - public global::System.IntPtr decl; - - [FieldOffset(16)] - public global::Std.BasicString.__Internal String; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10ExpressionC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10ExpressionD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - } - internal static new global::CppSharp.Parser.AST.Expression __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public uint FunctionsCount { - return new Expression(native.ToPointer(), skipVTables); + get + { + var __ret = __Internal.GetFunctionsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - internal static global::CppSharp.Parser.AST.Expression __CreateInstance(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) + public uint ClassesCount { - return new Expression(native, skipVTables); + get + { + var __ret = __Internal.GetClassesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - private static void* __CopyValue(global::CppSharp.Parser.AST.Expression.__Internal native) + public uint TemplatesCount { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); - global::CppSharp.Parser.AST.Expression.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + get + { + var __ret = __Internal.GetTemplatesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - private Expression(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public uint TypedefsCount { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + get + { + var __ret = __Internal.GetTypedefsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - protected Expression(void* native, bool skipVTables = false) - : base((void*) null) + public uint TypeAliasesCount { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + get + { + var __ret = __Internal.GetTypeAliasesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - public Expression(global::CppSharp.Parser.AST.Expression _0) - : this((void*) null) + public uint VariablesCount { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + get + { + var __ret = __Internal.GetVariablesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - public override void Dispose(bool disposing) + public uint FriendsCount { - global::CppSharp.Parser.AST.Statement __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + get + { + var __ret = __Internal.GetFriendsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } } - public unsafe partial class BinaryOperator : global::CppSharp.Parser.AST.Expression, IDisposable + public unsafe partial class RawComment : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 48)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 32)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + public global::CppSharp.Parser.AST.RawCommentKind kind; [FieldOffset(8)] - public global::System.IntPtr decl; + public global::Std.BasicString.__Internal Text; [FieldOffset(16)] - public global::Std.BasicString.__Internal String; + public global::Std.BasicString.__Internal BriefText; [FieldOffset(24)] - public global::System.IntPtr LHS; - - [FieldOffset(32)] - public global::System.IntPtr RHS; + public global::System.IntPtr fullCommentBlock; - [FieldOffset(40)] - public global::Std.BasicString.__Internal OpcodeStr; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperatorC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperatorD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperator12getOpcodeStrEv")] - internal static extern global::System.IntPtr OpcodeStr_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment7getTextEv")] + internal static extern global::System.IntPtr Text_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperator12setOpcodeStrEPKc")] - internal static extern void SetOpcodeStr_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment7setTextEPKc")] + internal static extern void SetText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment12getBriefTextEv")] + internal static extern global::System.IntPtr BriefText_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment12setBriefTextEPKc")] + internal static extern void SetBriefText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - internal static new global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new BinaryOperator(native.ToPointer(), skipVTables); + return new RawComment(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) { - return new BinaryOperator(native, skipVTables); + return new RawComment(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.BinaryOperator.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.RawComment.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); - global::CppSharp.Parser.AST.BinaryOperator.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); + global::CppSharp.Parser.AST.RawComment.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) + private RawComment(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected BinaryOperator(void* native, bool skipVTables = false) - : base((void*) null) + protected RawComment(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator _0) - : this((void*) null) + public RawComment() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public RawComment(global::CppSharp.Parser.AST.RawComment _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -6197,9 +6799,14 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Statement __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.RawComment __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -6207,443 +6814,555 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Expression LHS + public global::CppSharp.Parser.AST.RawCommentKind Kind { get { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS); - return __result0; + return ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind; } set { - ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind = value; } } - public global::CppSharp.Parser.AST.Expression RHS + public global::CppSharp.Parser.AST.FullComment FullCommentBlock { get { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS); + global::CppSharp.Parser.AST.FullComment __result0; + if (((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FullComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock)) + __result0 = (global::CppSharp.Parser.AST.FullComment) global::CppSharp.Parser.AST.FullComment.NativeToManagedMap[((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock]; + else __result0 = global::CppSharp.Parser.AST.FullComment.__CreateInstance(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock); return __result0; } set { - ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public string OpcodeStr + public string Text { get { - var __ret = __Internal.OpcodeStr_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.Text_0((__Instance + __PointerAdjustment)); return Marshal.PtrToStringAnsi(__ret); } set { - __Internal.SetOpcodeStr_0((__Instance + __PointerAdjustment), value); + __Internal.SetText_0((__Instance + __PointerAdjustment), value); + } + } + + public string BriefText + { + get + { + var __ret = __Internal.BriefText_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetBriefText_0((__Instance + __PointerAdjustment), value); } } } - public unsafe partial class CallExpr : global::CppSharp.Parser.AST.Expression, IDisposable + public unsafe partial class PreprocessedEntity : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 48)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 24)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + public global::CppSharp.Parser.AST.MacroLocation macroLocation; [FieldOffset(8)] - public global::System.IntPtr decl; + public global::System.IntPtr originalPtr; [FieldOffset(16)] - public global::Std.BasicString.__Internal String; - - [FieldOffset(24)] - internal global::Std.Vector.__Internal Arguments; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExprC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public global::CppSharp.Parser.AST.DeclarationKind kind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExprD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST18PreprocessedEntityC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr12getArgumentsEj")] - internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST18PreprocessedEntityC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr12addArgumentsERPNS1_10ExpressionE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + public global::System.IntPtr __Instance { get; protected set; } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); - } + protected bool __ownsNativeInstance; - internal static new global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new CallExpr(native.ToPointer(), skipVTables); + return new PreprocessedEntity(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) { - return new CallExpr(native, skipVTables); + return new PreprocessedEntity(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.CallExpr.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); - global::CppSharp.Parser.AST.CallExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); + *(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) ret = native; return ret.ToPointer(); } - private CallExpr(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) + private PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected CallExpr(void* native, bool skipVTables = false) - : base((void*) null) + protected PreprocessedEntity(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public CallExpr(global::CppSharp.Parser.AST.CallExpr _0) - : this((void*) null) + public PreprocessedEntity() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) _0.__Instance); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Statement __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.PreprocessedEntity __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Expression GetArguments(uint i) + public global::CppSharp.Parser.AST.MacroLocation MacroLocation { - var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Expression __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); - return __result0; - } + get + { + return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation; + } - public void AddArguments(global::CppSharp.Parser.AST.Expression s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation = value; + } } - public void ClearArguments() + public global::System.IntPtr OriginalPtr { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + get + { + return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr; + } + + set + { + ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; + } } - public uint ArgumentsCount + public global::CppSharp.Parser.AST.DeclarationKind Kind { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind; + } + + set + { + ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind = value; } } } - public unsafe partial class CXXConstructExpr : global::CppSharp.Parser.AST.Expression, IDisposable + public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 48)] + [StructLayout(LayoutKind.Explicit, Size = 456)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr decl; + public global::System.IntPtr _namespace; [FieldOffset(16)] - public global::Std.BasicString.__Internal String; + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; [FieldOffset(24)] - internal global::Std.Vector.__Internal Arguments; + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(40)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(48)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(56)] + public byte isIncomplete; + + [FieldOffset(57)] + public byte isDependent; + + [FieldOffset(58)] + public byte isImplicit; + + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(72)] + public uint definitionOrder; + + [FieldOffset(80)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] + public global::System.IntPtr originalPtr; + + [FieldOffset(136)] + public global::System.IntPtr comment; + + [FieldOffset(144)] + internal global::Std.Vector.__Internal Namespaces; + + [FieldOffset(168)] + internal global::Std.Vector.__Internal Enums; + + [FieldOffset(192)] + internal global::Std.Vector.__Internal Functions; + + [FieldOffset(216)] + internal global::Std.Vector.__Internal Classes; + + [FieldOffset(240)] + internal global::Std.Vector.__Internal Templates; + + [FieldOffset(264)] + internal global::Std.Vector.__Internal Typedefs; + + [FieldOffset(288)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(312)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(336)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(360)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(408)] + public byte isAnonymous; + + [FieldOffset(412)] + public global::CppSharp.Parser.AST.Enumeration.EnumModifiers modifiers; + + [FieldOffset(416)] + public global::System.IntPtr type; + + [FieldOffset(424)] + public global::System.IntPtr builtinType; + + [FieldOffset(432)] + internal global::Std.Vector.__Internal Items; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExprC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExprD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr12getArgumentsEj")] - internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration8getItemsEj")] + internal static extern global::System.IntPtr GetItems_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr12addArgumentsERPNS1_10ExpressionE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration8addItemsERPNS2_4ItemE")] + internal static extern void AddItems_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration10clearItemsEv")] + internal static extern void ClearItems_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); - } - - internal static new global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new CXXConstructExpr(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) - { - return new CXXConstructExpr(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); - global::CppSharp.Parser.AST.CXXConstructExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected CXXConstructExpr(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Statement __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.Expression GetArguments(uint i) - { - var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Expression __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); - return __result0; - } - - public void AddArguments(global::CppSharp.Parser.AST.Expression s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration13getItemsCountEv")] + internal static extern uint GetItemsCount_0(global::System.IntPtr instance); } - public void ClearArguments() + [Flags] + public enum EnumModifiers { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + Anonymous = 1, + Scoped = 2, + Flags = 4 } - public uint ArgumentsCount + public unsafe partial class Item : global::CppSharp.Parser.AST.Declaration, IDisposable { - get + [StructLayout(LayoutKind.Explicit, Size = 160)] + public new partial struct __Internal { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; - public unsafe partial class Parameter : global::CppSharp.Parser.AST.Declaration, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 152)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + [FieldOffset(8)] + public global::System.IntPtr _namespace; - [FieldOffset(8)] - public global::System.IntPtr _namespace; + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; + [FieldOffset(20)] + public int lineNumberStart; - [FieldOffset(20)] - public int lineNumberStart; + [FieldOffset(24)] + public int lineNumberEnd; - [FieldOffset(24)] - public int lineNumberEnd; + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; + [FieldOffset(40)] + public global::Std.BasicString.__Internal USR; - [FieldOffset(40)] - public global::Std.BasicString.__Internal USR; + [FieldOffset(48)] + public global::Std.BasicString.__Internal DebugText; - [FieldOffset(48)] - public global::Std.BasicString.__Internal DebugText; + [FieldOffset(56)] + public byte isIncomplete; - [FieldOffset(56)] - public byte isIncomplete; + [FieldOffset(57)] + public byte isDependent; - [FieldOffset(57)] - public byte isDependent; + [FieldOffset(58)] + public byte isImplicit; - [FieldOffset(58)] - public byte isImplicit; + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; + [FieldOffset(72)] + public uint definitionOrder; - [FieldOffset(72)] - public uint definitionOrder; + [FieldOffset(80)] + internal global::Std.Vector.__Internal PreprocessedEntities; - [FieldOffset(80)] - internal global::Std.Vector.__Internal PreprocessedEntities; + [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; - [FieldOffset(104)] - public global::System.IntPtr originalPtr; + [FieldOffset(128)] + public global::System.IntPtr originalPtr; - [FieldOffset(112)] - public global::System.IntPtr comment; + [FieldOffset(136)] + public global::System.IntPtr comment; - [FieldOffset(120)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(144)] + public global::Std.BasicString.__Internal Expression; - [FieldOffset(136)] - public byte isIndirect; + [FieldOffset(152)] + public ulong value; - [FieldOffset(137)] - public byte hasDefaultValue; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(140)] - public uint index; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemC2ERKS3_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(144)] - public global::System.IntPtr defaultArgument; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4Item13getExpressionEv")] + internal static extern global::System.IntPtr Expression_0(global::System.IntPtr instance); - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4Item13setExpressionEPKc")] + internal static extern void SetExpression_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9ParameterD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + internal static new global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Item(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) + { + return new Item(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); + global::CppSharp.Parser.AST.Enumeration.Item.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private Item(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected Item(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public Item() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public Item(global::CppSharp.Parser.AST.Enumeration.Item _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public ulong Value + { + get + { + return ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value; + } + + set + { + ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value = value; + } + } + + public string Expression + { + get + { + var __ret = __Internal.Expression_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetExpression_0((__Instance + __PointerAdjustment), value); + } + } } - internal static new global::CppSharp.Parser.AST.Parameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Parameter(native.ToPointer(), skipVTables); + return new Enumeration(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Parameter __CreateInstance(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) { - return new Parameter(native, skipVTables); + return new Enumeration(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Parameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); - global::CppSharp.Parser.AST.Parameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + global::CppSharp.Parser.AST.Enumeration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Parameter(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) + private Enumeration(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Parameter(void* native, bool skipVTables = false) + protected Enumeration(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -6652,19 +7371,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Parameter() + public Enumeration() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Parameter(global::CppSharp.Parser.AST.Parameter _0) + public Enumeration(global::CppSharp.Parser.AST.Enumeration _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -6683,80 +7402,92 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public global::CppSharp.Parser.AST.Enumeration.Item GetItems(uint i) + { + var __ret = __Internal.GetItems_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Enumeration.Item __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Enumeration.Item) global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Enumeration.Item.__CreateInstance(__ret); + return __result0; + } + + public void AddItems(global::CppSharp.Parser.AST.Enumeration.Item s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddItems_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearItems() { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + __Internal.ClearItems_0((__Instance + __PointerAdjustment)); } - public bool IsIndirect + public global::CppSharp.Parser.AST.Enumeration.EnumModifiers Modifiers { get { - return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect != 0; + return ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers; } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers = value; } } - public bool HasDefaultValue + public global::CppSharp.Parser.AST.Type Type { get { - return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue != 0; + global::CppSharp.Parser.AST.Type __result0; + if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type)) + __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type]; + else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type); + return __result0; } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public uint Index + public global::CppSharp.Parser.AST.BuiltinType BuiltinType { get { - return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index; + global::CppSharp.Parser.AST.BuiltinType __result0; + if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType)) + __result0 = (global::CppSharp.Parser.AST.BuiltinType) global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType]; + else __result0 = global::CppSharp.Parser.AST.BuiltinType.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType); + return __result0; } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index = value; + ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public global::CppSharp.Parser.AST.Expression DefaultArgument + public uint ItemsCount { get { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + var __ret = __Internal.GetItemsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } public unsafe partial class Function : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 240)] + [StructLayout(LayoutKind.Explicit, Size = 264)] public new partial struct __Internal { [FieldOffset(0)] @@ -6805,63 +7536,66 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] public global::System.IntPtr originalPtr; - [FieldOffset(112)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(120)] + [FieldOffset(144)] public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(136)] + [FieldOffset(160)] public byte isReturnIndirect; - [FieldOffset(137)] + [FieldOffset(161)] public byte hasThisReturn; - [FieldOffset(138)] + [FieldOffset(162)] public byte isConstExpr; - [FieldOffset(139)] + [FieldOffset(163)] public byte isVariadic; - [FieldOffset(140)] + [FieldOffset(164)] public byte isInline; - [FieldOffset(141)] + [FieldOffset(165)] public byte isPure; - [FieldOffset(142)] + [FieldOffset(166)] public byte isDeleted; - [FieldOffset(144)] + [FieldOffset(168)] public global::CppSharp.Parser.AST.FriendKind friendKind; - [FieldOffset(148)] + [FieldOffset(172)] public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - [FieldOffset(152)] + [FieldOffset(176)] public global::Std.BasicString.__Internal Mangled; - [FieldOffset(160)] + [FieldOffset(184)] public global::Std.BasicString.__Internal Signature; - [FieldOffset(168)] + [FieldOffset(192)] public global::Std.BasicString.__Internal Body; - [FieldOffset(176)] + [FieldOffset(200)] public global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(184)] + [FieldOffset(208)] internal global::Std.Vector.__Internal Parameters; - [FieldOffset(208)] + [FieldOffset(232)] public global::System.IntPtr specializationInfo; - [FieldOffset(216)] + [FieldOffset(240)] public global::System.IntPtr instantiatedFrom; - [FieldOffset(224)] + [FieldOffset(248)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] @@ -7262,9 +7996,9 @@ namespace CppSharp } } - public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable + public unsafe partial class TypedefDecl : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 280)] + [StructLayout(LayoutKind.Explicit, Size = 160)] public new partial struct __Internal { [FieldOffset(0)] @@ -7313,139 +8047,204 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] public global::System.IntPtr originalPtr; - [FieldOffset(112)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(120)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; + [FieldOffset(144)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(136)] - public byte isReturnIndirect; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(137)] - public byte hasThisReturn; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(138)] - public byte isConstExpr; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11TypedefDeclD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + } - [FieldOffset(139)] - public byte isVariadic; + internal static new global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new TypedefDecl(native.ToPointer(), skipVTables); + } - [FieldOffset(140)] - public byte isInline; + internal static global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) + { + return new TypedefDecl(native, skipVTables); + } - [FieldOffset(141)] - public byte isPure; + private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefDecl.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + global::CppSharp.Parser.AST.TypedefDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [FieldOffset(142)] - public byte isDeleted; + private TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [FieldOffset(144)] - public global::CppSharp.Parser.AST.FriendKind friendKind; + protected TypedefDecl(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [FieldOffset(148)] - public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; + public TypedefDecl() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(152)] - public global::Std.BasicString.__Internal Mangled; + public TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(160)] - public global::Std.BasicString.__Internal Signature; + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + } - [FieldOffset(168)] - public global::Std.BasicString.__Internal Body; + public unsafe partial class TypeAlias : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 168)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; - [FieldOffset(176)] - public global::CppSharp.Parser.AST.CallingConvention callingConvention; + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; - [FieldOffset(184)] - internal global::Std.Vector.__Internal Parameters; + [FieldOffset(8)] + public global::System.IntPtr _namespace; - [FieldOffset(208)] - public global::System.IntPtr specializationInfo; + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - [FieldOffset(216)] - public global::System.IntPtr instantiatedFrom; + [FieldOffset(20)] + public int lineNumberStart; - [FieldOffset(224)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(24)] + public int lineNumberEnd; - [FieldOffset(240)] - public byte isVirtual; + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; - [FieldOffset(241)] - public byte isStatic; + [FieldOffset(40)] + public global::Std.BasicString.__Internal USR; - [FieldOffset(242)] - public byte isConst; + [FieldOffset(48)] + public global::Std.BasicString.__Internal DebugText; - [FieldOffset(243)] - public byte isExplicit; + [FieldOffset(56)] + public byte isIncomplete; - [FieldOffset(244)] - public byte isOverride; + [FieldOffset(57)] + public byte isDependent; - [FieldOffset(248)] - public global::CppSharp.Parser.AST.CXXMethodKind methodKind; + [FieldOffset(58)] + public byte isImplicit; - [FieldOffset(252)] - public byte isDefaultConstructor; + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; - [FieldOffset(253)] - public byte isCopyConstructor; + [FieldOffset(72)] + public uint definitionOrder; - [FieldOffset(254)] - public byte isMoveConstructor; + [FieldOffset(80)] + internal global::Std.Vector.__Internal PreprocessedEntities; - [FieldOffset(256)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; + [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; - [FieldOffset(272)] - public global::CppSharp.Parser.AST.RefQualifierKind refQualifier; + [FieldOffset(128)] + public global::System.IntPtr originalPtr; + + [FieldOffset(136)] + public global::System.IntPtr comment; + + [FieldOffset(144)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(160)] + public global::System.IntPtr describedAliasTemplate; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST6MethodD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9TypeAliasD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Method(native.ToPointer(), skipVTables); + return new TypeAlias(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Method __CreateInstance(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) { - return new Method(native, skipVTables); + return new TypeAlias(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Method.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAlias.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); - global::CppSharp.Parser.AST.Method.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); + global::CppSharp.Parser.AST.TypeAlias.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Method(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) + private TypeAlias(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Method(void* native, bool skipVTables = false) + protected TypeAlias(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -7454,19 +8253,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Method() + public TypeAlias() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Method(global::CppSharp.Parser.AST.Method _0) + public TypeAlias(global::CppSharp.Parser.AST.TypeAlias _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -7485,153 +8284,28 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public bool IsVirtual - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); - } - } - - public bool IsStatic - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic = (byte) (value ? 1 : 0); - } - } - - public bool IsConst - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst = (byte) (value ? 1 : 0); - } - } - - public bool IsExplicit - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit = (byte) (value ? 1 : 0); - } - } - - public bool IsOverride - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride = (byte) (value ? 1 : 0); - } - } - - public global::CppSharp.Parser.AST.CXXMethodKind MethodKind - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind = value; - } - } - - public bool IsDefaultConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor = (byte) (value ? 1 : 0); - } - } - - public bool IsCopyConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor = (byte) (value ? 1 : 0); - } - } - - public bool IsMoveConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor = (byte) (value ? 1 : 0); - } - } - - public global::CppSharp.Parser.AST.QualifiedType ConversionType - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType); - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.RefQualifierKind RefQualifier + public global::CppSharp.Parser.AST.TypeAliasTemplate DescribedAliasTemplate { get { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier; + global::CppSharp.Parser.AST.TypeAliasTemplate __result0; + if (((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate)) + __result0 = (global::CppSharp.Parser.AST.TypeAliasTemplate) global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate]; + else __result0 = global::CppSharp.Parser.AST.TypeAliasTemplate.__CreateInstance(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate); + return __result0; } set { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value; + ((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + public unsafe partial class Namespace : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 432)] + [StructLayout(LayoutKind.Explicit, Size = 416)] public new partial struct __Internal { [FieldOffset(0)] @@ -7680,305 +8354,250 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] public global::System.IntPtr originalPtr; - [FieldOffset(112)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(120)] + [FieldOffset(144)] internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(144)] + [FieldOffset(168)] internal global::Std.Vector.__Internal Enums; - [FieldOffset(168)] + [FieldOffset(192)] internal global::Std.Vector.__Internal Functions; - [FieldOffset(192)] + [FieldOffset(216)] internal global::Std.Vector.__Internal Classes; - [FieldOffset(216)] + [FieldOffset(240)] internal global::Std.Vector.__Internal Templates; - [FieldOffset(240)] + [FieldOffset(264)] internal global::Std.Vector.__Internal Typedefs; - [FieldOffset(264)] + [FieldOffset(288)] internal global::Std.Vector.__Internal TypeAliases; - [FieldOffset(288)] + [FieldOffset(312)] internal global::Std.Vector.__Internal Variables; - [FieldOffset(312)] + [FieldOffset(336)] internal global::Std.Vector.__Internal Friends; - [FieldOffset(336)] + [FieldOffset(360)] internal global::Std.Map.__Internal anonymous; - [FieldOffset(384)] + [FieldOffset(408)] public byte isAnonymous; - [FieldOffset(388)] - public global::CppSharp.Parser.AST.Enumeration.EnumModifiers modifiers; - - [FieldOffset(392)] - public global::System.IntPtr type; - - [FieldOffset(400)] - public global::System.IntPtr builtinType; - - [FieldOffset(408)] - internal global::Std.Vector.__Internal Items; + [FieldOffset(409)] + public byte isInline; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11EnumerationD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration8getItemsEj")] - internal static extern global::System.IntPtr GetItems_0(global::System.IntPtr instance, uint i); + internal static new global::CppSharp.Parser.AST.Namespace __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Namespace(native.ToPointer(), skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration8addItemsERPNS2_4ItemE")] - internal static extern void AddItems_0(global::System.IntPtr instance, global::System.IntPtr s); + internal static global::CppSharp.Parser.AST.Namespace __CreateInstance(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + { + return new Namespace(native, skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration10clearItemsEv")] - internal static extern void ClearItems_0(global::System.IntPtr instance); + private static void* __CopyValue(global::CppSharp.Parser.AST.Namespace.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + global::CppSharp.Parser.AST.Namespace.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private Namespace(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected Namespace(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public Namespace() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration13getItemsCountEv")] - internal static extern uint GetItemsCount_0(global::System.IntPtr instance); + public Namespace(global::CppSharp.Parser.AST.Namespace _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - [Flags] - public enum EnumModifiers + public override void Dispose(bool disposing) { - Anonymous = 1, - Scoped = 2, - Flags = 4 + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public unsafe partial class Item : global::CppSharp.Parser.AST.Declaration, IDisposable + public bool IsInline { - [StructLayout(LayoutKind.Explicit, Size = 136)] - public new partial struct __Internal + get { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(40)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(48)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(56)] - public byte isIncomplete; - - [FieldOffset(57)] - public byte isDependent; - - [FieldOffset(58)] - public byte isImplicit; + return ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline != 0; + } - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; + set + { + ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline = (byte) (value ? 1 : 0); + } + } + } - [FieldOffset(72)] - public uint definitionOrder; + public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Template, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 176)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; - [FieldOffset(80)] - internal global::Std.Vector.__Internal PreprocessedEntities; + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; - [FieldOffset(104)] - public global::System.IntPtr originalPtr; + [FieldOffset(8)] + public global::System.IntPtr _namespace; - [FieldOffset(112)] - public global::System.IntPtr comment; + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - [FieldOffset(120)] - public global::Std.BasicString.__Internal Expression; + [FieldOffset(20)] + public int lineNumberStart; - [FieldOffset(128)] - public ulong value; + [FieldOffset(24)] + public int lineNumberEnd; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemC2ERKS3_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(40)] + public global::Std.BasicString.__Internal USR; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4ItemD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + [FieldOffset(48)] + public global::Std.BasicString.__Internal DebugText; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4Item13getExpressionEv")] - internal static extern global::System.IntPtr Expression_0(global::System.IntPtr instance); + [FieldOffset(56)] + public byte isIncomplete; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11Enumeration4Item13setExpressionEPKc")] - internal static extern void SetExpression_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - } + [FieldOffset(57)] + public byte isDependent; - internal static new global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new Item(native.ToPointer(), skipVTables); - } + [FieldOffset(58)] + public byte isImplicit; - internal static global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) - { - return new Item(native, skipVTables); - } + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; - private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); - global::CppSharp.Parser.AST.Enumeration.Item.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [FieldOffset(72)] + public uint definitionOrder; - private Item(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [FieldOffset(80)] + internal global::Std.Vector.__Internal PreprocessedEntities; - protected Item(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; - public Item() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(128)] + public global::System.IntPtr originalPtr; - public Item(global::CppSharp.Parser.AST.Enumeration.Item _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(136)] + public global::System.IntPtr comment; - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } + [FieldOffset(144)] + public global::System.IntPtr TemplatedDecl; - public ulong Value - { - get - { - return ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value; - } + [FieldOffset(152)] + internal global::Std.Vector.__Internal Parameters; - set - { - ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value = value; - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - public string Expression - { - get - { - var __ret = __Internal.Expression_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - set - { - __Internal.SetExpression_0((__Instance + __PointerAdjustment), value); - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Enumeration(native.ToPointer(), skipVTables); + return new TypeAliasTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) { - return new Enumeration(native, skipVTables); + return new TypeAliasTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); - global::CppSharp.Parser.AST.Enumeration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); + global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Enumeration(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) + private TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Enumeration(void* native, bool skipVTables = false) + protected TypeAliasTemplate(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -7987,19 +8606,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Enumeration() + public TypeAliasTemplate() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Enumeration(global::CppSharp.Parser.AST.Enumeration _0) + public TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8017,93 +8636,11 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - - public global::CppSharp.Parser.AST.Enumeration.Item GetItems(uint i) - { - var __ret = __Internal.GetItems_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Enumeration.Item __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Enumeration.Item) global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Enumeration.Item.__CreateInstance(__ret); - return __result0; - } - - public void AddItems(global::CppSharp.Parser.AST.Enumeration.Item s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddItems_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearItems() - { - __Internal.ClearItems_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.Enumeration.EnumModifiers Modifiers - { - get - { - return ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers; - } - - set - { - ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers = value; - } - } - - public global::CppSharp.Parser.AST.Type Type - { - get - { - global::CppSharp.Parser.AST.Type __result0; - if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type)) - __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type]; - else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public global::CppSharp.Parser.AST.BuiltinType BuiltinType - { - get - { - global::CppSharp.Parser.AST.BuiltinType __result0; - if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType)) - __result0 = (global::CppSharp.Parser.AST.BuiltinType) global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType]; - else __result0 = global::CppSharp.Parser.AST.BuiltinType.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public uint ItemsCount - { - get - { - var __ret = __Internal.GetItemsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } } - public unsafe partial class Variable : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class ClassTemplate : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 144)] + [StructLayout(LayoutKind.Explicit, Size = 200)] public new partial struct __Internal { [FieldOffset(0)] @@ -8152,68 +8689,84 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] public global::System.IntPtr originalPtr; - [FieldOffset(112)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(120)] - public global::Std.BasicString.__Internal Mangled; + [FieldOffset(144)] + public global::System.IntPtr TemplatedDecl; - [FieldOffset(128)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(152)] + internal global::Std.Vector.__Internal Parameters; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Specializations; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8VariableC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8VariableC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8VariableD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Variable10getMangledEv")] - internal static extern global::System.IntPtr Mangled_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate18getSpecializationsEj")] + internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Variable10setMangledEPKc")] - internal static extern void SetMangled_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate18addSpecializationsERPNS1_27ClassTemplateSpecializationE")] + internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate20clearSpecializationsEv")] + internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate23getSpecializationsCountEv")] + internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Variable __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Variable(native.ToPointer(), skipVTables); + return new ClassTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Variable __CreateInstance(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) { - return new Variable(native, skipVTables); + return new ClassTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Variable.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); - global::CppSharp.Parser.AST.Variable.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); + global::CppSharp.Parser.AST.ClassTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Variable(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) + private ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Variable(void* native, bool skipVTables = false) + protected ClassTemplate(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -8222,19 +8775,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Variable() + public ClassTemplate() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Variable(global::CppSharp.Parser.AST.Variable _0) + public ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8253,191 +8806,245 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public global::CppSharp.Parser.AST.ClassTemplateSpecialization GetSpecializations(uint i) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType); - } + var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.ClassTemplateSpecialization __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.ClassTemplateSpecialization) global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.ClassTemplateSpecialization.__CreateInstance(__ret); + return __result0; + } - set - { - ((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + public void AddSpecializations(global::CppSharp.Parser.AST.ClassTemplateSpecialization s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); } - public string Mangled + public void ClearSpecializations() { - get - { - var __ret = __Internal.Mangled_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } + __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); + } - set + public uint SpecializationsCount + { + get { - __Internal.SetMangled_0((__Instance + __PointerAdjustment), value); + var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class BaseClassSpecifier : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public unsafe partial class FunctionTemplate : global::CppSharp.Parser.AST.Template, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 200)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; + + [FieldOffset(8)] + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(40)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(48)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(56)] + public byte isIncomplete; + + [FieldOffset(57)] + public byte isDependent; + + [FieldOffset(58)] + public byte isImplicit; + + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(72)] + public uint definitionOrder; + + [FieldOffset(80)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] + public global::System.IntPtr originalPtr; + + [FieldOffset(136)] + public global::System.IntPtr comment; - [FieldOffset(4)] - public byte isVirtual; + [FieldOffset(144)] + public global::System.IntPtr TemplatedDecl; - [FieldOffset(8)] - public global::System.IntPtr type; + [FieldOffset(152)] + internal global::Std.Vector.__Internal Parameters; - [FieldOffset(16)] - public int offset; + [FieldOffset(176)] + internal global::Std.Vector.__Internal Specializations; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18BaseClassSpecifierC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18BaseClassSpecifierC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate18getSpecializationsEj")] + internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate18addSpecializationsERPNS1_30FunctionTemplateSpecializationE")] + internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); - internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate20clearSpecializationsEv")] + internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate23getSpecializationsCountEv")] + internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new BaseClassSpecifier(native.ToPointer(), skipVTables); + return new FunctionTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) { - return new BaseClassSpecifier(native, skipVTables); + return new FunctionTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); - *(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) ret = native; + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); + global::CppSharp.Parser.AST.FunctionTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) + private FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected BaseClassSpecifier(void* native, bool skipVTables = false) + protected FunctionTemplate(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public BaseClassSpecifier() + public FunctionTemplate() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier _0) + public FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.BaseClassSpecifier __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.AccessSpecifier Access + public global::CppSharp.Parser.AST.FunctionTemplateSpecialization GetSpecializations(uint i) { - get - { - return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access = value; - } + var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.FunctionTemplateSpecialization __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.FunctionTemplateSpecialization) global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__CreateInstance(__ret); + return __result0; } - public bool IsVirtual + public void AddSpecializations(global::CppSharp.Parser.AST.FunctionTemplateSpecialization s) { - get - { - return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual != 0; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.Type Type + public void ClearSpecializations() { - get - { - global::CppSharp.Parser.AST.Type __result0; - if (((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type)) - __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type]; - else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); } - public int Offset + public uint SpecializationsCount { get { - return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset = value; + var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class Field : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class Variable : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 152)] + [StructLayout(LayoutKind.Explicit, Size = 168)] public new partial struct __Internal { [FieldOffset(0)] @@ -8486,64 +9093,71 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] - public global::System.IntPtr originalPtr; - - [FieldOffset(112)] - public global::System.IntPtr comment; + internal global::Std.Vector.__Internal Redeclarations; - [FieldOffset(120)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(128)] + public global::System.IntPtr originalPtr; [FieldOffset(136)] - public global::System.IntPtr _class; + public global::System.IntPtr comment; [FieldOffset(144)] - public byte isBitField; + public global::Std.BasicString.__Internal Mangled; - [FieldOffset(148)] - public uint bitWidth; + [FieldOffset(152)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5FieldC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST8VariableC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5FieldC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST8VariableC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5FieldD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST8VariableD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Variable10getMangledEv")] + internal static extern global::System.IntPtr Mangled_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8Variable10setMangledEPKc")] + internal static extern void SetMangled_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - internal static new global::CppSharp.Parser.AST.Field __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Variable __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Field(native.ToPointer(), skipVTables); + return new Variable(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Field __CreateInstance(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Variable __CreateInstance(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) { - return new Field(native, skipVTables); + return new Variable(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Field.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Variable.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); - global::CppSharp.Parser.AST.Field.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); + global::CppSharp.Parser.AST.Variable.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Field(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) + private Variable(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Field(void* native, bool skipVTables = false) + protected Variable(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -8552,19 +9166,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Field() + public Variable() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Field(global::CppSharp.Parser.AST.Field _0) + public Variable(global::CppSharp.Parser.AST.Variable _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8577,73 +9191,43 @@ namespace CppSharp { global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.QualifiedType QualifiedType - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.Class Class - { - get - { - global::CppSharp.Parser.AST.Class __result0; - if (((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public bool IsBitField + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField != 0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public uint BitWidth + public string Mangled { get { - return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth; + var __ret = __Internal.Mangled_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth = value; + __Internal.SetMangled_0((__Instance + __PointerAdjustment), value); } } } - public unsafe partial class AccessSpecifierDecl : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class Friend : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 120)] + [StructLayout(LayoutKind.Explicit, Size = 152)] public new partial struct __Internal { [FieldOffset(0)] @@ -8692,52 +9276,58 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] public global::System.IntPtr originalPtr; - [FieldOffset(112)] + [FieldOffset(136)] public global::System.IntPtr comment; + [FieldOffset(144)] + public global::System.IntPtr declaration; + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST6FriendC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST6FriendC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST6FriendD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Friend __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new AccessSpecifierDecl(native.ToPointer(), skipVTables); + return new Friend(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Friend __CreateInstance(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) { - return new AccessSpecifierDecl(native, skipVTables); + return new Friend(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Friend.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); - global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); + global::CppSharp.Parser.AST.Friend.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) + private Friend(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected AccessSpecifierDecl(void* native, bool skipVTables = false) + protected Friend(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -8746,19 +9336,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public AccessSpecifierDecl() + public Friend() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl _0) + public Friend(global::CppSharp.Parser.AST.Friend _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8776,263 +9366,222 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + + public global::CppSharp.Parser.AST.Declaration Declaration + { + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } } - public unsafe partial class Class : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + public unsafe partial class Statement : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 512)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 24)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::CppSharp.Parser.AST.StatementClass _class; [FieldOffset(8)] - public global::System.IntPtr _namespace; + public global::System.IntPtr decl; [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(40)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(48)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(56)] - public byte isIncomplete; - - [FieldOffset(57)] - public byte isDependent; - - [FieldOffset(58)] - public byte isImplicit; - - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(72)] - public uint definitionOrder; - - [FieldOffset(80)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(104)] - public global::System.IntPtr originalPtr; - - [FieldOffset(112)] - public global::System.IntPtr comment; - - [FieldOffset(120)] - internal global::Std.Vector.__Internal Namespaces; - - [FieldOffset(144)] - internal global::Std.Vector.__Internal Enums; - - [FieldOffset(168)] - internal global::Std.Vector.__Internal Functions; - - [FieldOffset(192)] - internal global::Std.Vector.__Internal Classes; - - [FieldOffset(216)] - internal global::Std.Vector.__Internal Templates; - - [FieldOffset(240)] - internal global::Std.Vector.__Internal Typedefs; - - [FieldOffset(264)] - internal global::Std.Vector.__Internal TypeAliases; - - [FieldOffset(288)] - internal global::Std.Vector.__Internal Variables; - - [FieldOffset(312)] - internal global::Std.Vector.__Internal Friends; - - [FieldOffset(336)] - internal global::Std.Map.__Internal anonymous; - - [FieldOffset(384)] - public byte isAnonymous; - - [FieldOffset(392)] - internal global::Std.Vector.__Internal Bases; - - [FieldOffset(416)] - internal global::Std.Vector.__Internal Fields; - - [FieldOffset(440)] - internal global::Std.Vector.__Internal Methods; - - [FieldOffset(464)] - internal global::Std.Vector.__Internal Specifiers; - - [FieldOffset(488)] - public byte isPOD; - - [FieldOffset(489)] - public byte isAbstract; - - [FieldOffset(490)] - public byte isUnion; - - [FieldOffset(491)] - public byte isDynamic; - - [FieldOffset(492)] - public byte isPolymorphic; - - [FieldOffset(493)] - public byte hasNonTrivialDefaultConstructor; - - [FieldOffset(494)] - public byte hasNonTrivialCopyConstructor; - - [FieldOffset(495)] - public byte hasNonTrivialDestructor; - - [FieldOffset(496)] - public byte isExternCContext; - - [FieldOffset(497)] - public byte isInjected; - - [FieldOffset(504)] - public global::System.IntPtr layout; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5ClassC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + public global::Std.BasicString.__Internal String; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5ClassC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST9StatementC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5ClassD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST9StatementD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class8getBasesEj")] - internal static extern global::System.IntPtr GetBases_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST9Statement9getStringEv")] + internal static extern global::System.IntPtr String_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class8addBasesERPNS1_18BaseClassSpecifierE")] - internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST9Statement9setStringEPKc")] + internal static extern void SetString_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class10clearBasesEv")] - internal static extern void ClearBases_0(global::System.IntPtr instance); + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Statement(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + { + return new Statement(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.Statement.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); + global::CppSharp.Parser.AST.Statement.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private Statement(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected Statement(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public Statement(global::CppSharp.Parser.AST.Statement _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class9getFieldsEj")] - internal static extern global::System.IntPtr GetFields_0(global::System.IntPtr instance, uint i); + public void Dispose() + { + Dispose(disposing: true); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class9addFieldsERPNS1_5FieldE")] - internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Statement __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class11clearFieldsEv")] - internal static extern void ClearFields_0(global::System.IntPtr instance); + public global::CppSharp.Parser.AST.StatementClass Class + { + get + { + return ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class10getMethodsEj")] - internal static extern global::System.IntPtr GetMethods_0(global::System.IntPtr instance, uint i); + set + { + ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class10addMethodsERPNS1_6MethodE")] - internal static extern void AddMethods_0(global::System.IntPtr instance, global::System.IntPtr s); + public global::CppSharp.Parser.AST.Declaration Decl + { + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl); + return __result0; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class12clearMethodsEv")] - internal static extern void ClearMethods_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class13getSpecifiersEj")] - internal static extern global::System.IntPtr GetSpecifiers_0(global::System.IntPtr instance, uint i); + public string String + { + get + { + var __ret = __Internal.String_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class13addSpecifiersERPNS1_19AccessSpecifierDeclE")] - internal static extern void AddSpecifiers_0(global::System.IntPtr instance, global::System.IntPtr s); + set + { + __Internal.SetString_0((__Instance + __PointerAdjustment), value); + } + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class15clearSpecifiersEv")] - internal static extern void ClearSpecifiers_0(global::System.IntPtr instance); + public unsafe partial class Expression : global::CppSharp.Parser.AST.Statement, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 24)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class13getBasesCountEv")] - internal static extern uint GetBasesCount_0(global::System.IntPtr instance); + [FieldOffset(8)] + public global::System.IntPtr decl; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class14getFieldsCountEv")] - internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); + [FieldOffset(16)] + public global::Std.BasicString.__Internal String; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class15getMethodsCountEv")] - internal static extern uint GetMethodsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST10ExpressionC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST5Class18getSpecifiersCountEv")] - internal static extern uint GetSpecifiersCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST10ExpressionD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Class __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Expression __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Class(native.ToPointer(), skipVTables); + return new Expression(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Class __CreateInstance(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Expression __CreateInstance(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) { - return new Class(native, skipVTables); + return new Expression(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Class.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Expression.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); - global::CppSharp.Parser.AST.Class.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); + global::CppSharp.Parser.AST.Expression.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Class(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) + private Expression(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Class(void* native, bool skipVTables = false) + protected Expression(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -9041,19 +9590,10 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Class() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public Class(global::CppSharp.Parser.AST.Class _0) + public Expression(global::CppSharp.Parser.AST.Expression _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -9064,423 +9604,375 @@ namespace CppSharp public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Declaration __dummy; + global::CppSharp.Parser.AST.Statement __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + } - public global::CppSharp.Parser.AST.BaseClassSpecifier GetBases(uint i) + public unsafe partial class BinaryOperator : global::CppSharp.Parser.AST.Expression, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 48)] + public new partial struct __Internal { - var __ret = __Internal.GetBases_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.BaseClassSpecifier __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.BaseClassSpecifier) global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.BaseClassSpecifier.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; - public void AddBases(global::CppSharp.Parser.AST.BaseClassSpecifier s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(8)] + public global::System.IntPtr decl; - public void ClearBases() - { - __Internal.ClearBases_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(16)] + public global::Std.BasicString.__Internal String; - public global::CppSharp.Parser.AST.Field GetFields(uint i) - { - var __ret = __Internal.GetFields_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Field __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Field.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Field) global::CppSharp.Parser.AST.Field.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Field.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(24)] + public global::System.IntPtr LHS; - public void AddFields(global::CppSharp.Parser.AST.Field s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); + [FieldOffset(32)] + public global::System.IntPtr RHS; + + [FieldOffset(40)] + public global::Std.BasicString.__Internal OpcodeStr; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperatorC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperatorD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperator12getOpcodeStrEv")] + internal static extern global::System.IntPtr OpcodeStr_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST14BinaryOperator12setOpcodeStrEPKc")] + internal static extern void SetOpcodeStr_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - public void ClearFields() + internal static new global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - __Internal.ClearFields_0((__Instance + __PointerAdjustment)); + return new BinaryOperator(native.ToPointer(), skipVTables); } - public global::CppSharp.Parser.AST.Method GetMethods(uint i) + internal static global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) { - var __ret = __Internal.GetMethods_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Method __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Method.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Method) global::CppSharp.Parser.AST.Method.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Method.__CreateInstance(__ret); - return __result0; + return new BinaryOperator(native, skipVTables); } - public void AddMethods(global::CppSharp.Parser.AST.Method s) + private static void* __CopyValue(global::CppSharp.Parser.AST.BinaryOperator.__Internal native) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddMethods_0((__Instance + __PointerAdjustment), __arg0); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); + global::CppSharp.Parser.AST.BinaryOperator.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public void ClearMethods() + private BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - __Internal.ClearMethods_0((__Instance + __PointerAdjustment)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public global::CppSharp.Parser.AST.AccessSpecifierDecl GetSpecifiers(uint i) + protected BinaryOperator(void* native, bool skipVTables = false) + : base((void*) null) { - var __ret = __Internal.GetSpecifiers_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.AccessSpecifierDecl __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.AccessSpecifierDecl) global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.AccessSpecifierDecl.__CreateInstance(__ret); - return __result0; + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public void AddSpecifiers(global::CppSharp.Parser.AST.AccessSpecifierDecl s) + public BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator _0) + : this((void*) null) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecifiers_0((__Instance + __PointerAdjustment), __arg0); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void ClearSpecifiers() + public override void Dispose(bool disposing) { - __Internal.ClearSpecifiers_0((__Instance + __PointerAdjustment)); + global::CppSharp.Parser.AST.Statement __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public bool IsPOD + public global::CppSharp.Parser.AST.Expression LHS { get { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD != 0; + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS); + return __result0; } set { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsAbstract + public global::CppSharp.Parser.AST.Expression RHS { get { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract != 0; + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS); + return __result0; } set { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsUnion + public string OpcodeStr { get { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion != 0; + var __ret = __Internal.OpcodeStr_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion = (byte) (value ? 1 : 0); + __Internal.SetOpcodeStr_0((__Instance + __PointerAdjustment), value); } } + } - public bool IsDynamic + public unsafe partial class CallExpr : global::CppSharp.Parser.AST.Expression, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 48)] + public new partial struct __Internal { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic != 0; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic = (byte) (value ? 1 : 0); - } - } + [FieldOffset(8)] + public global::System.IntPtr decl; - public bool IsPolymorphic - { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic != 0; - } + [FieldOffset(16)] + public global::Std.BasicString.__Internal String; - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic = (byte) (value ? 1 : 0); - } - } + [FieldOffset(24)] + internal global::Std.Vector.__Internal Arguments; - public bool HasNonTrivialDefaultConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor != 0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExprC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor = (byte) (value ? 1 : 0); - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExprD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - public bool HasNonTrivialCopyConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor != 0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr12getArgumentsEj")] + internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor = (byte) (value ? 1 : 0); - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr12addArgumentsERPNS1_10ExpressionE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); - public bool HasNonTrivialDestructor - { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor != 0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor = (byte) (value ? 1 : 0); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST8CallExpr17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - public bool IsExternCContext + internal static new global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext != 0; - } + return new CallExpr(native.ToPointer(), skipVTables); + } - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext = (byte) (value ? 1 : 0); - } + internal static global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) + { + return new CallExpr(native, skipVTables); } - public bool IsInjected + private static void* __CopyValue(global::CppSharp.Parser.AST.CallExpr.__Internal native) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected != 0; - } + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); + global::CppSharp.Parser.AST.CallExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected = (byte) (value ? 1 : 0); - } + private CallExpr(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public global::CppSharp.Parser.AST.ClassLayout Layout + protected CallExpr(void* native, bool skipVTables = false) + : base((void*) null) { - get - { - global::CppSharp.Parser.AST.ClassLayout __result0; - if (((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout)) - __result0 = (global::CppSharp.Parser.AST.ClassLayout) global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap[((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout]; - else __result0 = global::CppSharp.Parser.AST.ClassLayout.__CreateInstance(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout); - return __result0; - } + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + public CallExpr(global::CppSharp.Parser.AST.CallExpr _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public uint BasesCount + public override void Dispose(bool disposing) { - get - { - var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + global::CppSharp.Parser.AST.Statement __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public uint FieldsCount + public global::CppSharp.Parser.AST.Expression GetArguments(uint i) { - get - { - var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Expression __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); + return __result0; + } + + public void AddArguments(global::CppSharp.Parser.AST.Expression s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); } - public uint MethodsCount + public void ClearArguments() { - get - { - var __ret = __Internal.GetMethodsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint SpecifiersCount + public uint ArgumentsCount { get { - var __ret = __Internal.GetSpecifiersCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class Template : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class CXXConstructExpr : global::CppSharp.Parser.AST.Expression, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 152)] + [StructLayout(LayoutKind.Explicit, Size = 48)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::CppSharp.Parser.AST.StatementClass _class; [FieldOffset(8)] - public global::System.IntPtr _namespace; + public global::System.IntPtr decl; [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; + public global::Std.BasicString.__Internal String; [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(40)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(48)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(56)] - public byte isIncomplete; - - [FieldOffset(57)] - public byte isDependent; - - [FieldOffset(58)] - public byte isImplicit; - - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(72)] - public uint definitionOrder; - - [FieldOffset(80)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(104)] - public global::System.IntPtr originalPtr; - - [FieldOffset(112)] - public global::System.IntPtr comment; - - [FieldOffset(120)] - public global::System.IntPtr TemplatedDecl; - - [FieldOffset(128)] - internal global::Std.Vector.__Internal Parameters; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2Ev")] - internal static extern void ctor_1(global::System.IntPtr instance); + internal global::Std.Vector.__Internal Arguments; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateC2ERKS2_")] - internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExprC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8TemplateD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExprD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Template13getParametersEj")] - internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr12getArgumentsEj")] + internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Template13addParametersERPNS1_11DeclarationE")] - internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr12addArgumentsERPNS1_10ExpressionE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Template15clearParametersEv")] - internal static extern void ClearParameters_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST8Template18getParametersCountEv")] - internal static extern uint GetParametersCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST16CXXConstructExpr17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Template __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Template(native.ToPointer(), skipVTables); + return new CXXConstructExpr(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Template __CreateInstance(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) { - return new Template(native, skipVTables); + return new CXXConstructExpr(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Template.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); - global::CppSharp.Parser.AST.Template.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); + global::CppSharp.Parser.AST.CXXConstructExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Template(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) + private CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Template(void* native, bool skipVTables = false) + protected CXXConstructExpr(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -9489,39 +9981,21 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Template(global::CppSharp.Parser.AST.DeclarationKind kind) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); - } - - public Template() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_1((__Instance + __PointerAdjustment)); - } - - public Template(global::CppSharp.Parser.AST.Template _0) + public CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Declaration __dummy; + global::CppSharp.Parser.AST.Statement __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -9529,187 +10003,143 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Declaration GetParameters(uint i) + public global::CppSharp.Parser.AST.Expression GetArguments(uint i) { - var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Declaration __result0; + var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Expression __result0; if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(__ret); + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); return __result0; } - public void AddParameters(global::CppSharp.Parser.AST.Declaration s) + public void AddArguments(global::CppSharp.Parser.AST.Expression s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearParameters() - { - __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); - } - - public static implicit operator global::CppSharp.Parser.AST.Template(global::CppSharp.Parser.AST.DeclarationKind kind) - { - return new global::CppSharp.Parser.AST.Template(kind); + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.Declaration TemplatedDecl + public void ClearArguments() { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint ParametersCount + public uint ArgumentsCount { get { - var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class FunctionTemplateSpecialization : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 152)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 48)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::System.IntPtr _template; [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; + internal global::Std.Vector.__Internal Arguments; [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(40)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(48)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(56)] - public byte isIncomplete; - - [FieldOffset(57)] - public byte isDependent; - - [FieldOffset(58)] - public byte isImplicit; - - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(72)] - public uint definitionOrder; - - [FieldOffset(80)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(104)] - public global::System.IntPtr originalPtr; - - [FieldOffset(112)] - public global::System.IntPtr comment; - - [FieldOffset(120)] - public global::System.IntPtr TemplatedDecl; - - [FieldOffset(128)] - internal global::Std.Vector.__Internal Parameters; + public global::System.IntPtr specializedFunction; + + [FieldOffset(40)] + public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TypeAliasTemplateD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization12getArgumentsEj")] + internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization14clearArgumentsEv")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization17getArgumentsCountEv")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypeAliasTemplate(native.ToPointer(), skipVTables); + return new FunctionTemplateSpecialization(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) { - return new TypeAliasTemplate(native, skipVTables); + return new FunctionTemplateSpecialization(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); - global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); + global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) + private FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypeAliasTemplate(void* native, bool skipVTables = false) - : base((void*) null) + protected FunctionTemplateSpecialization(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public TypeAliasTemplate() - : this((void*) null) + public FunctionTemplateSpecialization() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate _0) - : this((void*) null) + public FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -9718,20 +10148,103 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.FunctionTemplateSpecialization __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + + public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) + { + var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); + __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); + return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); + } + + public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearArguments() + { + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.FunctionTemplate Template + { + get + { + global::CppSharp.Parser.AST.FunctionTemplate __result0; + if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template)) + __result0 = (global::CppSharp.Parser.AST.FunctionTemplate) global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template]; + else __result0 = global::CppSharp.Parser.AST.FunctionTemplate.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public global::CppSharp.Parser.AST.Function SpecializedFunction + { + get + { + global::CppSharp.Parser.AST.Function __result0; + if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction)) + __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction]; + else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public global::CppSharp.Parser.AST.TemplateSpecializationKind SpecializationKind + { + get + { + return ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; + } + } + + public uint ArgumentsCount + { + get + { + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } } - public unsafe partial class TemplateParameter : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class AccessSpecifierDecl : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 136)] + [StructLayout(LayoutKind.Explicit, Size = 144)] public new partial struct __Internal { [FieldOffset(0)] @@ -9780,61 +10293,55 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] public global::System.IntPtr originalPtr; - [FieldOffset(112)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(120)] - public uint depth; - - [FieldOffset(124)] - public uint index; - - [FieldOffset(128)] - public byte isParameterPack; - [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterC2ENS1_15DeclarationKindE")] - internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST19AccessSpecifierDeclD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateParameter(native.ToPointer(), skipVTables); + return new AccessSpecifierDecl(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) { - return new TemplateParameter(native, skipVTables); + return new AccessSpecifierDecl(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); - global::CppSharp.Parser.AST.TemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) + private AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateParameter(void* native, bool skipVTables = false) + protected AccessSpecifierDecl(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -9842,86 +10349,42 @@ namespace CppSharp return; __Instance = new global::System.IntPtr(native); } - - public TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); - } - - public TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public static implicit operator global::CppSharp.Parser.AST.TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) - { - return new global::CppSharp.Parser.AST.TemplateParameter(kind); - } - - public uint Depth - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth = value; - } - } - - public uint Index - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index = value; - } + + public AccessSpecifierDecl() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public bool IsParameterPack + public AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl _0) + : this((void*) null) { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack != 0; - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - set - { - ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); - } + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment)); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } } - public unsafe partial class TemplateTemplateParameter : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 160)] + [StructLayout(LayoutKind.Explicit, Size = 304)] public new partial struct __Internal { [FieldOffset(0)] @@ -9970,67 +10433,142 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] public global::System.IntPtr originalPtr; - [FieldOffset(112)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(120)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(144)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(128)] + [FieldOffset(160)] + public byte isReturnIndirect; + + [FieldOffset(161)] + public byte hasThisReturn; + + [FieldOffset(162)] + public byte isConstExpr; + + [FieldOffset(163)] + public byte isVariadic; + + [FieldOffset(164)] + public byte isInline; + + [FieldOffset(165)] + public byte isPure; + + [FieldOffset(166)] + public byte isDeleted; + + [FieldOffset(168)] + public global::CppSharp.Parser.AST.FriendKind friendKind; + + [FieldOffset(172)] + public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; + + [FieldOffset(176)] + public global::Std.BasicString.__Internal Mangled; + + [FieldOffset(184)] + public global::Std.BasicString.__Internal Signature; + + [FieldOffset(192)] + public global::Std.BasicString.__Internal Body; + + [FieldOffset(200)] + public global::CppSharp.Parser.AST.CallingConvention callingConvention; + + [FieldOffset(208)] internal global::Std.Vector.__Internal Parameters; - [FieldOffset(152)] - public byte isParameterPack; + [FieldOffset(232)] + public global::System.IntPtr specializationInfo; - [FieldOffset(153)] - public byte isPackExpansion; + [FieldOffset(240)] + public global::System.IntPtr instantiatedFrom; - [FieldOffset(154)] - public byte isExpandedParameterPack; + [FieldOffset(248)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(264)] + public byte isVirtual; + + [FieldOffset(265)] + public byte isStatic; + + [FieldOffset(266)] + public byte isConst; + + [FieldOffset(267)] + public byte isExplicit; + + [FieldOffset(268)] + public byte isOverride; + + [FieldOffset(272)] + public global::CppSharp.Parser.AST.CXXMethodKind methodKind; + + [FieldOffset(276)] + public byte isDefaultConstructor; + + [FieldOffset(277)] + public byte isCopyConstructor; + + [FieldOffset(278)] + public byte isMoveConstructor; + + [FieldOffset(280)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; + + [FieldOffset(296)] + public global::CppSharp.Parser.AST.RefQualifierKind refQualifier; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST6MethodD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateTemplateParameter(native.ToPointer(), skipVTables); + return new Method(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Method __CreateInstance(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) { - return new TemplateTemplateParameter(native, skipVTables); + return new Method(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Method.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); - global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); + global::CppSharp.Parser.AST.Method.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) + private Method(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateTemplateParameter(void* native, bool skipVTables = false) + protected Method(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10039,19 +10577,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateTemplateParameter() + public Method() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter _0) + public Method(global::CppSharp.Parser.AST.Method _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10070,424 +10608,305 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public bool IsParameterPack + public bool IsVirtual { get { - return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack != 0; + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual != 0; } set { - ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); } } - public bool IsPackExpansion + public bool IsStatic { get { - return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic != 0; } set { - ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic = (byte) (value ? 1 : 0); } } - public bool IsExpandedParameterPack + public bool IsConst { get { - return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst != 0; } set { - ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst = (byte) (value ? 1 : 0); } } - } - public unsafe partial class TypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 152)] - public new partial struct __Internal + public bool IsExplicit { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(40)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(48)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(56)] - public byte isIncomplete; - - [FieldOffset(57)] - public byte isDependent; - - [FieldOffset(58)] - public byte isImplicit; - - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(72)] - public uint definitionOrder; - - [FieldOffset(80)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(104)] - public global::System.IntPtr originalPtr; - - [FieldOffset(112)] - public global::System.IntPtr comment; - - [FieldOffset(120)] - public uint depth; - - [FieldOffset(124)] - public uint index; - - [FieldOffset(128)] - public byte isParameterPack; - - [FieldOffset(136)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal defaultArgument; + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit != 0; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit = (byte) (value ? 1 : 0); + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public bool IsOverride + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride != 0; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST21TypeTemplateParameterD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride = (byte) (value ? 1 : 0); + } } - internal static new global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public global::CppSharp.Parser.AST.CXXMethodKind MethodKind { - return new TypeTemplateParameter(native.ToPointer(), skipVTables); - } + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind; + } - internal static global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) - { - return new TypeTemplateParameter(native, skipVTables); + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind = value; + } } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native) + public bool IsDefaultConstructor { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); - global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor != 0; + } - private TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor = (byte) (value ? 1 : 0); + } } - protected TypeTemplateParameter(void* native, bool skipVTables = false) - : base((void*) null) + public bool IsCopyConstructor { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor != 0; + } - public TypeTemplateParameter() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor = (byte) (value ? 1 : 0); + } } - public TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter _0) - : this((void*) null) + public bool IsMoveConstructor { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor = (byte) (value ? 1 : 0); + } } - public override void Dispose(bool disposing) + public global::CppSharp.Parser.AST.QualifiedType ConversionType { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType); + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } - public global::CppSharp.Parser.AST.QualifiedType DefaultArgument + public global::CppSharp.Parser.AST.RefQualifierKind RefQualifier { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument); + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier; } set { - ((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value; } } } - public unsafe partial class NonTypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable + public unsafe partial class BaseClassSpecifier : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 152)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 24)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public byte isVirtual; [FieldOffset(8)] - public global::System.IntPtr _namespace; + public global::System.IntPtr type; [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(40)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(48)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(56)] - public byte isIncomplete; - - [FieldOffset(57)] - public byte isDependent; - - [FieldOffset(58)] - public byte isImplicit; - - [FieldOffset(64)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(72)] - public uint definitionOrder; - - [FieldOffset(80)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(104)] - public global::System.IntPtr originalPtr; - - [FieldOffset(112)] - public global::System.IntPtr comment; - - [FieldOffset(120)] - public uint depth; - - [FieldOffset(124)] - public uint index; - - [FieldOffset(128)] - public byte isParameterPack; - - [FieldOffset(136)] - public global::System.IntPtr defaultArgument; - - [FieldOffset(144)] - public uint position; - - [FieldOffset(148)] - public byte isPackExpansion; - - [FieldOffset(149)] - public byte isExpandedParameterPack; + public int offset; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST18BaseClassSpecifierC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST18BaseClassSpecifierC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new NonTypeTemplateParameter(native.ToPointer(), skipVTables); + return new BaseClassSpecifier(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) { - return new NonTypeTemplateParameter(native, skipVTables); + return new BaseClassSpecifier(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); - global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); + *(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) ret = native; return ret.ToPointer(); } - private NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) + private BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected NonTypeTemplateParameter(void* native, bool skipVTables = false) - : base((void*) null) + protected BaseClassSpecifier(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public NonTypeTemplateParameter() - : this((void*) null) + public BaseClassSpecifier() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter _0) - : this((void*) null) + public BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) _0.__Instance); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.BaseClassSpecifier __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Expression DefaultArgument + public global::CppSharp.Parser.AST.AccessSpecifier Access { get { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument); - return __result0; + return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access = value; } } - public uint Position + public bool IsVirtual { get { - return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position; + return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual != 0; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position = value; + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); } } - public bool IsPackExpansion + public global::CppSharp.Parser.AST.Type Type { get { - return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + global::CppSharp.Parser.AST.Type __result0; + if (((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type)) + __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type]; + else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type); + return __result0; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsExpandedParameterPack + public int Offset { get { - return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset = value; } } } - public unsafe partial class ClassTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class Field : global::CppSharp.Parser.AST.Declaration, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 176)] public new partial struct __Internal @@ -10538,81 +10957,67 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] public global::System.IntPtr originalPtr; - [FieldOffset(112)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(120)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(144)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(128)] - internal global::Std.Vector.__Internal Parameters; + [FieldOffset(160)] + public global::System.IntPtr _class; - [FieldOffset(152)] - internal global::Std.Vector.__Internal Specializations; + [FieldOffset(168)] + public byte isBitField; + + [FieldOffset(172)] + public uint bitWidth; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST5FieldC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST5FieldC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplateD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST5FieldD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate18getSpecializationsEj")] - internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate18addSpecializationsERPNS1_27ClassTemplateSpecializationE")] - internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate20clearSpecializationsEv")] - internal static extern void ClearSpecializations_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST13ClassTemplate23getSpecializationsCountEv")] - internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Field __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassTemplate(native.ToPointer(), skipVTables); + return new Field(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Field __CreateInstance(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) { - return new ClassTemplate(native, skipVTables); + return new Field(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Field.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); - global::CppSharp.Parser.AST.ClassTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); + global::CppSharp.Parser.AST.Field.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) + private Field(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassTemplate(void* native, bool skipVTables = false) + protected Field(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10621,19 +11026,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public ClassTemplate() + public Field() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate _0) + public Field(global::CppSharp.Parser.AST.Field _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10652,43 +11057,67 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.ClassTemplateSpecialization GetSpecializations(uint i) + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { - var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.ClassTemplateSpecialization __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.ClassTemplateSpecialization) global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.ClassTemplateSpecialization.__CreateInstance(__ret); - return __result0; + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType); + } + + set + { + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } - public void AddSpecializations(global::CppSharp.Parser.AST.ClassTemplateSpecialization s) + public global::CppSharp.Parser.AST.Class Class { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); + get + { + global::CppSharp.Parser.AST.Class __result0; + if (((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public void ClearSpecializations() + public bool IsBitField { - __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); + get + { + return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField = (byte) (value ? 1 : 0); + } } - public uint SpecializationsCount + public uint BitWidth { get { - var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth; + } + + set + { + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth = value; } } } - public unsafe partial class ClassTemplateSpecialization : global::CppSharp.Parser.AST.Class, IDisposable + public unsafe partial class TemplateParameter : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 552)] + [StructLayout(LayoutKind.Explicit, Size = 160)] public new partial struct __Internal { [FieldOffset(0)] @@ -10737,159 +11166,64 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] public global::System.IntPtr originalPtr; - [FieldOffset(112)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(120)] - internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(144)] - internal global::Std.Vector.__Internal Enums; - - [FieldOffset(168)] - internal global::Std.Vector.__Internal Functions; - - [FieldOffset(192)] - internal global::Std.Vector.__Internal Classes; - - [FieldOffset(216)] - internal global::Std.Vector.__Internal Templates; - - [FieldOffset(240)] - internal global::Std.Vector.__Internal Typedefs; - - [FieldOffset(264)] - internal global::Std.Vector.__Internal TypeAliases; - - [FieldOffset(288)] - internal global::Std.Vector.__Internal Variables; - - [FieldOffset(312)] - internal global::Std.Vector.__Internal Friends; - - [FieldOffset(336)] - internal global::Std.Map.__Internal anonymous; - - [FieldOffset(384)] - public byte isAnonymous; - - [FieldOffset(392)] - internal global::Std.Vector.__Internal Bases; - - [FieldOffset(416)] - internal global::Std.Vector.__Internal Fields; - - [FieldOffset(440)] - internal global::Std.Vector.__Internal Methods; - - [FieldOffset(464)] - internal global::Std.Vector.__Internal Specifiers; - - [FieldOffset(488)] - public byte isPOD; - - [FieldOffset(489)] - public byte isAbstract; - - [FieldOffset(490)] - public byte isUnion; - - [FieldOffset(491)] - public byte isDynamic; - - [FieldOffset(492)] - public byte isPolymorphic; - - [FieldOffset(493)] - public byte hasNonTrivialDefaultConstructor; - - [FieldOffset(494)] - public byte hasNonTrivialCopyConstructor; - - [FieldOffset(495)] - public byte hasNonTrivialDestructor; - - [FieldOffset(496)] - public byte isExternCContext; - - [FieldOffset(497)] - public byte isInjected; - - [FieldOffset(504)] - public global::System.IntPtr layout; - - [FieldOffset(512)] - public global::System.IntPtr templatedDecl; + public uint depth; - [FieldOffset(520)] - internal global::Std.Vector.__Internal Arguments; + [FieldOffset(148)] + public uint index; - [FieldOffset(544)] - public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; + [FieldOffset(152)] + public byte isParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterC2ENS1_15DeclarationKindE")] + internal static extern void ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST17TemplateParameterD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization12getArgumentsEj")] - internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization14clearArgumentsEv")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization17getArgumentsCountEv")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassTemplateSpecialization(native.ToPointer(), skipVTables); + return new TemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) { - return new ClassTemplateSpecialization(native, skipVTables); + return new TemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); - global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); + global::CppSharp.Parser.AST.TemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) + private TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassTemplateSpecialization(void* native, bool skipVTables = false) + protected TemplateParameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10898,19 +11232,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public ClassTemplateSpecialization() + public TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization _0) + public TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10929,70 +11263,54 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) - { - var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); - __Internal.GetArguments_0(new IntPtr(&__ret), (__Instance + __PointerAdjustment), i); - return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); - } - - public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearArguments() + public static implicit operator global::CppSharp.Parser.AST.TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + return new global::CppSharp.Parser.AST.TemplateParameter(kind); } - public global::CppSharp.Parser.AST.ClassTemplate TemplatedDecl + public uint Depth { get { - global::CppSharp.Parser.AST.ClassTemplate __result0; - if (((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl)) - __result0 = (global::CppSharp.Parser.AST.ClassTemplate) global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl]; - else __result0 = global::CppSharp.Parser.AST.ClassTemplate.__CreateInstance(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl); - return __result0; + return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth; } set { - ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth = value; } } - public global::CppSharp.Parser.AST.TemplateSpecializationKind SpecializationKind + public uint Index { get { - return ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind; + return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index; } set { - ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; + ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index = value; } } - public uint ArgumentsCount + public bool IsParameterPack { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); } } } - public unsafe partial class ClassTemplatePartialSpecialization : global::CppSharp.Parser.AST.ClassTemplateSpecialization, IDisposable + public unsafe partial class TemplateTemplateParameter : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 552)] + [StructLayout(LayoutKind.Explicit, Size = 184)] public new partial struct __Internal { [FieldOffset(0)] @@ -11041,139 +11359,70 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] public global::System.IntPtr originalPtr; - [FieldOffset(112)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(120)] - internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(144)] - internal global::Std.Vector.__Internal Enums; - - [FieldOffset(168)] - internal global::Std.Vector.__Internal Functions; - - [FieldOffset(192)] - internal global::Std.Vector.__Internal Classes; - - [FieldOffset(216)] - internal global::Std.Vector.__Internal Templates; - - [FieldOffset(240)] - internal global::Std.Vector.__Internal Typedefs; - - [FieldOffset(264)] - internal global::Std.Vector.__Internal TypeAliases; - - [FieldOffset(288)] - internal global::Std.Vector.__Internal Variables; - - [FieldOffset(312)] - internal global::Std.Vector.__Internal Friends; - - [FieldOffset(336)] - internal global::Std.Map.__Internal anonymous; - - [FieldOffset(384)] - public byte isAnonymous; - - [FieldOffset(392)] - internal global::Std.Vector.__Internal Bases; - - [FieldOffset(416)] - internal global::Std.Vector.__Internal Fields; - - [FieldOffset(440)] - internal global::Std.Vector.__Internal Methods; - - [FieldOffset(464)] - internal global::Std.Vector.__Internal Specifiers; - - [FieldOffset(488)] - public byte isPOD; - - [FieldOffset(489)] - public byte isAbstract; - - [FieldOffset(490)] - public byte isUnion; - - [FieldOffset(491)] - public byte isDynamic; - - [FieldOffset(492)] - public byte isPolymorphic; - - [FieldOffset(493)] - public byte hasNonTrivialDefaultConstructor; - - [FieldOffset(494)] - public byte hasNonTrivialCopyConstructor; - - [FieldOffset(495)] - public byte hasNonTrivialDestructor; - - [FieldOffset(496)] - public byte isExternCContext; - - [FieldOffset(497)] - public byte isInjected; + public global::System.IntPtr TemplatedDecl; - [FieldOffset(504)] - public global::System.IntPtr layout; + [FieldOffset(152)] + internal global::Std.Vector.__Internal Parameters; - [FieldOffset(512)] - public global::System.IntPtr templatedDecl; + [FieldOffset(176)] + public byte isParameterPack; - [FieldOffset(520)] - internal global::Std.Vector.__Internal Arguments; + [FieldOffset(177)] + public byte isPackExpansion; - [FieldOffset(544)] - public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; + [FieldOffset(178)] + public byte isExpandedParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST25TemplateTemplateParameterD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassTemplatePartialSpecialization(native.ToPointer(), skipVTables); + return new TemplateTemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) { - return new ClassTemplatePartialSpecialization(native, skipVTables); + return new TemplateTemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); - global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); + global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) + private TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassTemplatePartialSpecialization(void* native, bool skipVTables = false) + protected TemplateTemplateParameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -11182,19 +11431,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public ClassTemplatePartialSpecialization() + public TemplateTemplateParameter() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization _0) + public TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -11212,9 +11461,48 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + + public bool IsParameterPack + { + get + { + return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); + } + } + + public bool IsPackExpansion + { + get + { + return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + } + } + + public bool IsExpandedParameterPack + { + get + { + return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); + } + } } - public unsafe partial class FunctionTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class NonTypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 176)] public new partial struct __Internal @@ -11265,81 +11553,76 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] public global::System.IntPtr originalPtr; - [FieldOffset(112)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(120)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(144)] + public uint depth; - [FieldOffset(128)] - internal global::Std.Vector.__Internal Parameters; + [FieldOffset(148)] + public uint index; [FieldOffset(152)] - internal global::Std.Vector.__Internal Specializations; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + public byte isParameterPack; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(160)] + public global::System.IntPtr defaultArgument; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplateD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + [FieldOffset(168)] + public uint position; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate18getSpecializationsEj")] - internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); + [FieldOffset(172)] + public byte isPackExpansion; + + [FieldOffset(173)] + public byte isExpandedParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate18addSpecializationsERPNS1_30FunctionTemplateSpecializationE")] - internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate20clearSpecializationsEv")] - internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST16FunctionTemplate23getSpecializationsCountEv")] - internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST24NonTypeTemplateParameterD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new FunctionTemplate(native.ToPointer(), skipVTables); + return new NonTypeTemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) { - return new FunctionTemplate(native, skipVTables); + return new NonTypeTemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); - global::CppSharp.Parser.AST.FunctionTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) + private NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected FunctionTemplate(void* native, bool skipVTables = false) + protected NonTypeTemplateParameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -11348,19 +11631,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public FunctionTemplate() + public NonTypeTemplateParameter() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate _0) + public NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -11379,143 +11662,292 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.FunctionTemplateSpecialization GetSpecializations(uint i) + public global::CppSharp.Parser.AST.Expression DefaultArgument { - var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.FunctionTemplateSpecialization __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.FunctionTemplateSpecialization) global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__CreateInstance(__ret); - return __result0; + get + { + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public void AddSpecializations(global::CppSharp.Parser.AST.FunctionTemplateSpecialization s) + public uint Position { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); + get + { + return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position = value; + } } - public void ClearSpecializations() + public bool IsPackExpansion { - __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); + get + { + return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + } } - public uint SpecializationsCount + public bool IsExpandedParameterPack { get { - var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); } } } - public unsafe partial class FunctionTemplateSpecialization : IDisposable + public unsafe partial class ClassTemplateSpecialization : global::CppSharp.Parser.AST.Class, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 48)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 576)] + public new partial struct __Internal { [FieldOffset(0)] - public global::System.IntPtr _template; + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - internal global::Std.Vector.__Internal Arguments; + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; [FieldOffset(32)] - public global::System.IntPtr specializedFunction; + public global::Std.BasicString.__Internal Name; [FieldOffset(40)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(48)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(56)] + public byte isIncomplete; + + [FieldOffset(57)] + public byte isDependent; + + [FieldOffset(58)] + public byte isImplicit; + + [FieldOffset(64)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(72)] + public uint definitionOrder; + + [FieldOffset(80)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] + public global::System.IntPtr originalPtr; + + [FieldOffset(136)] + public global::System.IntPtr comment; + + [FieldOffset(144)] + internal global::Std.Vector.__Internal Namespaces; + + [FieldOffset(168)] + internal global::Std.Vector.__Internal Enums; + + [FieldOffset(192)] + internal global::Std.Vector.__Internal Functions; + + [FieldOffset(216)] + internal global::Std.Vector.__Internal Classes; + + [FieldOffset(240)] + internal global::Std.Vector.__Internal Templates; + + [FieldOffset(264)] + internal global::Std.Vector.__Internal Typedefs; + + [FieldOffset(288)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(312)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(336)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(360)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(408)] + public byte isAnonymous; + + [FieldOffset(416)] + internal global::Std.Vector.__Internal Bases; + + [FieldOffset(440)] + internal global::Std.Vector.__Internal Fields; + + [FieldOffset(464)] + internal global::Std.Vector.__Internal Methods; + + [FieldOffset(488)] + internal global::Std.Vector.__Internal Specifiers; + + [FieldOffset(512)] + public byte isPOD; + + [FieldOffset(513)] + public byte isAbstract; + + [FieldOffset(514)] + public byte isUnion; + + [FieldOffset(515)] + public byte isDynamic; + + [FieldOffset(516)] + public byte isPolymorphic; + + [FieldOffset(517)] + public byte hasNonTrivialDefaultConstructor; + + [FieldOffset(518)] + public byte hasNonTrivialCopyConstructor; + + [FieldOffset(519)] + public byte hasNonTrivialDestructor; + + [FieldOffset(520)] + public byte isExternCContext; + + [FieldOffset(521)] + public byte isInjected; + + [FieldOffset(528)] + public global::System.IntPtr layout; + + [FieldOffset(536)] + public global::System.IntPtr templatedDecl; + + [FieldOffset(544)] + internal global::Std.Vector.__Internal Arguments; + + [FieldOffset(568)] public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationC2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationC2Ev")] internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationC2ERKS2_")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationC2ERKS2_")] internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecializationD2Ev")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecializationD2Ev")] internal static extern void dtor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization12getArgumentsEj")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization12getArgumentsEj")] internal static extern void GetArguments_0(global::System.IntPtr @return, global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization12addArgumentsERNS1_16TemplateArgumentE")] internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization14clearArgumentsEv")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization14clearArgumentsEv")] internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST30FunctionTemplateSpecialization17getArgumentsCountEv")] + EntryPoint="_ZN8CppSharp9CppParser3AST27ClassTemplateSpecialization17getArgumentsCountEv")] internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; + } - internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new FunctionTemplateSpecialization(native.ToPointer(), skipVTables); + return new ClassTemplateSpecialization(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) { - return new FunctionTemplateSpecialization(native, skipVTables); + return new ClassTemplateSpecialization(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); - global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); + global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) + private ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected FunctionTemplateSpecialization(void* native, bool skipVTables = false) + protected ClassTemplateSpecialization(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public FunctionTemplateSpecialization() + public ClassTemplateSpecialization() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization _0) + public ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -11524,14 +11956,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.FunctionTemplateSpecialization __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment)); @@ -11559,39 +11986,21 @@ namespace CppSharp __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.FunctionTemplate Template - { - get - { - global::CppSharp.Parser.AST.FunctionTemplate __result0; - if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template)) - __result0 = (global::CppSharp.Parser.AST.FunctionTemplate) global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template]; - else __result0 = global::CppSharp.Parser.AST.FunctionTemplate.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public global::CppSharp.Parser.AST.Function SpecializedFunction + public global::CppSharp.Parser.AST.ClassTemplate TemplatedDecl { get { - global::CppSharp.Parser.AST.Function __result0; - if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction)) - __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction]; - else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction); + global::CppSharp.Parser.AST.ClassTemplate __result0; + if (((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl)) + __result0 = (global::CppSharp.Parser.AST.ClassTemplate) global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl]; + else __result0 = global::CppSharp.Parser.AST.ClassTemplate.__CreateInstance(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl); return __result0; } set { - ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } @@ -11599,12 +12008,12 @@ namespace CppSharp { get { - return ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind; + return ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind; } set { - ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; + ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; } } @@ -11618,9 +12027,9 @@ namespace CppSharp } } - public unsafe partial class VarTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class ClassTemplatePartialSpecialization : global::CppSharp.Parser.AST.ClassTemplateSpecialization, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 176)] + [StructLayout(LayoutKind.Explicit, Size = 576)] public new partial struct __Internal { [FieldOffset(0)] @@ -11669,81 +12078,142 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] public global::System.IntPtr originalPtr; - [FieldOffset(112)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(120)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(144)] + internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(128)] - internal global::Std.Vector.__Internal Parameters; + [FieldOffset(168)] + internal global::Std.Vector.__Internal Enums; - [FieldOffset(152)] - internal global::Std.Vector.__Internal Specializations; + [FieldOffset(192)] + internal global::Std.Vector.__Internal Functions; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + [FieldOffset(216)] + internal global::Std.Vector.__Internal Classes; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(240)] + internal global::Std.Vector.__Internal Templates; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + [FieldOffset(264)] + internal global::Std.Vector.__Internal Typedefs; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate18getSpecializationsEj")] - internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); + [FieldOffset(288)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(312)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(336)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(360)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(408)] + public byte isAnonymous; + + [FieldOffset(416)] + internal global::Std.Vector.__Internal Bases; + + [FieldOffset(440)] + internal global::Std.Vector.__Internal Fields; + + [FieldOffset(464)] + internal global::Std.Vector.__Internal Methods; + + [FieldOffset(488)] + internal global::Std.Vector.__Internal Specifiers; + + [FieldOffset(512)] + public byte isPOD; + + [FieldOffset(513)] + public byte isAbstract; + + [FieldOffset(514)] + public byte isUnion; + + [FieldOffset(515)] + public byte isDynamic; + + [FieldOffset(516)] + public byte isPolymorphic; + + [FieldOffset(517)] + public byte hasNonTrivialDefaultConstructor; + + [FieldOffset(518)] + public byte hasNonTrivialCopyConstructor; + + [FieldOffset(519)] + public byte hasNonTrivialDestructor; + + [FieldOffset(520)] + public byte isExternCContext; + + [FieldOffset(521)] + public byte isInjected; + + [FieldOffset(528)] + public global::System.IntPtr layout; + + [FieldOffset(536)] + public global::System.IntPtr templatedDecl; + + [FieldOffset(544)] + internal global::Std.Vector.__Internal Arguments; + + [FieldOffset(568)] + public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate18addSpecializationsERPNS1_25VarTemplateSpecializationE")] - internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate20clearSpecializationsEv")] - internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate23getSpecializationsCountEv")] - internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST34ClassTemplatePartialSpecializationD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VarTemplate(native.ToPointer(), skipVTables); + return new ClassTemplatePartialSpecialization(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) { - return new VarTemplate(native, skipVTables); + return new ClassTemplatePartialSpecialization(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VarTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); - global::CppSharp.Parser.AST.VarTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); + global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VarTemplate(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) + private ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VarTemplate(void* native, bool skipVTables = false) + protected ClassTemplatePartialSpecialization(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -11752,19 +12222,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public VarTemplate() + public ClassTemplatePartialSpecialization() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VarTemplate(global::CppSharp.Parser.AST.VarTemplate _0) + public ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -11782,44 +12252,11 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - - public global::CppSharp.Parser.AST.VarTemplateSpecialization GetSpecializations(uint i) - { - var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.VarTemplateSpecialization __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.VarTemplateSpecialization) global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.VarTemplateSpecialization.__CreateInstance(__ret); - return __result0; - } - - public void AddSpecializations(global::CppSharp.Parser.AST.VarTemplateSpecialization s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearSpecializations() - { - __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); - } - - public uint SpecializationsCount - { - get - { - var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } } public unsafe partial class VarTemplateSpecialization : global::CppSharp.Parser.AST.Variable, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 184)] + [StructLayout(LayoutKind.Explicit, Size = 208)] public new partial struct __Internal { [FieldOffset(0)] @@ -11868,24 +12305,27 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] public global::System.IntPtr originalPtr; - [FieldOffset(112)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(120)] + [FieldOffset(144)] public global::Std.BasicString.__Internal Mangled; - [FieldOffset(128)] + [FieldOffset(152)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(144)] + [FieldOffset(168)] public global::System.IntPtr templatedDecl; - [FieldOffset(152)] - internal global::Std.Vector.__Internal Arguments; - [FieldOffset(176)] + internal global::Std.Vector.__Internal Arguments; + + [FieldOffset(200)] public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] @@ -12051,7 +12491,7 @@ namespace CppSharp public unsafe partial class VarTemplatePartialSpecialization : global::CppSharp.Parser.AST.VarTemplateSpecialization, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 184)] + [StructLayout(LayoutKind.Explicit, Size = 208)] public new partial struct __Internal { [FieldOffset(0)] @@ -12100,24 +12540,27 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] public global::System.IntPtr originalPtr; - [FieldOffset(112)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(120)] + [FieldOffset(144)] public global::Std.BasicString.__Internal Mangled; - [FieldOffset(128)] + [FieldOffset(152)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(144)] + [FieldOffset(168)] public global::System.IntPtr templatedDecl; - [FieldOffset(152)] + [FieldOffset(176)] internal global::Std.Vector.__Internal Arguments; - [FieldOffset(176)] + [FieldOffset(200)] public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] @@ -12201,9 +12644,9 @@ namespace CppSharp } } - public unsafe partial class Namespace : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + public unsafe partial class VarTemplate : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 392)] + [StructLayout(LayoutKind.Explicit, Size = 200)] public new partial struct __Internal { [FieldOffset(0)] @@ -12252,88 +12695,84 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] public global::System.IntPtr originalPtr; - [FieldOffset(112)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(120)] - internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(144)] - internal global::Std.Vector.__Internal Enums; - - [FieldOffset(168)] - internal global::Std.Vector.__Internal Functions; - - [FieldOffset(192)] - internal global::Std.Vector.__Internal Classes; - - [FieldOffset(216)] - internal global::Std.Vector.__Internal Templates; - - [FieldOffset(240)] - internal global::Std.Vector.__Internal Typedefs; + public global::System.IntPtr TemplatedDecl; - [FieldOffset(264)] - internal global::Std.Vector.__Internal TypeAliases; + [FieldOffset(152)] + internal global::Std.Vector.__Internal Parameters; - [FieldOffset(288)] - internal global::Std.Vector.__Internal Variables; + [FieldOffset(176)] + internal global::Std.Vector.__Internal Specializations; - [FieldOffset(312)] - internal global::Std.Vector.__Internal Friends; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateC2Ev")] + internal static extern void ctor_0(global::System.IntPtr instance); - [FieldOffset(336)] - internal global::Std.Map.__Internal anonymous; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateC2ERKS2_")] + internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(384)] - public byte isAnonymous; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplateD2Ev")] + internal static extern void dtor_0(global::System.IntPtr instance); - [FieldOffset(385)] - public byte isInline; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate18getSpecializationsEj")] + internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate18addSpecializationsERPNS1_25VarTemplateSpecializationE")] + internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate20clearSpecializationsEv")] + internal static extern void ClearSpecializations_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST9NamespaceD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); + EntryPoint="_ZN8CppSharp9CppParser3AST11VarTemplate23getSpecializationsCountEv")] + internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Namespace __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Namespace(native.ToPointer(), skipVTables); + return new VarTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Namespace __CreateInstance(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) { - return new Namespace(native, skipVTables); + return new VarTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Namespace.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.VarTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); - global::CppSharp.Parser.AST.Namespace.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); + global::CppSharp.Parser.AST.VarTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Namespace(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + private VarTemplate(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Namespace(void* native, bool skipVTables = false) + protected VarTemplate(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -12342,19 +12781,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Namespace() + public VarTemplate() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Namespace(global::CppSharp.Parser.AST.Namespace _0) + public VarTemplate(global::CppSharp.Parser.AST.VarTemplate _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -12373,149 +12812,36 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public bool IsInline - { - get - { - return ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline = (byte) (value ? 1 : 0); - } - } - } - - public unsafe partial class PreprocessedEntity : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.MacroLocation macroLocation; - - [FieldOffset(8)] - public global::System.IntPtr originalPtr; - - [FieldOffset(16)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18PreprocessedEntityC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST18PreprocessedEntityC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new PreprocessedEntity(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) - { - return new PreprocessedEntity(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); - *(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) ret = native; - return ret.ToPointer(); - } - - private PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected PreprocessedEntity(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public PreprocessedEntity() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public global::CppSharp.Parser.AST.VarTemplateSpecialization GetSpecializations(uint i) { - global::CppSharp.Parser.AST.PreprocessedEntity __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.VarTemplateSpecialization __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.VarTemplateSpecialization) global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.VarTemplateSpecialization.__CreateInstance(__ret); + return __result0; } - public global::CppSharp.Parser.AST.MacroLocation MacroLocation + public void AddSpecializations(global::CppSharp.Parser.AST.VarTemplateSpecialization s) { - get - { - return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation; - } - - set - { - ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation = value; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); } - public global::System.IntPtr OriginalPtr + public void ClearSpecializations() { - get - { - return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr; - } - - set - { - ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; - } + __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.DeclarationKind Kind + public uint SpecializationsCount { get { - return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind = value; + var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } @@ -12873,7 +13199,7 @@ namespace CppSharp public unsafe partial class TranslationUnit : global::CppSharp.Parser.AST.Namespace, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 432)] + [StructLayout(LayoutKind.Explicit, Size = 456)] public new partial struct __Internal { [FieldOffset(0)] @@ -12922,54 +13248,57 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(104)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(128)] public global::System.IntPtr originalPtr; - [FieldOffset(112)] + [FieldOffset(136)] public global::System.IntPtr comment; - [FieldOffset(120)] + [FieldOffset(144)] internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(144)] + [FieldOffset(168)] internal global::Std.Vector.__Internal Enums; - [FieldOffset(168)] + [FieldOffset(192)] internal global::Std.Vector.__Internal Functions; - [FieldOffset(192)] + [FieldOffset(216)] internal global::Std.Vector.__Internal Classes; - [FieldOffset(216)] + [FieldOffset(240)] internal global::Std.Vector.__Internal Templates; - [FieldOffset(240)] + [FieldOffset(264)] internal global::Std.Vector.__Internal Typedefs; - [FieldOffset(264)] + [FieldOffset(288)] internal global::Std.Vector.__Internal TypeAliases; - [FieldOffset(288)] + [FieldOffset(312)] internal global::Std.Vector.__Internal Variables; - [FieldOffset(312)] + [FieldOffset(336)] internal global::Std.Vector.__Internal Friends; - [FieldOffset(336)] + [FieldOffset(360)] internal global::Std.Map.__Internal anonymous; - [FieldOffset(384)] + [FieldOffset(408)] public byte isAnonymous; - [FieldOffset(385)] + [FieldOffset(409)] public byte isInline; - [FieldOffset(392)] + [FieldOffset(416)] public global::Std.BasicString.__Internal FileName; - [FieldOffset(400)] + [FieldOffset(424)] public byte isSystemHeader; - [FieldOffset(408)] + [FieldOffset(432)] internal global::Std.Vector.__Internal Macros; [SuppressUnmanagedCodeSecurity] @@ -16093,192 +16422,6 @@ namespace CppSharp } } } - - public unsafe partial class RawComment : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 32)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.RawCommentKind kind; - - [FieldOffset(8)] - public global::Std.BasicString.__Internal Text; - - [FieldOffset(16)] - public global::Std.BasicString.__Internal BriefText; - - [FieldOffset(24)] - public global::System.IntPtr fullCommentBlock; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentC2Ev")] - internal static extern void ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentC2ERKS2_")] - internal static extern void cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawCommentD2Ev")] - internal static extern void dtor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment7getTextEv")] - internal static extern global::System.IntPtr Text_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment7setTextEPKc")] - internal static extern void SetText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment12getBriefTextEv")] - internal static extern global::System.IntPtr BriefText_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="_ZN8CppSharp9CppParser3AST10RawComment12setBriefTextEPKc")] - internal static extern void SetBriefText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new RawComment(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) - { - return new RawComment(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.RawComment.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); - global::CppSharp.Parser.AST.RawComment.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private RawComment(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected RawComment(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public RawComment() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public RawComment(global::CppSharp.Parser.AST.RawComment _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.RawComment __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment)); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.RawCommentKind Kind - { - get - { - return ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind = value; - } - } - - public global::CppSharp.Parser.AST.FullComment FullCommentBlock - { - get - { - global::CppSharp.Parser.AST.FullComment __result0; - if (((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FullComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock)) - __result0 = (global::CppSharp.Parser.AST.FullComment) global::CppSharp.Parser.AST.FullComment.NativeToManagedMap[((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock]; - else __result0 = global::CppSharp.Parser.AST.FullComment.__CreateInstance(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public string Text - { - get - { - var __ret = __Internal.Text_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetText_0((__Instance + __PointerAdjustment), value); - } - } - - public string BriefText - { - get - { - var __ret = __Internal.BriefText_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetBriefText_0((__Instance + __PointerAdjustment), value); - } - } - } } } } @@ -17172,6 +17315,53 @@ namespace CppSharp User = 4 } + public unsafe partial class Parser + { + [StructLayout(LayoutKind.Explicit, Size = 0)] + public partial struct __Internal + { + } + + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.Parser __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Parser(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.Parser __CreateInstance(global::CppSharp.Parser.Parser.__Internal native, bool skipVTables = false) + { + return new Parser(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.Parser.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.Parser.__Internal)); + *(global::CppSharp.Parser.Parser.__Internal*) ret = native; + return ret.ToPointer(); + } + + private Parser(global::CppSharp.Parser.Parser.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected Parser(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + } + public unsafe partial class CppParserOptions : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 224)] @@ -18206,6 +18396,24 @@ namespace CppSharp } } + public global::CppSharp.Parser.Parser CodeParser + { + get + { + global::CppSharp.Parser.Parser __result0; + if (((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.Parser.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser)) + __result0 = (global::CppSharp.Parser.Parser) global::CppSharp.Parser.Parser.NativeToManagedMap[((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser]; + else __result0 = global::CppSharp.Parser.Parser.__CreateInstance(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser); + return __result0; + } + + set + { + ((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + public uint DiagnosticsCount { get diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs index 3eae662e..1fe6c2d0 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs @@ -740,10 +740,13 @@ namespace Std Marshal.FreeHGlobal(__Instance); } - public string CStr() + public string CStr { - var __ret = global::Std.BasicString.__Internal.CStrc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + get + { + var __ret = global::Std.BasicString.__Internal.CStrc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } } } 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 c2e44882..7bf8b1f7 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 @@ -669,192 +669,201 @@ namespace CppSharp } } - public unsafe partial class TagType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class Declaration : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 16)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 216)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr declaration; + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(64)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(96)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(128)] + public byte isIncomplete; + + [FieldOffset(129)] + public byte isDependent; + + [FieldOffset(130)] + public byte isImplicit; + + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(144)] + public uint definitionOrder; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] + public global::System.IntPtr originalPtr; + + [FieldOffset(208)] + public global::System.IntPtr comment; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TagType@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + EntryPoint="??0Declaration@AST@CppParser@CppSharp@@QEAA@W4DeclarationKind@123@@Z")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TagType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0Declaration@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.TagType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new TagType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.TagType __CreateInstance(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) - { - return new TagType(native, skipVTables); - } - private static void* __CopyValue(global::CppSharp.Parser.AST.TagType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); - global::CppSharp.Parser.AST.TagType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??1Declaration@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); - private TagType(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getPreprocessedEntities@Declaration@AST@CppParser@CppSharp@@QEAAPEAVPreprocessedEntity@234@I@Z")] + internal static extern global::System.IntPtr GetPreprocessedEntities_0(global::System.IntPtr instance, uint i); - protected TagType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addPreprocessedEntities@Declaration@AST@CppParser@CppSharp@@QEAAXAEAPEAVPreprocessedEntity@234@@Z")] + internal static extern void AddPreprocessedEntities_0(global::System.IntPtr instance, global::System.IntPtr s); - public TagType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearPreprocessedEntities@Declaration@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearPreprocessedEntities_0(global::System.IntPtr instance); - public TagType(global::CppSharp.Parser.AST.TagType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getRedeclarations@Declaration@AST@CppParser@CppSharp@@QEAAPEAV1234@I@Z")] + internal static extern global::System.IntPtr GetRedeclarations_0(global::System.IntPtr instance, uint i); - public global::CppSharp.Parser.AST.Declaration Declaration - { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration); - return __result0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addRedeclarations@Declaration@AST@CppParser@CppSharp@@QEAAXAEAPEAV1234@@Z")] + internal static extern void AddRedeclarations_0(global::System.IntPtr instance, global::System.IntPtr s); - set - { - ((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearRedeclarations@Declaration@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearRedeclarations_0(global::System.IntPtr instance); - public unsafe partial class ArrayType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 40)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getName@Declaration@AST@CppParser@CppSharp@@QEAAPEBDXZ")] + internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); - [FieldOffset(4)] - public byte isDependent; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?setName@Declaration@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] + internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getUSR@Declaration@AST@CppParser@CppSharp@@QEAAPEBDXZ")] + internal static extern global::System.IntPtr USR_0(global::System.IntPtr instance); - [FieldOffset(24)] - public global::CppSharp.Parser.AST.ArrayType.ArraySize sizeType; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?setUSR@Declaration@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] + internal static extern void SetUSR_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - [FieldOffset(28)] - public int size; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getDebugText@Declaration@AST@CppParser@CppSharp@@QEAAPEBDXZ")] + internal static extern global::System.IntPtr DebugText_0(global::System.IntPtr instance); - [FieldOffset(32)] - public int elementSize; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?setDebugText@Declaration@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] + internal static extern void SetDebugText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0ArrayType@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + EntryPoint="?getPreprocessedEntitiesCount@Declaration@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetPreprocessedEntitiesCount_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0ArrayType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="?getRedeclarationsCount@Declaration@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetRedeclarationsCount_0(global::System.IntPtr instance); } - public enum ArraySize - { - Constant = 0, - Variable = 1, - Dependent = 2, - Incomplete = 3 - } + public global::System.IntPtr __Instance { get; protected set; } - internal static new global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ArrayType(native.ToPointer(), skipVTables); + return new Declaration(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) { - return new ArrayType(native, skipVTables); + return new Declaration(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ArrayType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Declaration.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); - global::CppSharp.Parser.AST.ArrayType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); + global::CppSharp.Parser.AST.Declaration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ArrayType(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) + private Declaration(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ArrayType(void* native, bool skipVTables = false) - : base((void*) null) + protected Declaration(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public ArrayType() - : this((void*) null) + public Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public ArrayType(global::CppSharp.Parser.AST.ArrayType _0) - : this((void*) null) + public Declaration(global::CppSharp.Parser.AST.Declaration _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -863,375 +872,322 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public void Dispose() { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + Dispose(disposing: true); } - public global::CppSharp.Parser.AST.ArrayType.ArraySize SizeType + public virtual void Dispose(bool disposing) { - get - { - return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType; - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType = value; - } + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public int Size + public global::CppSharp.Parser.AST.PreprocessedEntity GetPreprocessedEntities(uint i) { - get - { - return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size; - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size = value; - } + var __ret = __Internal.GetPreprocessedEntities_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.PreprocessedEntity __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.PreprocessedEntity) global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.PreprocessedEntity.__CreateInstance(__ret); + return __result0; } - public int ElementSize + public void AddPreprocessedEntities(global::CppSharp.Parser.AST.PreprocessedEntity s) { - get - { - return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize; - } - - set - { - ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize = value; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddPreprocessedEntities_0((__Instance + __PointerAdjustment), __arg0); } - } - public unsafe partial class FunctionType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 56)] - public new partial struct __Internal + public void ClearPreprocessedEntities() { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - - [FieldOffset(24)] - public global::CppSharp.Parser.AST.CallingConvention callingConvention; - - [FieldOffset(28)] - public global::CppSharp.Parser.AST.ExceptionSpecType exceptionSpecType; - - [FieldOffset(32)] - internal global::Std.Vector.__Internal Parameters; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0FunctionType@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0FunctionType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1FunctionType@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getParameters@FunctionType@AST@CppParser@CppSharp@@QEAAPEAVParameter@234@I@Z")] - internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addParameters@FunctionType@AST@CppParser@CppSharp@@QEAAXAEAPEAVParameter@234@@Z")] - internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearParameters@FunctionType@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearParameters_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getParametersCount@FunctionType@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetParametersCount_0(global::System.IntPtr instance); + __Internal.ClearPreprocessedEntities_0((__Instance + __PointerAdjustment)); } - internal static new global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public global::CppSharp.Parser.AST.Declaration GetRedeclarations(uint i) { - return new FunctionType(native.ToPointer(), skipVTables); + var __ret = __Internal.GetRedeclarations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Declaration __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(__ret); + return __result0; } - internal static global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) + public void AddRedeclarations(global::CppSharp.Parser.AST.Declaration s) { - return new FunctionType(native, skipVTables); + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddRedeclarations_0((__Instance + __PointerAdjustment), __arg0); } - private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionType.__Internal native) + public void ClearRedeclarations() { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); - global::CppSharp.Parser.AST.FunctionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + __Internal.ClearRedeclarations_0((__Instance + __PointerAdjustment)); } - private FunctionType(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public static implicit operator global::CppSharp.Parser.AST.Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + return new global::CppSharp.Parser.AST.Declaration(kind); } - protected FunctionType(void* native, bool skipVTables = false) - : base((void*) null) + public global::CppSharp.Parser.AST.DeclarationKind Kind { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind; + } - public FunctionType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind = value; + } } - public FunctionType(global::CppSharp.Parser.AST.FunctionType _0) - : this((void*) null) + public global::CppSharp.Parser.AST.AccessSpecifier Access { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access; + } - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Type __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access = value; + } } - public global::CppSharp.Parser.AST.Parameter GetParameters(uint i) + public global::CppSharp.Parser.AST.DeclarationContext Namespace { - var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Parameter __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Parameter.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Parameter) global::CppSharp.Parser.AST.Parameter.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Parameter.__CreateInstance(__ret); - return __result0; - } + get + { + global::CppSharp.Parser.AST.DeclarationContext __result0; + if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace)) + __result0 = (global::CppSharp.Parser.AST.DeclarationContext) global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace]; + else __result0 = global::CppSharp.Parser.AST.DeclarationContext.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace); + return __result0; + } - public void AddParameters(global::CppSharp.Parser.AST.Parameter s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public void ClearParameters() + public global::CppSharp.Parser.SourceLocation Location { - __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); + get + { + return global::CppSharp.Parser.SourceLocation.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location); + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location = value.__Instance; + } } - public global::CppSharp.Parser.AST.QualifiedType ReturnType + public int LineNumberStart { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType); + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart; } set { - ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart = value; } } - public global::CppSharp.Parser.AST.CallingConvention CallingConvention + public int LineNumberEnd { get { - return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention; + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd; } set { - ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention = value; + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd = value; } } - public global::CppSharp.Parser.AST.ExceptionSpecType ExceptionSpecType + public bool IsIncomplete { get { - return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType; + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete != 0; } set { - ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType = value; + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete = (byte) (value ? 1 : 0); } } - public uint ParametersCount + public bool IsDependent { get { - var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent = (byte) (value ? 1 : 0); } } - } - public unsafe partial class PointerType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 32)] - public new partial struct __Internal + public bool IsImplicit { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedPointee; - - [FieldOffset(24)] - public global::CppSharp.Parser.AST.PointerType.TypeModifier modifier; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0PointerType@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit != 0; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0PointerType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit = (byte) (value ? 1 : 0); + } } - public enum TypeModifier + public global::CppSharp.Parser.AST.Declaration CompleteDeclaration { - Value = 0, - Pointer = 1, - LVReference = 2, - RVReference = 3 - } + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration); + return __result0; + } - internal static new global::CppSharp.Parser.AST.PointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new PointerType(native.ToPointer(), skipVTables); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - internal static global::CppSharp.Parser.AST.PointerType __CreateInstance(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) + public uint DefinitionOrder { - return new PointerType(native, skipVTables); - } + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder; + } - private static void* __CopyValue(global::CppSharp.Parser.AST.PointerType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); - global::CppSharp.Parser.AST.PointerType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder = value; + } } - private PointerType(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public global::System.IntPtr OriginalPtr { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + get + { + return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; + } } - protected PointerType(void* native, bool skipVTables = false) - : base((void*) null) + public global::CppSharp.Parser.AST.RawComment Comment { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); + get + { + global::CppSharp.Parser.AST.RawComment __result0; + if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.RawComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment)) + __result0 = (global::CppSharp.Parser.AST.RawComment) global::CppSharp.Parser.AST.RawComment.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment]; + else __result0 = global::CppSharp.Parser.AST.RawComment.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } } - public PointerType() - : this((void*) null) + public string Name { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + get + { + var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetName_0((__Instance + __PointerAdjustment), value); + } } - public PointerType(global::CppSharp.Parser.AST.PointerType _0) - : this((void*) null) + public string USR { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + get + { + var __ret = __Internal.USR_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetUSR_0((__Instance + __PointerAdjustment), value); + } } - public global::CppSharp.Parser.AST.QualifiedType QualifiedPointee + public string DebugText { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee); + var __ret = __Internal.DebugText_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + __Internal.SetDebugText_0((__Instance + __PointerAdjustment), value); } } - public global::CppSharp.Parser.AST.PointerType.TypeModifier Modifier + public uint PreprocessedEntitiesCount { get { - return ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier; + var __ret = __Internal.GetPreprocessedEntitiesCount_0((__Instance + __PointerAdjustment)); + return __ret; } + } - set + public uint RedeclarationsCount + { + get { - ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier = value; + var __ret = __Internal.GetRedeclarationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class MemberPointerType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TagType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] + [StructLayout(LayoutKind.Explicit, Size = 16)] public new partial struct __Internal { [FieldOffset(0)] @@ -1241,44 +1197,44 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; + public global::System.IntPtr declaration; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0MemberPointerType@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0TagType@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0MemberPointerType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0TagType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TagType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new MemberPointerType(native.ToPointer(), skipVTables); + return new TagType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TagType __CreateInstance(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) { - return new MemberPointerType(native, skipVTables); + return new TagType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.MemberPointerType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TagType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); - global::CppSharp.Parser.AST.MemberPointerType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); + global::CppSharp.Parser.AST.TagType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) + private TagType(global::CppSharp.Parser.AST.TagType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected MemberPointerType(void* native, bool skipVTables = false) + protected TagType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1287,19 +1243,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public MemberPointerType() + public TagType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType _0) + public TagType(global::CppSharp.Parser.AST.TagType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TagType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1308,23 +1264,28 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Pointee + public global::CppSharp.Parser.AST.Declaration Declaration { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee); + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration); + return __result0; } set { - ((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.TagType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class TypedefType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class ArrayType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 16)] + [StructLayout(LayoutKind.Explicit, Size = 40)] public new partial struct __Internal { [FieldOffset(0)] @@ -1334,44 +1295,61 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr declaration; + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(24)] + public global::CppSharp.Parser.AST.ArrayType.ArraySize sizeType; + + [FieldOffset(28)] + public int size; + + [FieldOffset(32)] + public int elementSize; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TypedefType@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0ArrayType@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TypedefType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0ArrayType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public enum ArraySize { - return new TypedefType(native.ToPointer(), skipVTables); + Constant = 0, + Variable = 1, + Dependent = 2, + Incomplete = 3 } - internal static global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypedefType(native, skipVTables); + return new ArrayType(native.ToPointer(), skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefType.__Internal native) + internal static global::CppSharp.Parser.AST.ArrayType __CreateInstance(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); - global::CppSharp.Parser.AST.TypedefType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return new ArrayType(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.ArrayType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); + global::CppSharp.Parser.AST.ArrayType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypedefType(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) + private ArrayType(global::CppSharp.Parser.AST.ArrayType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypedefType(void* native, bool skipVTables = false) + protected ArrayType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1380,19 +1358,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TypedefType() + public ArrayType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypedefType(global::CppSharp.Parser.AST.TypedefType _0) + public ArrayType(global::CppSharp.Parser.AST.ArrayType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ArrayType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1401,190 +1379,174 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.TypedefNameDecl Declaration + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - global::CppSharp.Parser.AST.TypedefNameDecl __result0; - if (((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.TypedefNameDecl) global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap[((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.TypedefNameDecl.__CreateInstance(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - } - - public unsafe partial class AttributedType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 40)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal modified; - - [FieldOffset(24)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal equivalent; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0AttributedType@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0AttributedType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new AttributedType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) - { - return new AttributedType(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.AttributedType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); - global::CppSharp.Parser.AST.AttributedType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private AttributedType(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected AttributedType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - public AttributedType() - : this((void*) null) + public global::CppSharp.Parser.AST.ArrayType.ArraySize SizeType { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + get + { + return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType; + } - public AttributedType(global::CppSharp.Parser.AST.AttributedType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->sizeType = value; + } } - public global::CppSharp.Parser.AST.QualifiedType Modified + public int Size { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified); + return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size; } set { - ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->size = value; } } - public global::CppSharp.Parser.AST.QualifiedType Equivalent + public int ElementSize { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent); + return ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize; } set { - ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.ArrayType.__Internal*) __Instance)->elementSize = value; } } } - public unsafe partial class DecayedType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class Parameter : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 56)] + [StructLayout(LayoutKind.Explicit, Size = 248)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal decayed; + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; [FieldOffset(24)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal original; + public int lineNumberEnd; - [FieldOffset(40)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(64)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(96)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(128)] + public byte isIncomplete; + + [FieldOffset(129)] + public byte isDependent; + + [FieldOffset(130)] + public byte isImplicit; + + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(144)] + public uint definitionOrder; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] + public global::System.IntPtr originalPtr; + + [FieldOffset(208)] + public global::System.IntPtr comment; + + [FieldOffset(216)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(232)] + public byte isIndirect; + + [FieldOffset(233)] + public byte hasDefaultValue; + + [FieldOffset(236)] + public uint index; + + [FieldOffset(240)] + public global::System.IntPtr defaultArgument; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0DecayedType@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0Parameter@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0DecayedType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0Parameter@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??1Parameter@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Parameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DecayedType(native.ToPointer(), skipVTables); + return new Parameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Parameter __CreateInstance(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) { - return new DecayedType(native, skipVTables); + return new Parameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DecayedType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Parameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); - global::CppSharp.Parser.AST.DecayedType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); + global::CppSharp.Parser.AST.Parameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DecayedType(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) + private Parameter(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DecayedType(void* native, bool skipVTables = false) + protected Parameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1593,19 +1555,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public DecayedType() + public Parameter() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DecayedType(global::CppSharp.Parser.AST.DecayedType _0) + public Parameter(global::CppSharp.Parser.AST.Parameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1614,213 +1576,88 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Decayed + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType Original + public bool IsIndirect { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original); + return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect != 0; } set { - ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.QualifiedType Pointee + public bool HasDefaultValue { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee); + return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue != 0; } set { - ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue = (byte) (value ? 1 : 0); } } - } - public unsafe partial class TemplateArgument : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 40)] - public partial struct __Internal + public uint Index { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind kind; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal type; - - [FieldOffset(24)] - public global::System.IntPtr declaration; - - [FieldOffset(32)] - public int integral; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TemplateArgument@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TemplateArgument@AST@CppParser@CppSharp@@QEAA@AEBU0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - - public enum ArgumentKind - { - Type = 0, - Declaration = 1, - NullPtr = 2, - Integral = 3, - Template = 4, - TemplateExpansion = 5, - Expression = 6, - Pack = 7 - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new TemplateArgument(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) - { - return new TemplateArgument(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateArgument.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); - *(global::CppSharp.Parser.AST.TemplateArgument.__Internal*) ret = native; - return ret.ToPointer(); - } - - private TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected TemplateArgument(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public TemplateArgument() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.TemplateArgument __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind Kind - { - get - { - return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind = value; - } - } - - public global::CppSharp.Parser.AST.QualifiedType Type - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type); - } + get + { + return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index; + } set { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index = value; } } - public global::CppSharp.Parser.AST.Declaration Declaration + public global::CppSharp.Parser.AST.Expression DefaultArgument { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration); + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument); return __result0; } set { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public int Integral - { - get - { - return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral = value; + ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class TemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class FunctionType : global::CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 56)] public new partial struct __Internal @@ -1832,75 +1669,78 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - internal global::Std.Vector.__Internal Arguments; + public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(32)] - public global::System.IntPtr _template; + [FieldOffset(24)] + public global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(40)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + [FieldOffset(28)] + public global::CppSharp.Parser.AST.ExceptionSpecType exceptionSpecType; + + [FieldOffset(32)] + internal global::Std.Vector.__Internal Parameters; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TemplateSpecializationType@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0FunctionType@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TemplateSpecializationType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0FunctionType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1TemplateSpecializationType@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1FunctionType@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getArguments@TemplateSpecializationType@AST@CppParser@CppSharp@@QEAA?AUTemplateArgument@234@I@Z")] - internal static extern void GetArguments_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); + EntryPoint="?getParameters@FunctionType@AST@CppParser@CppSharp@@QEAAPEAVParameter@234@I@Z")] + internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addArguments@TemplateSpecializationType@AST@CppParser@CppSharp@@QEAAXAEAUTemplateArgument@234@@Z")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="?addParameters@FunctionType@AST@CppParser@CppSharp@@QEAAXAEAPEAVParameter@234@@Z")] + internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearArguments@TemplateSpecializationType@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="?clearParameters@FunctionType@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearParameters_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getArgumentsCount@TemplateSpecializationType@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + EntryPoint="?getParametersCount@FunctionType@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetParametersCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateSpecializationType(native.ToPointer(), skipVTables); + return new FunctionType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.FunctionType __CreateInstance(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) { - return new TemplateSpecializationType(native, skipVTables); + return new FunctionType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); - global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); + global::CppSharp.Parser.AST.FunctionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) + private FunctionType(global::CppSharp.Parser.AST.FunctionType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateSpecializationType(void* native, bool skipVTables = false) + protected FunctionType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -1909,19 +1749,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateSpecializationType() + public FunctionType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType _0) + public FunctionType(global::CppSharp.Parser.AST.FunctionType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -1940,70 +1780,82 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) + public global::CppSharp.Parser.AST.Parameter GetParameters(uint i) { - var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); - __Internal.GetArguments_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); - return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); + var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Parameter __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Parameter.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Parameter) global::CppSharp.Parser.AST.Parameter.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Parameter.__CreateInstance(__ret); + return __result0; } - public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) + public void AddParameters(global::CppSharp.Parser.AST.Parameter s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearArguments() + public void ClearParameters() { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.Template Template + public global::CppSharp.Parser.AST.QualifiedType ReturnType { get { - global::CppSharp.Parser.AST.Template __result0; - if (((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template)) - __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template]; - else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType); } set { - ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->returnType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.CallingConvention CallingConvention { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared); + return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention; } set { - ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->callingConvention = value; } } - public uint ArgumentsCount + public global::CppSharp.Parser.AST.ExceptionSpecType ExceptionSpecType { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType; } - } - } - public unsafe partial class DependentTemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable + set + { + ((global::CppSharp.Parser.AST.FunctionType.__Internal*) __Instance)->exceptionSpecType = value; + } + } + + public uint ParametersCount + { + get + { + var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + } + + public unsafe partial class PointerType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 48)] + [StructLayout(LayoutKind.Explicit, Size = 32)] public new partial struct __Internal { [FieldOffset(0)] @@ -2013,72 +1865,55 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - internal global::Std.Vector.__Internal Arguments; + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedPointee; - [FieldOffset(32)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + [FieldOffset(24)] + public global::CppSharp.Parser.AST.PointerType.TypeModifier modifier; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0PointerType@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0PointerType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getArguments@DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QEAA?AUTemplateArgument@234@I@Z")] - internal static extern void GetArguments_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addArguments@DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QEAAXAEAUTemplateArgument@234@@Z")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearArguments@DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getArgumentsCount@DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + public enum TypeModifier + { + Value = 0, + Pointer = 1, + LVReference = 2, + RVReference = 3 } - internal static new global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.PointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DependentTemplateSpecializationType(native.ToPointer(), skipVTables); + return new PointerType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.PointerType __CreateInstance(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) { - return new DependentTemplateSpecializationType(native, skipVTables); + return new PointerType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.PointerType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); - global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); + global::CppSharp.Parser.AST.PointerType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) + private PointerType(global::CppSharp.Parser.AST.PointerType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DependentTemplateSpecializationType(void* native, bool skipVTables = false) + protected PointerType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2087,19 +1922,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public DependentTemplateSpecializationType() + public PointerType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType _0) + public PointerType(global::CppSharp.Parser.AST.PointerType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2108,62 +1943,36 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Type __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) - { - var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); - __Internal.GetArguments_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); - return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); - } - - public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearArguments() - { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.QualifiedType QualifiedPointee { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee); } set { - ((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->qualifiedPointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public uint ArgumentsCount + public global::CppSharp.Parser.AST.PointerType.TypeModifier Modifier { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier; + } + + set + { + ((global::CppSharp.Parser.AST.PointerType.__Internal*) __Instance)->modifier = value; } } } - public unsafe partial class TemplateParameterType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class MemberPointerType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] + [StructLayout(LayoutKind.Explicit, Size = 24)] public new partial struct __Internal { [FieldOffset(0)] @@ -2173,58 +1982,44 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr parameter; - - [FieldOffset(16)] - public uint depth; - - [FieldOffset(20)] - public uint index; - - [FieldOffset(24)] - public byte isParameterPack; + public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TemplateParameterType@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0MemberPointerType@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TemplateParameterType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0MemberPointerType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1TemplateParameterType@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateParameterType(native.ToPointer(), skipVTables); + return new MemberPointerType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.MemberPointerType __CreateInstance(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) { - return new TemplateParameterType(native, skipVTables); + return new MemberPointerType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.MemberPointerType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); - global::CppSharp.Parser.AST.TemplateParameterType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); + global::CppSharp.Parser.AST.MemberPointerType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) + private MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateParameterType(void* native, bool skipVTables = false) + protected MemberPointerType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2233,19 +2028,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateParameterType() + public MemberPointerType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType _0) + public MemberPointerType(global::CppSharp.Parser.AST.MemberPointerType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.MemberPointerType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2254,127 +2049,123 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Type __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.TypeTemplateParameter Parameter - { - get - { - global::CppSharp.Parser.AST.TypeTemplateParameter __result0; - if (((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter)) - __result0 = (global::CppSharp.Parser.AST.TypeTemplateParameter) global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter]; - else __result0 = global::CppSharp.Parser.AST.TypeTemplateParameter.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public uint Depth - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth = value; - } - } - - public uint Index - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index = value; - } - } - - public bool IsParameterPack + public global::CppSharp.Parser.AST.QualifiedType Pointee { get { - return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack != 0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee); } set { - ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.MemberPointerType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TypedefNameDecl : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] + [StructLayout(LayoutKind.Explicit, Size = 232)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal replacement; + public global::System.IntPtr _namespace; - [FieldOffset(24)] - public global::System.IntPtr replacedParameter; + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(64)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(96)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(128)] + public byte isIncomplete; + + [FieldOffset(129)] + public byte isDependent; + + [FieldOffset(130)] + public byte isImplicit; + + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(144)] + public uint definitionOrder; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] + public global::System.IntPtr originalPtr; + + [FieldOffset(208)] + public global::System.IntPtr comment; + + [FieldOffset(216)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TemplateParameterSubstitutionType@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + EntryPoint="??0TypedefNameDecl@AST@CppParser@CppSharp@@QEAA@W4DeclarationKind@123@@Z")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TemplateParameterSubstitutionType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0TypedefNameDecl@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??1TypedefNameDecl@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateParameterSubstitutionType(native.ToPointer(), skipVTables); + return new TypedefNameDecl(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) { - return new TemplateParameterSubstitutionType(native, skipVTables); + return new TypedefNameDecl(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); - global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); + global::CppSharp.Parser.AST.TypedefNameDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) + private TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateParameterSubstitutionType(void* native, bool skipVTables = false) + protected TypedefNameDecl(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2383,19 +2174,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateParameterSubstitutionType() + public TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0) + public TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2404,41 +2195,38 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Replacement + public override void Dispose(bool disposing) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement); - } + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - set - { - ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + public static implicit operator global::CppSharp.Parser.AST.TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) + { + return new global::CppSharp.Parser.AST.TypedefNameDecl(kind); } - public global::CppSharp.Parser.AST.TemplateParameterType ReplacedParameter + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - global::CppSharp.Parser.AST.TemplateParameterType __result0; - if (((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter)) - __result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter]; - else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TypedefType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] + [StructLayout(LayoutKind.Explicit, Size = 16)] public new partial struct __Internal { [FieldOffset(0)] @@ -2448,47 +2236,44 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal injectedSpecializationType; - - [FieldOffset(24)] - public global::System.IntPtr _class; + public global::System.IntPtr declaration; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0InjectedClassNameType@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0TypedefType@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0InjectedClassNameType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0TypedefType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new InjectedClassNameType(native.ToPointer(), skipVTables); + return new TypedefType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypedefType __CreateInstance(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) { - return new InjectedClassNameType(native, skipVTables); + return new TypedefType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); - global::CppSharp.Parser.AST.InjectedClassNameType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); + global::CppSharp.Parser.AST.TypedefType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + private TypedefType(global::CppSharp.Parser.AST.TypedefType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected InjectedClassNameType(void* native, bool skipVTables = false) + protected TypedefType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2497,19 +2282,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public InjectedClassNameType() + public TypedefType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType _0) + public TypedefType(global::CppSharp.Parser.AST.TypedefType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2518,41 +2303,28 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType InjectedSpecializationType - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType); - } - - set - { - ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.Class Class + public global::CppSharp.Parser.AST.TypedefNameDecl Declaration { get { - global::CppSharp.Parser.AST.Class __result0; - if (((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class); + global::CppSharp.Parser.AST.TypedefNameDecl __result0; + if (((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.TypedefNameDecl) global::CppSharp.Parser.AST.TypedefNameDecl.NativeToManagedMap[((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.TypedefNameDecl.__CreateInstance(((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration); return __result0; } set { - ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TypedefType.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class DependentNameType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class AttributedType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] + [StructLayout(LayoutKind.Explicit, Size = 40)] public new partial struct __Internal { [FieldOffset(0)] @@ -2562,44 +2334,47 @@ namespace CppSharp public byte isDependent; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; + public global::CppSharp.Parser.AST.QualifiedType.__Internal modified; + + [FieldOffset(24)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal equivalent; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0DependentNameType@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0AttributedType@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0DependentNameType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0AttributedType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DependentNameType(native.ToPointer(), skipVTables); + return new AttributedType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.AttributedType __CreateInstance(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) { - return new DependentNameType(native, skipVTables); + return new AttributedType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DependentNameType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.AttributedType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); - global::CppSharp.Parser.AST.DependentNameType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); + global::CppSharp.Parser.AST.AttributedType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DependentNameType(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + private AttributedType(global::CppSharp.Parser.AST.AttributedType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DependentNameType(void* native, bool skipVTables = false) + protected AttributedType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2608,19 +2383,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public DependentNameType() + public AttributedType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DependentNameType(global::CppSharp.Parser.AST.DependentNameType _0) + public AttributedType(global::CppSharp.Parser.AST.AttributedType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AttributedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2629,23 +2404,36 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.QualifiedType Modified { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified); } set { - ((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->modified = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public global::CppSharp.Parser.AST.QualifiedType Equivalent + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent); + } + + set + { + ((global::CppSharp.Parser.AST.AttributedType.__Internal*) __Instance)->equivalent = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class PackExpansionType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class DecayedType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 8)] + [StructLayout(LayoutKind.Explicit, Size = 56)] public new partial struct __Internal { [FieldOffset(0)] @@ -2654,42 +2442,51 @@ namespace CppSharp [FieldOffset(4)] public byte isDependent; + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal decayed; + + [FieldOffset(24)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal original; + + [FieldOffset(40)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal pointee; + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0PackExpansionType@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0DecayedType@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0PackExpansionType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0DecayedType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new PackExpansionType(native.ToPointer(), skipVTables); + return new DecayedType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DecayedType __CreateInstance(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) { - return new PackExpansionType(native, skipVTables); + return new DecayedType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.PackExpansionType.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DecayedType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); - global::CppSharp.Parser.AST.PackExpansionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); + global::CppSharp.Parser.AST.DecayedType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) + private DecayedType(global::CppSharp.Parser.AST.DecayedType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected PackExpansionType(void* native, bool skipVTables = false) + protected DecayedType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -2698,19 +2495,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public PackExpansionType() + public DecayedType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType _0) + public DecayedType(global::CppSharp.Parser.AST.DecayedType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DecayedType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -2718,551 +2515,551 @@ namespace CppSharp var __arg0 = _0.__Instance; __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - } - - public unsafe partial class UnaryTransformType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 40)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; - - [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; - - [FieldOffset(24)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal baseType; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0UnaryTransformType@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0UnaryTransformType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new UnaryTransformType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) - { - return new UnaryTransformType(native, skipVTables); - } - private static void* __CopyValue(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); - global::CppSharp.Parser.AST.UnaryTransformType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected UnaryTransformType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public UnaryTransformType() - : this((void*) null) + public global::CppSharp.Parser.AST.QualifiedType Decayed { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed); + } - public UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->decayed = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } - public global::CppSharp.Parser.AST.QualifiedType Desugared + public global::CppSharp.Parser.AST.QualifiedType Original { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original); } set { - ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->original = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.QualifiedType BaseType + public global::CppSharp.Parser.AST.QualifiedType Pointee { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee); } set { - ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.DecayedType.__Internal*) __Instance)->pointee = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class VectorType : global::CppSharp.Parser.AST.Type, IDisposable + public unsafe partial class TemplateArgument : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 32)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 40)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; + public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind kind; [FieldOffset(8)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal elementType; + public global::CppSharp.Parser.AST.QualifiedType.__Internal type; [FieldOffset(24)] - public uint numElements; + public global::System.IntPtr declaration; + + [FieldOffset(32)] + public int integral; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0VectorType@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0TemplateArgument@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0VectorType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0TemplateArgument@AST@CppParser@CppSharp@@QEAA@AEBU0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.VectorType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public enum ArgumentKind { - return new VectorType(native.ToPointer(), skipVTables); + Type = 0, + Declaration = 1, + NullPtr = 2, + Integral = 3, + Template = 4, + TemplateExpansion = 5, + Expression = 6, + Pack = 7 } - internal static global::CppSharp.Parser.AST.VectorType __CreateInstance(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VectorType(native, skipVTables); + return new TemplateArgument(native.ToPointer(), skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VectorType.__Internal native) + internal static global::CppSharp.Parser.AST.TemplateArgument __CreateInstance(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); - global::CppSharp.Parser.AST.VectorType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return new TemplateArgument(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateArgument.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); + *(global::CppSharp.Parser.AST.TemplateArgument.__Internal*) ret = native; return ret.ToPointer(); } - private VectorType(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + private TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VectorType(void* native, bool skipVTables = false) - : base((void*) null) + protected TemplateArgument(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VectorType() - : this((void*) null) + public TemplateArgument() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VectorType(global::CppSharp.Parser.AST.VectorType _0) - : this((void*) null) + public TemplateArgument(global::CppSharp.Parser.AST.TemplateArgument _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateArgument.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) _0.__Instance); } - public global::CppSharp.Parser.AST.QualifiedType ElementType + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.TemplateArgument __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.TemplateArgument.ArgumentKind Kind { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType); + return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind; } set { - ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->kind = value; } } - public uint NumElements + public global::CppSharp.Parser.AST.QualifiedType Type { get { - return ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type); } set { - ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements = value; + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - } - public unsafe partial class BuiltinType : global::CppSharp.Parser.AST.Type, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 12)] - public new partial struct __Internal + public global::CppSharp.Parser.AST.Declaration Declaration { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.TypeKind kind; - - [FieldOffset(4)] - public byte isDependent; + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration); + return __result0; + } - [FieldOffset(8)] - public global::CppSharp.Parser.AST.PrimitiveType type; + set + { + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0BuiltinType@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0BuiltinType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - - internal static new global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new BuiltinType(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) - { - return new BuiltinType(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.BuiltinType.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); - global::CppSharp.Parser.AST.BuiltinType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private BuiltinType(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected BuiltinType(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public BuiltinType() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public BuiltinType(global::CppSharp.Parser.AST.BuiltinType _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public global::CppSharp.Parser.AST.PrimitiveType Type + public int Integral { get { - return ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type; + return ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral; } set { - ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type = value; + ((global::CppSharp.Parser.AST.TemplateArgument.__Internal*) __Instance)->integral = value; } } } - public unsafe partial class VTableComponent : IDisposable + public unsafe partial class Template : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 16)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 248)] + public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.VTableComponentKind kind; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public uint offset; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr declaration; + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(64)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(96)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(128)] + public byte isIncomplete; + + [FieldOffset(129)] + public byte isDependent; + + [FieldOffset(130)] + public byte isImplicit; + + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(144)] + public uint definitionOrder; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] + public global::System.IntPtr originalPtr; + + [FieldOffset(208)] + public global::System.IntPtr comment; + + [FieldOffset(216)] + public global::System.IntPtr TemplatedDecl; + + [FieldOffset(224)] + internal global::Std.Vector.__Internal Parameters; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0VTableComponent@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + EntryPoint="??0Template@AST@CppParser@CppSharp@@QEAA@W4DeclarationKind@123@@Z")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0VTableComponent@AST@CppParser@CppSharp@@QEAA@AEBU0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } + EntryPoint="??0Template@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_1(global::System.IntPtr instance); - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0Template@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??1Template@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getParameters@Template@AST@CppParser@CppSharp@@QEAAPEAVDeclaration@234@I@Z")] + internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); - internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addParameters@Template@AST@CppParser@CppSharp@@QEAAXAEAPEAVDeclaration@234@@Z")] + internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearParameters@Template@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearParameters_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getParametersCount@Template@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetParametersCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.Template __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VTableComponent(native.ToPointer(), skipVTables); + return new Template(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Template __CreateInstance(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) { - return new VTableComponent(native, skipVTables); + return new Template(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VTableComponent.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Template.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); - *(global::CppSharp.Parser.AST.VTableComponent.__Internal*) ret = native; + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); + global::CppSharp.Parser.AST.Template.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VTableComponent(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + private Template(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VTableComponent(void* native, bool skipVTables = false) + protected Template(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VTableComponent() + public Template(global::CppSharp.Parser.AST.DeclarationKind kind) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public VTableComponent(global::CppSharp.Parser.AST.VTableComponent _0) + public Template() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) _0.__Instance); + __Internal.ctor_1((__Instance + __PointerAdjustment)); } - public void Dispose() + public Template(global::CppSharp.Parser.AST.Template _0) + : this((void*) null) { - Dispose(disposing: true); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); } - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.VTableComponent __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.VTableComponentKind Kind + public global::CppSharp.Parser.AST.Declaration GetParameters(uint i) { - get - { - return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind; - } + var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Declaration __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(__ret); + return __result0; + } - set - { - ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind = value; - } + public void AddParameters(global::CppSharp.Parser.AST.Declaration s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); } - public uint Offset + public void ClearParameters() { - get - { - return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset; - } + __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); + } - set - { - ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset = value; - } + public static implicit operator global::CppSharp.Parser.AST.Template(global::CppSharp.Parser.AST.DeclarationKind kind) + { + return new global::CppSharp.Parser.AST.Template(kind); } - public global::CppSharp.Parser.AST.Declaration Declaration + public global::CppSharp.Parser.AST.Declaration TemplatedDecl { get { global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration); + if (((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl); return __result0; } set { - ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public uint ParametersCount + { + get + { + var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class VTableLayout : IDisposable + public unsafe partial class TemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 56)] + public new partial struct __Internal { [FieldOffset(0)] - internal global::Std.Vector.__Internal Components; + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + internal global::Std.Vector.__Internal Arguments; + + [FieldOffset(32)] + public global::System.IntPtr _template; + + [FieldOffset(40)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0VTableLayout@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0TemplateSpecializationType@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0VTableLayout@AST@CppParser@CppSharp@@QEAA@AEBU0123@@Z")] + EntryPoint="??0TemplateSpecializationType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1VTableLayout@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1TemplateSpecializationType@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getComponents@VTableLayout@AST@CppParser@CppSharp@@QEAA?AUVTableComponent@234@I@Z")] - internal static extern void GetComponents_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); + EntryPoint="?getArguments@TemplateSpecializationType@AST@CppParser@CppSharp@@QEAA?AUTemplateArgument@234@I@Z")] + internal static extern void GetArguments_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addComponents@VTableLayout@AST@CppParser@CppSharp@@QEAAXAEAUVTableComponent@234@@Z")] - internal static extern void AddComponents_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="?addArguments@TemplateSpecializationType@AST@CppParser@CppSharp@@QEAAXAEAUTemplateArgument@234@@Z")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearComponents@VTableLayout@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearComponents_0(global::System.IntPtr instance); + EntryPoint="?clearArguments@TemplateSpecializationType@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getComponentsCount@VTableLayout@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetComponentsCount_0(global::System.IntPtr instance); + EntryPoint="?getArgumentsCount@TemplateSpecializationType@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VTableLayout(native.ToPointer(), skipVTables); + return new TemplateSpecializationType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) { - return new VTableLayout(native, skipVTables); + return new TemplateSpecializationType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VTableLayout.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); - global::CppSharp.Parser.AST.VTableLayout.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); + global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VTableLayout(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) + private TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VTableLayout(void* native, bool skipVTables = false) + protected TemplateSpecializationType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VTableLayout() + public TemplateSpecializationType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VTableLayout(global::CppSharp.Parser.AST.VTableLayout _0) + public TemplateSpecializationType(global::CppSharp.Parser.AST.TemplateSpecializationType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -3271,14 +3068,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.VTableLayout __dummy; + global::CppSharp.Parser.AST.Type __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -3286,119 +3078,166 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.VTableComponent GetComponents(uint i) + public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) { - var __ret = new global::CppSharp.Parser.AST.VTableComponent.__Internal(); - __Internal.GetComponents_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); - return global::CppSharp.Parser.AST.VTableComponent.__CreateInstance(__ret); + var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); + __Internal.GetArguments_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); + return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); } - public void AddComponents(global::CppSharp.Parser.AST.VTableComponent s) + public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddComponents_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearComponents() + public void ClearArguments() { - __Internal.ClearComponents_0((__Instance + __PointerAdjustment)); + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint ComponentsCount + public global::CppSharp.Parser.AST.Template Template { get { - var __ret = __Internal.GetComponentsCount_0((__Instance + __PointerAdjustment)); + global::CppSharp.Parser.AST.Template __result0; + if (((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template)) + __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template]; + else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public global::CppSharp.Parser.AST.QualifiedType Desugared + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared); + } + + set + { + ((global::CppSharp.Parser.AST.TemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + + public uint ArgumentsCount + { + get + { + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class VFTableInfo : IDisposable + public unsafe partial class DependentTemplateSpecializationType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 40)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 48)] + public new partial struct __Internal { [FieldOffset(0)] - public ulong VBTableIndex; + public global::CppSharp.Parser.AST.TypeKind kind; - [FieldOffset(8)] - public uint VFPtrOffset; + [FieldOffset(4)] + public byte isDependent; - [FieldOffset(12)] - public uint VFPtrFullOffset; + [FieldOffset(8)] + internal global::Std.Vector.__Internal Arguments; - [FieldOffset(16)] - public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; + [FieldOffset(32)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0VFTableInfo@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0VFTableInfo@AST@CppParser@CppSharp@@QEAA@AEBU0123@@Z")] + EntryPoint="??0DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1VFTableInfo@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); - } - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getArguments@DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QEAA?AUTemplateArgument@234@I@Z")] + internal static extern void GetArguments_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addArguments@DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QEAAXAEAUTemplateArgument@234@@Z")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearArguments@DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); - internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getArgumentsCount@DependentTemplateSpecializationType@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VFTableInfo(native.ToPointer(), skipVTables); + return new DependentTemplateSpecializationType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DependentTemplateSpecializationType __CreateInstance(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) { - return new VFTableInfo(native, skipVTables); + return new DependentTemplateSpecializationType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VFTableInfo.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); - global::CppSharp.Parser.AST.VFTableInfo.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); + global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) + private DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VFTableInfo(void* native, bool skipVTables = false) + protected DependentTemplateSpecializationType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public VFTableInfo() + public DependentTemplateSpecializationType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo _0) + public DependentTemplateSpecializationType(global::CppSharp.Parser.AST.DependentTemplateSpecializationType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -3407,14 +3246,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.VFTableInfo __dummy; + global::CppSharp.Parser.AST.Type __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -3422,168 +3256,193 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public ulong VBTableIndex + public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) { - get - { - return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex; - } - - set - { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex = value; - } + var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); + __Internal.GetArguments_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); + return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); } - public uint VFPtrOffset + public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) { - get - { - return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + } - set - { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset = value; - } + public void ClearArguments() + { + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint VFPtrFullOffset + public global::CppSharp.Parser.AST.QualifiedType Desugared { get { - return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared); } set { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset = value; + ((global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public global::CppSharp.Parser.AST.VTableLayout Layout + public uint ArgumentsCount { get { - return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout); - } - - set - { - ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class LayoutField : IDisposable + public unsafe partial class TypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 64)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 248)] + public new partial struct __Internal { [FieldOffset(0)] - public uint offset; + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] public global::Std.BasicString.__Internal Name; - [FieldOffset(40)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(64)] + public global::Std.BasicString.__Internal USR; - [FieldOffset(56)] - public global::System.IntPtr fieldPtr; + [FieldOffset(96)] + public global::Std.BasicString.__Internal DebugText; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0LayoutField@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + [FieldOffset(128)] + public byte isIncomplete; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0LayoutField@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr other); + [FieldOffset(129)] + public byte isDependent; + + [FieldOffset(130)] + public byte isImplicit; + + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(144)] + public uint definitionOrder; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] + public global::System.IntPtr originalPtr; + + [FieldOffset(208)] + public global::System.IntPtr comment; + + [FieldOffset(216)] + public uint depth; + + [FieldOffset(220)] + public uint index; + + [FieldOffset(224)] + public byte isParameterPack; + + [FieldOffset(232)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal defaultArgument; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1LayoutField@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + EntryPoint="??0TypeTemplateParameter@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getName@LayoutField@AST@CppParser@CppSharp@@QEAAPEBDXZ")] - internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); + EntryPoint="??0TypeTemplateParameter@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?setName@LayoutField@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] - internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="??1TypeTemplateParameter@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new LayoutField(native.ToPointer(), skipVTables); + return new TypeTemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) { - return new LayoutField(native, skipVTables); + return new TypeTemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutField.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); - global::CppSharp.Parser.AST.LayoutField.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); + global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private LayoutField(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) + private TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected LayoutField(void* native, bool skipVTables = false) + protected TypeTemplateParameter(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public LayoutField() + public TypeTemplateParameter() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public LayoutField(global::CppSharp.Parser.AST.LayoutField other) + public TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(other, null)) - throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = other.__Instance; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.LayoutField __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -3591,153 +3450,116 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public uint Offset - { - get - { - return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset; - } - - set - { - ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset = value; - } - } - - public global::CppSharp.Parser.AST.QualifiedType QualifiedType - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::System.IntPtr FieldPtr - { - get - { - return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr; - } - - set - { - ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr = (global::System.IntPtr) value; - } - } - - public string Name + public global::CppSharp.Parser.AST.QualifiedType DefaultArgument { get { - var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument); } set { - __Internal.SetName_0((__Instance + __PointerAdjustment), value); + ((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } } - public unsafe partial class LayoutBase : IDisposable + public unsafe partial class TemplateParameterType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 16)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 32)] + public new partial struct __Internal { [FieldOffset(0)] - public uint offset; + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr _class; + public global::System.IntPtr parameter; + + [FieldOffset(16)] + public uint depth; + + [FieldOffset(20)] + public uint index; + + [FieldOffset(24)] + public byte isParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0LayoutBase@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0TemplateParameterType@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0LayoutBase@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr other); + EntryPoint="??0TemplateParameterType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1LayoutBase@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1TemplateParameterType@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new LayoutBase(native.ToPointer(), skipVTables); + return new TemplateParameterType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateParameterType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) { - return new LayoutBase(native, skipVTables); + return new TemplateParameterType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutBase.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); - global::CppSharp.Parser.AST.LayoutBase.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); + global::CppSharp.Parser.AST.TemplateParameterType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private LayoutBase(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) + private TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected LayoutBase(void* native, bool skipVTables = false) + protected TemplateParameterType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public LayoutBase() + public TemplateParameterType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public LayoutBase(global::CppSharp.Parser.AST.LayoutBase other) + public TemplateParameterType(global::CppSharp.Parser.AST.TemplateParameterType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(other, null)) - throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = other.__Instance; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.LayoutBase __dummy; + global::CppSharp.Parser.AST.Type __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -3745,199 +3567,138 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public uint Offset + public global::CppSharp.Parser.AST.TypeTemplateParameter Parameter { get { - return ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset; + global::CppSharp.Parser.AST.TypeTemplateParameter __result0; + if (((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter)) + __result0 = (global::CppSharp.Parser.AST.TypeTemplateParameter) global::CppSharp.Parser.AST.TypeTemplateParameter.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter]; + else __result0 = global::CppSharp.Parser.AST.TypeTemplateParameter.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter); + return __result0; } set { - ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset = value; + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->parameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public global::CppSharp.Parser.AST.Class Class + public uint Depth { get { - global::CppSharp.Parser.AST.Class __result0; - if (((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class); - return __result0; + return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth; } set { - ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->depth = value; } } - } - public unsafe partial class ClassLayout : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 128)] - public partial struct __Internal + public uint Index { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.CppAbi ABI; - - [FieldOffset(8)] - internal global::Std.Vector.__Internal VFTables; - - [FieldOffset(32)] - public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; + get + { + return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index; + } - [FieldOffset(56)] - public byte hasOwnVFPtr; + set + { + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->index = value; + } + } - [FieldOffset(60)] - public int VBPtrOffset; + public bool IsParameterPack + { + get + { + return ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack != 0; + } - [FieldOffset(64)] - public int alignment; + set + { + ((global::CppSharp.Parser.AST.TemplateParameterType.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); + } + } + } - [FieldOffset(68)] - public int size; + public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 32)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; - [FieldOffset(72)] - public int dataSize; + [FieldOffset(4)] + public byte isDependent; - [FieldOffset(80)] - internal global::Std.Vector.__Internal Fields; + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal replacement; - [FieldOffset(104)] - internal global::Std.Vector.__Internal Bases; + [FieldOffset(24)] + public global::System.IntPtr replacedParameter; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0ClassLayout@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0TemplateParameterSubstitutionType@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0ClassLayout@AST@CppParser@CppSharp@@QEAA@AEBU0123@@Z")] + EntryPoint="??0TemplateParameterSubstitutionType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1ClassLayout@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getVFTables@ClassLayout@AST@CppParser@CppSharp@@QEAA?AUVFTableInfo@234@I@Z")] - internal static extern void GetVFTables_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addVFTables@ClassLayout@AST@CppParser@CppSharp@@QEAAXAEAUVFTableInfo@234@@Z")] - internal static extern void AddVFTables_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearVFTables@ClassLayout@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearVFTables_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getFields@ClassLayout@AST@CppParser@CppSharp@@QEAA?AVLayoutField@234@I@Z")] - internal static extern void GetFields_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addFields@ClassLayout@AST@CppParser@CppSharp@@QEAAXAEAVLayoutField@234@@Z")] - internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearFields@ClassLayout@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearFields_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getBases@ClassLayout@AST@CppParser@CppSharp@@QEAA?AVLayoutBase@234@I@Z")] - internal static extern void GetBases_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addBases@ClassLayout@AST@CppParser@CppSharp@@QEAAXAEAVLayoutBase@234@@Z")] - internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearBases@ClassLayout@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearBases_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getVFTablesCount@ClassLayout@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetVFTablesCount_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getFieldsCount@ClassLayout@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getBasesCount@ClassLayout@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetBasesCount_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassLayout(native.ToPointer(), skipVTables); + return new TemplateParameterSubstitutionType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateParameterSubstitutionType __CreateInstance(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) { - return new ClassLayout(native, skipVTables); + return new TemplateParameterSubstitutionType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassLayout.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); - global::CppSharp.Parser.AST.ClassLayout.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); + global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassLayout(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) + private TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassLayout(void* native, bool skipVTables = false) + protected TemplateParameterSubstitutionType(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public ClassLayout() + public TemplateParameterSubstitutionType() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public ClassLayout(global::CppSharp.Parser.AST.ClassLayout _0) + public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -3946,204 +3707,42 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.ClassLayout __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.VFTableInfo GetVFTables(uint i) - { - var __ret = new global::CppSharp.Parser.AST.VFTableInfo.__Internal(); - __Internal.GetVFTables_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); - return global::CppSharp.Parser.AST.VFTableInfo.__CreateInstance(__ret); - } - - public void AddVFTables(global::CppSharp.Parser.AST.VFTableInfo s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddVFTables_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearVFTables() - { - __Internal.ClearVFTables_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.LayoutField GetFields(uint i) - { - var __ret = new global::CppSharp.Parser.AST.LayoutField.__Internal(); - __Internal.GetFields_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); - return global::CppSharp.Parser.AST.LayoutField.__CreateInstance(__ret); - } - - public void AddFields(global::CppSharp.Parser.AST.LayoutField s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearFields() - { - __Internal.ClearFields_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.LayoutBase GetBases(uint i) - { - var __ret = new global::CppSharp.Parser.AST.LayoutBase.__Internal(); - __Internal.GetBases_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); - return global::CppSharp.Parser.AST.LayoutBase.__CreateInstance(__ret); - } - - public void AddBases(global::CppSharp.Parser.AST.LayoutBase s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearBases() - { - __Internal.ClearBases_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.CppAbi ABI - { - get - { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI; - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI = value; - } - } - - public global::CppSharp.Parser.AST.VTableLayout Layout - { - get - { - return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout); - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; - } - } - - public bool HasOwnVFPtr - { - get - { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr != 0; - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr = (byte) (value ? 1 : 0); - } - } - - public int VBPtrOffset - { - get - { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset; - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset = value; - } - } - - public int Alignment - { - get - { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment; - } - - set - { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment = value; - } - } - - public int Size + public global::CppSharp.Parser.AST.QualifiedType Replacement { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement); } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size = value; + ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public int DataSize + public global::CppSharp.Parser.AST.TemplateParameterType ReplacedParameter { get { - return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize; + global::CppSharp.Parser.AST.TemplateParameterType __result0; + if (((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter)) + __result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter]; + else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter); + return __result0; } set { - ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize = value; - } - } - - public uint VFTablesCount - { - get - { - var __ret = __Internal.GetVFTablesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint FieldsCount - { - get - { - var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint BasesCount - { - get - { - var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal*) __Instance)->replacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class Declaration : IDisposable + public unsafe partial class Class : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 192)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 576)] + public new partial struct __Internal { [FieldOffset(0)] public global::CppSharp.Parser.AST.DeclarationKind kind; @@ -4191,127 +3790,234 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Declaration@AST@CppParser@CppSharp@@QEAA@W4DeclarationKind@123@@Z")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + [FieldOffset(216)] + internal global::Std.Vector.__Internal Namespaces; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Declaration@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(240)] + internal global::Std.Vector.__Internal Enums; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1Declaration@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + [FieldOffset(264)] + internal global::Std.Vector.__Internal Functions; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getPreprocessedEntities@Declaration@AST@CppParser@CppSharp@@QEAAPEAVPreprocessedEntity@234@I@Z")] - internal static extern global::System.IntPtr GetPreprocessedEntities_0(global::System.IntPtr instance, uint i); + [FieldOffset(288)] + internal global::Std.Vector.__Internal Classes; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addPreprocessedEntities@Declaration@AST@CppParser@CppSharp@@QEAAXAEAPEAVPreprocessedEntity@234@@Z")] - internal static extern void AddPreprocessedEntities_0(global::System.IntPtr instance, global::System.IntPtr s); + [FieldOffset(312)] + internal global::Std.Vector.__Internal Templates; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearPreprocessedEntities@Declaration@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearPreprocessedEntities_0(global::System.IntPtr instance); + [FieldOffset(336)] + internal global::Std.Vector.__Internal Typedefs; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getName@Declaration@AST@CppParser@CppSharp@@QEAAPEBDXZ")] - internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); + [FieldOffset(360)] + internal global::Std.Vector.__Internal TypeAliases; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?setName@Declaration@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] - internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + [FieldOffset(384)] + internal global::Std.Vector.__Internal Variables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getUSR@Declaration@AST@CppParser@CppSharp@@QEAAPEBDXZ")] - internal static extern global::System.IntPtr USR_0(global::System.IntPtr instance); + [FieldOffset(408)] + internal global::Std.Vector.__Internal Friends; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?setUSR@Declaration@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] - internal static extern void SetUSR_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + [FieldOffset(432)] + internal global::Std.Map.__Internal anonymous; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getDebugText@Declaration@AST@CppParser@CppSharp@@QEAAPEBDXZ")] - internal static extern global::System.IntPtr DebugText_0(global::System.IntPtr instance); + [FieldOffset(448)] + public byte isAnonymous; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?setDebugText@Declaration@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] - internal static extern void SetDebugText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + [FieldOffset(456)] + internal global::Std.Vector.__Internal Bases; + + [FieldOffset(480)] + internal global::Std.Vector.__Internal Fields; + + [FieldOffset(504)] + internal global::Std.Vector.__Internal Methods; + + [FieldOffset(528)] + internal global::Std.Vector.__Internal Specifiers; + + [FieldOffset(552)] + public byte isPOD; + + [FieldOffset(553)] + public byte isAbstract; + + [FieldOffset(554)] + public byte isUnion; + + [FieldOffset(555)] + public byte isDynamic; + + [FieldOffset(556)] + public byte isPolymorphic; + + [FieldOffset(557)] + public byte hasNonTrivialDefaultConstructor; + + [FieldOffset(558)] + public byte hasNonTrivialCopyConstructor; + + [FieldOffset(559)] + public byte hasNonTrivialDestructor; + + [FieldOffset(560)] + public byte isExternCContext; + + [FieldOffset(561)] + public byte isInjected; + + [FieldOffset(568)] + public global::System.IntPtr layout; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getPreprocessedEntitiesCount@Declaration@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetPreprocessedEntitiesCount_0(global::System.IntPtr instance); - } + EntryPoint="??0Class@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0Class@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??1Class@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getBases@Class@AST@CppParser@CppSharp@@QEAAPEAUBaseClassSpecifier@234@I@Z")] + internal static extern global::System.IntPtr GetBases_0(global::System.IntPtr instance, uint i); - internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addBases@Class@AST@CppParser@CppSharp@@QEAAXAEAPEAUBaseClassSpecifier@234@@Z")] + internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearBases@Class@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearBases_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getFields@Class@AST@CppParser@CppSharp@@QEAAPEAVField@234@I@Z")] + internal static extern global::System.IntPtr GetFields_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addFields@Class@AST@CppParser@CppSharp@@QEAAXAEAPEAVField@234@@Z")] + internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearFields@Class@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearFields_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getMethods@Class@AST@CppParser@CppSharp@@QEAAPEAVMethod@234@I@Z")] + internal static extern global::System.IntPtr GetMethods_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addMethods@Class@AST@CppParser@CppSharp@@QEAAXAEAPEAVMethod@234@@Z")] + internal static extern void AddMethods_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearMethods@Class@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearMethods_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getSpecifiers@Class@AST@CppParser@CppSharp@@QEAAPEAVAccessSpecifierDecl@234@I@Z")] + internal static extern global::System.IntPtr GetSpecifiers_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addSpecifiers@Class@AST@CppParser@CppSharp@@QEAAXAEAPEAVAccessSpecifierDecl@234@@Z")] + internal static extern void AddSpecifiers_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearSpecifiers@Class@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearSpecifiers_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getBasesCount@Class@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetBasesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getFieldsCount@Class@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getMethodsCount@Class@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetMethodsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getSpecifiersCount@Class@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetSpecifiersCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.Class __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Declaration(native.ToPointer(), skipVTables); + return new Class(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Declaration __CreateInstance(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Class __CreateInstance(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) { - return new Declaration(native, skipVTables); + return new Class(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Declaration.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Class.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); - global::CppSharp.Parser.AST.Declaration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); + global::CppSharp.Parser.AST.Class.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Declaration(global::CppSharp.Parser.AST.Declaration.__Internal native, bool skipVTables = false) + private Class(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Declaration(void* native, bool skipVTables = false) + protected Class(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) + public Class() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Declaration(global::CppSharp.Parser.AST.Declaration _0) + public Class(global::CppSharp.Parser.AST.Class _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Declaration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -4320,12 +4026,7 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); @@ -4335,581 +4036,624 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.PreprocessedEntity GetPreprocessedEntities(uint i) + public global::CppSharp.Parser.AST.BaseClassSpecifier GetBases(uint i) { - var __ret = __Internal.GetPreprocessedEntities_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.PreprocessedEntity __result0; + var __ret = __Internal.GetBases_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.BaseClassSpecifier __result0; if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.PreprocessedEntity) global::CppSharp.Parser.AST.PreprocessedEntity.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.PreprocessedEntity.__CreateInstance(__ret); + else if (global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.BaseClassSpecifier) global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.BaseClassSpecifier.__CreateInstance(__ret); return __result0; } - public void AddPreprocessedEntities(global::CppSharp.Parser.AST.PreprocessedEntity s) + public void AddBases(global::CppSharp.Parser.AST.BaseClassSpecifier s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddPreprocessedEntities_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearPreprocessedEntities() + public void ClearBases() { - __Internal.ClearPreprocessedEntities_0((__Instance + __PointerAdjustment)); + __Internal.ClearBases_0((__Instance + __PointerAdjustment)); } - public static implicit operator global::CppSharp.Parser.AST.Declaration(global::CppSharp.Parser.AST.DeclarationKind kind) + public global::CppSharp.Parser.AST.Field GetFields(uint i) { - return new global::CppSharp.Parser.AST.Declaration(kind); + var __ret = __Internal.GetFields_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Field __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Field.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Field) global::CppSharp.Parser.AST.Field.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Field.__CreateInstance(__ret); + return __result0; } - public global::CppSharp.Parser.AST.DeclarationKind Kind + public void AddFields(global::CppSharp.Parser.AST.Field s) { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->kind = value; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.AccessSpecifier Access + public void ClearFields() { - get - { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access; - } - - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->access = value; - } + __Internal.ClearFields_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.DeclarationContext Namespace + public global::CppSharp.Parser.AST.Method GetMethods(uint i) { - get - { - global::CppSharp.Parser.AST.DeclarationContext __result0; - if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace)) - __result0 = (global::CppSharp.Parser.AST.DeclarationContext) global::CppSharp.Parser.AST.DeclarationContext.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace]; - else __result0 = global::CppSharp.Parser.AST.DeclarationContext.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->_namespace = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + var __ret = __Internal.GetMethods_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Method __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Method.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Method) global::CppSharp.Parser.AST.Method.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Method.__CreateInstance(__ret); + return __result0; } - public global::CppSharp.Parser.SourceLocation Location + public void AddMethods(global::CppSharp.Parser.AST.Method s) { - get + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddMethods_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearMethods() + { + __Internal.ClearMethods_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.AccessSpecifierDecl GetSpecifiers(uint i) + { + var __ret = __Internal.GetSpecifiers_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.AccessSpecifierDecl __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.AccessSpecifierDecl) global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.AccessSpecifierDecl.__CreateInstance(__ret); + return __result0; + } + + public void AddSpecifiers(global::CppSharp.Parser.AST.AccessSpecifierDecl s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecifiers_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearSpecifiers() + { + __Internal.ClearSpecifiers_0((__Instance + __PointerAdjustment)); + } + + public bool IsPOD + { + get { - return global::CppSharp.Parser.SourceLocation.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location); + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->location = value.__Instance; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD = (byte) (value ? 1 : 0); } } - public int LineNumberStart + public bool IsAbstract { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberStart = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract = (byte) (value ? 1 : 0); } } - public int LineNumberEnd + public bool IsUnion { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->lineNumberEnd = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion = (byte) (value ? 1 : 0); } } - public bool IsIncomplete + public bool IsDynamic { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete != 0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isIncomplete = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic = (byte) (value ? 1 : 0); } } - public bool IsDependent + public bool IsPolymorphic { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent != 0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isDependent = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic = (byte) (value ? 1 : 0); } } - public bool IsImplicit + public bool HasNonTrivialDefaultConstructor { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit != 0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isImplicit = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.Declaration CompleteDeclaration + public bool HasNonTrivialCopyConstructor { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration); - return __result0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->completeDeclaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor = (byte) (value ? 1 : 0); } } - public uint DefinitionOrder + public bool HasNonTrivialDestructor { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->definitionOrder = value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor = (byte) (value ? 1 : 0); } } - public global::System.IntPtr OriginalPtr + public bool IsExternCContext { get { - return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.RawComment Comment + public bool IsInjected { get { - global::CppSharp.Parser.AST.RawComment __result0; - if (((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.RawComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment)) - __result0 = (global::CppSharp.Parser.AST.RawComment) global::CppSharp.Parser.AST.RawComment.NativeToManagedMap[((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment]; - else __result0 = global::CppSharp.Parser.AST.RawComment.__CreateInstance(((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment); - return __result0; + return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected != 0; } set { - ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->comment = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected = (byte) (value ? 1 : 0); } } - public string Name + public global::CppSharp.Parser.AST.ClassLayout Layout { get { - var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + global::CppSharp.Parser.AST.ClassLayout __result0; + if (((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout)) + __result0 = (global::CppSharp.Parser.AST.ClassLayout) global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap[((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout]; + else __result0 = global::CppSharp.Parser.AST.ClassLayout.__CreateInstance(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout); + return __result0; } set { - __Internal.SetName_0((__Instance + __PointerAdjustment), value); + ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public string USR + public uint BasesCount { get { - var __ret = __Internal.USR_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetUSR_0((__Instance + __PointerAdjustment), value); + var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); + return __ret; } } - public string DebugText + public uint FieldsCount { get { - var __ret = __Internal.DebugText_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); + return __ret; } + } - set + public uint MethodsCount + { + get { - __Internal.SetDebugText_0((__Instance + __PointerAdjustment), value); + var __ret = __Internal.GetMethodsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } - public uint PreprocessedEntitiesCount + public uint SpecifiersCount { get { - var __ret = __Internal.GetPreprocessedEntitiesCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetSpecifiersCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class DeclarationContext : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 432)] + [StructLayout(LayoutKind.Explicit, Size = 32)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.TypeKind kind; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public byte isDependent; [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; + public global::CppSharp.Parser.AST.QualifiedType.__Internal injectedSpecializationType; [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; + public global::System.IntPtr _class; - [FieldOffset(64)] - public global::Std.BasicString.__Internal USR; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0InjectedClassNameType@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - [FieldOffset(96)] - public global::Std.BasicString.__Internal DebugText; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0InjectedClassNameType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + } - [FieldOffset(128)] - public byte isIncomplete; + internal static new global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new InjectedClassNameType(native.ToPointer(), skipVTables); + } - [FieldOffset(129)] - public byte isDependent; + internal static global::CppSharp.Parser.AST.InjectedClassNameType __CreateInstance(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + { + return new InjectedClassNameType(native, skipVTables); + } - [FieldOffset(130)] - public byte isImplicit; + private static void* __CopyValue(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + global::CppSharp.Parser.AST.InjectedClassNameType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; + private InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [FieldOffset(144)] - public uint definitionOrder; + protected InjectedClassNameType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; + public InjectedClassNameType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(176)] - public global::System.IntPtr originalPtr; + public InjectedClassNameType(global::CppSharp.Parser.AST.InjectedClassNameType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.InjectedClassNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(184)] - public global::System.IntPtr comment; + public global::CppSharp.Parser.AST.QualifiedType InjectedSpecializationType + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType); + } - [FieldOffset(192)] - internal global::Std.Vector.__Internal Namespaces; + set + { + ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->injectedSpecializationType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } - [FieldOffset(216)] - internal global::Std.Vector.__Internal Enums; - - [FieldOffset(240)] - internal global::Std.Vector.__Internal Functions; - - [FieldOffset(264)] - internal global::Std.Vector.__Internal Classes; - - [FieldOffset(288)] - internal global::Std.Vector.__Internal Templates; - - [FieldOffset(312)] - internal global::Std.Vector.__Internal Typedefs; - - [FieldOffset(336)] - internal global::Std.Vector.__Internal TypeAliases; + public global::CppSharp.Parser.AST.Class Class + { + get + { + global::CppSharp.Parser.AST.Class __result0; + if (((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class); + return __result0; + } - [FieldOffset(360)] - internal global::Std.Vector.__Internal Variables; + set + { + ((global::CppSharp.Parser.AST.InjectedClassNameType.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + } - [FieldOffset(384)] - internal global::Std.Vector.__Internal Friends; + public unsafe partial class DependentNameType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 24)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; - [FieldOffset(408)] - internal global::Std.Map.__Internal anonymous; + [FieldOffset(4)] + public byte isDependent; - [FieldOffset(424)] - public byte isAnonymous; + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0DeclarationContext@AST@CppParser@CppSharp@@QEAA@W4DeclarationKind@123@@Z")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + EntryPoint="??0DependentNameType@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0DeclarationContext@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0DependentNameType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1DeclarationContext@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + internal static new global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new DependentNameType(native.ToPointer(), skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getNamespaces@DeclarationContext@AST@CppParser@CppSharp@@QEAAPEAVNamespace@234@I@Z")] - internal static extern global::System.IntPtr GetNamespaces_0(global::System.IntPtr instance, uint i); + internal static global::CppSharp.Parser.AST.DependentNameType __CreateInstance(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + { + return new DependentNameType(native, skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addNamespaces@DeclarationContext@AST@CppParser@CppSharp@@QEAAXAEAPEAVNamespace@234@@Z")] - internal static extern void AddNamespaces_0(global::System.IntPtr instance, global::System.IntPtr s); + private static void* __CopyValue(global::CppSharp.Parser.AST.DependentNameType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + global::CppSharp.Parser.AST.DependentNameType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearNamespaces@DeclarationContext@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearNamespaces_0(global::System.IntPtr instance); + private DependentNameType(global::CppSharp.Parser.AST.DependentNameType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getEnums@DeclarationContext@AST@CppParser@CppSharp@@QEAAPEAVEnumeration@234@I@Z")] - internal static extern global::System.IntPtr GetEnums_0(global::System.IntPtr instance, uint i); + protected DependentNameType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addEnums@DeclarationContext@AST@CppParser@CppSharp@@QEAAXAEAPEAVEnumeration@234@@Z")] - internal static extern void AddEnums_0(global::System.IntPtr instance, global::System.IntPtr s); + public DependentNameType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearEnums@DeclarationContext@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearEnums_0(global::System.IntPtr instance); + public DependentNameType(global::CppSharp.Parser.AST.DependentNameType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DependentNameType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getFunctions@DeclarationContext@AST@CppParser@CppSharp@@QEAAPEAVFunction@234@I@Z")] - internal static extern global::System.IntPtr GetFunctions_0(global::System.IntPtr instance, uint i); + public global::CppSharp.Parser.AST.QualifiedType Desugared + { + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addFunctions@DeclarationContext@AST@CppParser@CppSharp@@QEAAXAEAPEAVFunction@234@@Z")] - internal static extern void AddFunctions_0(global::System.IntPtr instance, global::System.IntPtr s); + set + { + ((global::CppSharp.Parser.AST.DependentNameType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearFunctions@DeclarationContext@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearFunctions_0(global::System.IntPtr instance); + public unsafe partial class PackExpansionType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 8)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getClasses@DeclarationContext@AST@CppParser@CppSharp@@QEAAPEAVClass@234@I@Z")] - internal static extern global::System.IntPtr GetClasses_0(global::System.IntPtr instance, uint i); + [FieldOffset(4)] + public byte isDependent; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addClasses@DeclarationContext@AST@CppParser@CppSharp@@QEAAXAEAPEAVClass@234@@Z")] - internal static extern void AddClasses_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="??0PackExpansionType@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearClasses@DeclarationContext@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearClasses_0(global::System.IntPtr instance); + EntryPoint="??0PackExpansionType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getTemplates@DeclarationContext@AST@CppParser@CppSharp@@QEAAPEAVTemplate@234@I@Z")] - internal static extern global::System.IntPtr GetTemplates_0(global::System.IntPtr instance, uint i); + internal static new global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new PackExpansionType(native.ToPointer(), skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addTemplates@DeclarationContext@AST@CppParser@CppSharp@@QEAAXAEAPEAVTemplate@234@@Z")] - internal static extern void AddTemplates_0(global::System.IntPtr instance, global::System.IntPtr s); + internal static global::CppSharp.Parser.AST.PackExpansionType __CreateInstance(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) + { + return new PackExpansionType(native, skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearTemplates@DeclarationContext@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearTemplates_0(global::System.IntPtr instance); + private static void* __CopyValue(global::CppSharp.Parser.AST.PackExpansionType.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + global::CppSharp.Parser.AST.PackExpansionType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getTypedefs@DeclarationContext@AST@CppParser@CppSharp@@QEAAPEAVTypedefDecl@234@I@Z")] - internal static extern global::System.IntPtr GetTypedefs_0(global::System.IntPtr instance, uint i); + private PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addTypedefs@DeclarationContext@AST@CppParser@CppSharp@@QEAAXAEAPEAVTypedefDecl@234@@Z")] - internal static extern void AddTypedefs_0(global::System.IntPtr instance, global::System.IntPtr s); + protected PackExpansionType(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearTypedefs@DeclarationContext@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearTypedefs_0(global::System.IntPtr instance); + public PackExpansionType() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getTypeAliases@DeclarationContext@AST@CppParser@CppSharp@@QEAAPEAVTypeAlias@234@I@Z")] - internal static extern global::System.IntPtr GetTypeAliases_0(global::System.IntPtr instance, uint i); + public PackExpansionType(global::CppSharp.Parser.AST.PackExpansionType _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PackExpansionType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addTypeAliases@DeclarationContext@AST@CppParser@CppSharp@@QEAAXAEAPEAVTypeAlias@234@@Z")] - internal static extern void AddTypeAliases_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearTypeAliases@DeclarationContext@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearTypeAliases_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getVariables@DeclarationContext@AST@CppParser@CppSharp@@QEAAPEAVVariable@234@I@Z")] - internal static extern global::System.IntPtr GetVariables_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addVariables@DeclarationContext@AST@CppParser@CppSharp@@QEAAXAEAPEAVVariable@234@@Z")] - internal static extern void AddVariables_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearVariables@DeclarationContext@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearVariables_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getFriends@DeclarationContext@AST@CppParser@CppSharp@@QEAAPEAVFriend@234@I@Z")] - internal static extern global::System.IntPtr GetFriends_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addFriends@DeclarationContext@AST@CppParser@CppSharp@@QEAAXAEAPEAVFriend@234@@Z")] - internal static extern void AddFriends_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearFriends@DeclarationContext@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearFriends_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getNamespacesCount@DeclarationContext@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetNamespacesCount_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getEnumsCount@DeclarationContext@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetEnumsCount_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getFunctionsCount@DeclarationContext@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetFunctionsCount_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getClassesCount@DeclarationContext@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetClassesCount_0(global::System.IntPtr instance); + public unsafe partial class UnaryTransformType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 40)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getTemplatesCount@DeclarationContext@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetTemplatesCount_0(global::System.IntPtr instance); + [FieldOffset(4)] + public byte isDependent; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getTypedefsCount@DeclarationContext@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetTypedefsCount_0(global::System.IntPtr instance); + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal desugared; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getTypeAliasesCount@DeclarationContext@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetTypeAliasesCount_0(global::System.IntPtr instance); + [FieldOffset(24)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal baseType; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getVariablesCount@DeclarationContext@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetVariablesCount_0(global::System.IntPtr instance); + EntryPoint="??0UnaryTransformType@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getFriendsCount@DeclarationContext@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetFriendsCount_0(global::System.IntPtr instance); + EntryPoint="??0UnaryTransformType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - internal static new global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new DeclarationContext(native.ToPointer(), skipVTables); + return new UnaryTransformType(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.UnaryTransformType __CreateInstance(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) { - return new DeclarationContext(native, skipVTables); + return new UnaryTransformType(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.DeclarationContext.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); - global::CppSharp.Parser.AST.DeclarationContext.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); + global::CppSharp.Parser.AST.UnaryTransformType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) + private UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected DeclarationContext(void* native, bool skipVTables = false) + protected UnaryTransformType(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -4918,19 +4662,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) + public UnaryTransformType() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext _0) + public UnaryTransformType(global::CppSharp.Parser.AST.UnaryTransformType _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.UnaryTransformType.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -4939,453 +4683,467 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public global::CppSharp.Parser.AST.QualifiedType Desugared { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared); + } + + set + { + ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->desugared = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } - public global::CppSharp.Parser.AST.Namespace GetNamespaces(uint i) + public global::CppSharp.Parser.AST.QualifiedType BaseType { - var __ret = __Internal.GetNamespaces_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Namespace __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Namespace.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Namespace) global::CppSharp.Parser.AST.Namespace.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Namespace.__CreateInstance(__ret); - return __result0; + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType); + } + + set + { + ((global::CppSharp.Parser.AST.UnaryTransformType.__Internal*) __Instance)->baseType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } + } - public void AddNamespaces(global::CppSharp.Parser.AST.Namespace s) + public unsafe partial class VectorType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 32)] + public new partial struct __Internal { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddNamespaces_0((__Instance + __PointerAdjustment), __arg0); + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal elementType; + + [FieldOffset(24)] + public uint numElements; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0VectorType@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0VectorType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - public void ClearNamespaces() + internal static new global::CppSharp.Parser.AST.VectorType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - __Internal.ClearNamespaces_0((__Instance + __PointerAdjustment)); + return new VectorType(native.ToPointer(), skipVTables); } - public global::CppSharp.Parser.AST.Enumeration GetEnums(uint i) + internal static global::CppSharp.Parser.AST.VectorType __CreateInstance(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) { - var __ret = __Internal.GetEnums_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Enumeration __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Enumeration) global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Enumeration.__CreateInstance(__ret); - return __result0; + return new VectorType(native, skipVTables); } - public void AddEnums(global::CppSharp.Parser.AST.Enumeration s) + private static void* __CopyValue(global::CppSharp.Parser.AST.VectorType.__Internal native) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddEnums_0((__Instance + __PointerAdjustment), __arg0); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + global::CppSharp.Parser.AST.VectorType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public void ClearEnums() + private VectorType(global::CppSharp.Parser.AST.VectorType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - __Internal.ClearEnums_0((__Instance + __PointerAdjustment)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public global::CppSharp.Parser.AST.Function GetFunctions(uint i) + protected VectorType(void* native, bool skipVTables = false) + : base((void*) null) { - var __ret = __Internal.GetFunctions_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Function __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(__ret); - return __result0; + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public void AddFunctions(global::CppSharp.Parser.AST.Function s) + public VectorType() + : this((void*) null) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFunctions_0((__Instance + __PointerAdjustment), __arg0); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public void ClearFunctions() + public VectorType(global::CppSharp.Parser.AST.VectorType _0) + : this((void*) null) { - __Internal.ClearFunctions_0((__Instance + __PointerAdjustment)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VectorType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.Class GetClasses(uint i) + public global::CppSharp.Parser.AST.QualifiedType ElementType { - var __ret = __Internal.GetClasses_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Class __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(__ret); - return __result0; + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType); + } + + set + { + ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->elementType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } } - public void AddClasses(global::CppSharp.Parser.AST.Class s) + public uint NumElements { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddClasses_0((__Instance + __PointerAdjustment), __arg0); + get + { + return ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements; + } + + set + { + ((global::CppSharp.Parser.AST.VectorType.__Internal*) __Instance)->numElements = value; + } } + } - public void ClearClasses() + public unsafe partial class BuiltinType : global::CppSharp.Parser.AST.Type, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 12)] + public new partial struct __Internal { - __Internal.ClearClasses_0((__Instance + __PointerAdjustment)); + [FieldOffset(0)] + public global::CppSharp.Parser.AST.TypeKind kind; + + [FieldOffset(4)] + public byte isDependent; + + [FieldOffset(8)] + public global::CppSharp.Parser.AST.PrimitiveType type; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0BuiltinType@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0BuiltinType@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - public global::CppSharp.Parser.AST.Template GetTemplates(uint i) + internal static new global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - var __ret = __Internal.GetTemplates_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Template __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(__ret); - return __result0; + return new BuiltinType(native.ToPointer(), skipVTables); } - public void AddTemplates(global::CppSharp.Parser.AST.Template s) + internal static global::CppSharp.Parser.AST.BuiltinType __CreateInstance(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddTemplates_0((__Instance + __PointerAdjustment), __arg0); + return new BuiltinType(native, skipVTables); } - public void ClearTemplates() + private static void* __CopyValue(global::CppSharp.Parser.AST.BuiltinType.__Internal native) { - __Internal.ClearTemplates_0((__Instance + __PointerAdjustment)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + global::CppSharp.Parser.AST.BuiltinType.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public global::CppSharp.Parser.AST.TypedefDecl GetTypedefs(uint i) + private BuiltinType(global::CppSharp.Parser.AST.BuiltinType.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - var __ret = __Internal.GetTypedefs_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.TypedefDecl __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.TypedefDecl) global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.TypedefDecl.__CreateInstance(__ret); - return __result0; + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public void AddTypedefs(global::CppSharp.Parser.AST.TypedefDecl s) + protected BuiltinType(void* native, bool skipVTables = false) + : base((void*) null) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddTypedefs_0((__Instance + __PointerAdjustment), __arg0); + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public void ClearTypedefs() + public BuiltinType() + : this((void*) null) { - __Internal.ClearTypedefs_0((__Instance + __PointerAdjustment)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.TypeAlias GetTypeAliases(uint i) + public BuiltinType(global::CppSharp.Parser.AST.BuiltinType _0) + : this((void*) null) { - var __ret = __Internal.GetTypeAliases_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.TypeAlias __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.TypeAlias) global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.TypeAlias.__CreateInstance(__ret); - return __result0; + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BuiltinType.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void AddTypeAliases(global::CppSharp.Parser.AST.TypeAlias s) + public global::CppSharp.Parser.AST.PrimitiveType Type { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddTypeAliases_0((__Instance + __PointerAdjustment), __arg0); + get + { + return ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type; + } + + set + { + ((global::CppSharp.Parser.AST.BuiltinType.__Internal*) __Instance)->type = value; + } } + } - public void ClearTypeAliases() + public unsafe partial class VTableComponent : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 16)] + public partial struct __Internal { - __Internal.ClearTypeAliases_0((__Instance + __PointerAdjustment)); + [FieldOffset(0)] + public global::CppSharp.Parser.AST.VTableComponentKind kind; + + [FieldOffset(4)] + public uint offset; + + [FieldOffset(8)] + public global::System.IntPtr declaration; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0VTableComponent@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0VTableComponent@AST@CppParser@CppSharp@@QEAA@AEBU0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); } - public global::CppSharp.Parser.AST.Variable GetVariables(uint i) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - var __ret = __Internal.GetVariables_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Variable __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Variable.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Variable) global::CppSharp.Parser.AST.Variable.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Variable.__CreateInstance(__ret); - return __result0; + return new VTableComponent(native.ToPointer(), skipVTables); } - public void AddVariables(global::CppSharp.Parser.AST.Variable s) + internal static global::CppSharp.Parser.AST.VTableComponent __CreateInstance(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddVariables_0((__Instance + __PointerAdjustment), __arg0); + return new VTableComponent(native, skipVTables); } - public void ClearVariables() + private static void* __CopyValue(global::CppSharp.Parser.AST.VTableComponent.__Internal native) { - __Internal.ClearVariables_0((__Instance + __PointerAdjustment)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + *(global::CppSharp.Parser.AST.VTableComponent.__Internal*) ret = native; + return ret.ToPointer(); } - public global::CppSharp.Parser.AST.Friend GetFriends(uint i) + private VTableComponent(global::CppSharp.Parser.AST.VTableComponent.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - var __ret = __Internal.GetFriends_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Friend __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Friend.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Friend) global::CppSharp.Parser.AST.Friend.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Friend.__CreateInstance(__ret); - return __result0; + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public void AddFriends(global::CppSharp.Parser.AST.Friend s) + protected VTableComponent(void* native, bool skipVTables = false) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFriends_0((__Instance + __PointerAdjustment), __arg0); + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public void ClearFriends() + public VTableComponent() { - __Internal.ClearFriends_0((__Instance + __PointerAdjustment)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public static implicit operator global::CppSharp.Parser.AST.DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) + public VTableComponent(global::CppSharp.Parser.AST.VTableComponent _0) { - return new global::CppSharp.Parser.AST.DeclarationContext(kind); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableComponent.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.VTableComponent.__Internal*) _0.__Instance); } - public bool IsAnonymous + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.VTableComponent __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.VTableComponentKind Kind { get { - return ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous != 0; + return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind; } set { - ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->kind = value; } } - public uint NamespacesCount + public uint Offset { get { - var __ret = __Internal.GetNamespacesCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset; } - } - public uint EnumsCount - { - get - { - var __ret = __Internal.GetEnumsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint FunctionsCount - { - get - { - var __ret = __Internal.GetFunctionsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint ClassesCount - { - get - { - var __ret = __Internal.GetClassesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint TemplatesCount - { - get - { - var __ret = __Internal.GetTemplatesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint TypedefsCount - { - get - { - var __ret = __Internal.GetTypedefsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - - public uint TypeAliasesCount - { - get + set { - var __ret = __Internal.GetTypeAliasesCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->offset = value; } } - public uint VariablesCount + public global::CppSharp.Parser.AST.Declaration Declaration { get { - var __ret = __Internal.GetVariablesCount_0((__Instance + __PointerAdjustment)); - return __ret; + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration); + return __result0; } - } - public uint FriendsCount - { - get + set { - var __ret = __Internal.GetFriendsCount_0((__Instance + __PointerAdjustment)); - return __ret; + ((global::CppSharp.Parser.AST.VTableComponent.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class TypedefNameDecl : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class VTableLayout : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 208)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 24)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(64)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(96)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(128)] - public byte isIncomplete; - - [FieldOffset(129)] - public byte isDependent; - - [FieldOffset(130)] - public byte isImplicit; - - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(144)] - public uint definitionOrder; + internal global::Std.Vector.__Internal Components; - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0VTableLayout@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - [FieldOffset(176)] - public global::System.IntPtr originalPtr; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0VTableLayout@AST@CppParser@CppSharp@@QEAA@AEBU0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(184)] - public global::System.IntPtr comment; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??1VTableLayout@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); - [FieldOffset(192)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getComponents@VTableLayout@AST@CppParser@CppSharp@@QEAA?AUVTableComponent@234@I@Z")] + internal static extern void GetComponents_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TypedefNameDecl@AST@CppParser@CppSharp@@QEAA@W4DeclarationKind@123@@Z")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + EntryPoint="?addComponents@VTableLayout@AST@CppParser@CppSharp@@QEAAXAEAUVTableComponent@234@@Z")] + internal static extern void AddComponents_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TypedefNameDecl@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="?clearComponents@VTableLayout@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearComponents_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1TypedefNameDecl@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + EntryPoint="?getComponentsCount@VTableLayout@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetComponentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypedefNameDecl(native.ToPointer(), skipVTables); + return new VTableLayout(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypedefNameDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.VTableLayout __CreateInstance(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) { - return new TypedefNameDecl(native, skipVTables); + return new VTableLayout(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.VTableLayout.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); - global::CppSharp.Parser.AST.TypedefNameDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); + global::CppSharp.Parser.AST.VTableLayout.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal native, bool skipVTables = false) + private VTableLayout(global::CppSharp.Parser.AST.VTableLayout.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypedefNameDecl(void* native, bool skipVTables = false) - : base((void*) null) + protected VTableLayout(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) - : this((void*) null) + public VTableLayout() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypedefNameDecl(global::CppSharp.Parser.AST.TypedefNameDecl _0) - : this((void*) null) + public VTableLayout(global::CppSharp.Parser.AST.VTableLayout _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefNameDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VTableLayout.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -5394,9 +5152,14 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.VTableLayout __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -5404,146 +5167,119 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public static implicit operator global::CppSharp.Parser.AST.TypedefNameDecl(global::CppSharp.Parser.AST.DeclarationKind kind) + public global::CppSharp.Parser.AST.VTableComponent GetComponents(uint i) { - return new global::CppSharp.Parser.AST.TypedefNameDecl(kind); + var __ret = new global::CppSharp.Parser.AST.VTableComponent.__Internal(); + __Internal.GetComponents_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); + return global::CppSharp.Parser.AST.VTableComponent.__CreateInstance(__ret); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public void AddComponents(global::CppSharp.Parser.AST.VTableComponent s) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType); - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddComponents_0((__Instance + __PointerAdjustment), __arg0); + } - set + public void ClearComponents() + { + __Internal.ClearComponents_0((__Instance + __PointerAdjustment)); + } + + public uint ComponentsCount + { + get { - ((global::CppSharp.Parser.AST.TypedefNameDecl.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + var __ret = __Internal.GetComponentsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class TypedefDecl : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable + public unsafe partial class VFTableInfo : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 208)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 40)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public ulong VBTableIndex; [FieldOffset(8)] - public global::System.IntPtr _namespace; + public uint VFPtrOffset; + + [FieldOffset(12)] + public uint VFPtrFullOffset; [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; + public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; - [FieldOffset(20)] - public int lineNumberStart; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0VFTableInfo@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(64)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(96)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(128)] - public byte isIncomplete; - - [FieldOffset(129)] - public byte isDependent; - - [FieldOffset(130)] - public byte isImplicit; - - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(144)] - public uint definitionOrder; - - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(176)] - public global::System.IntPtr originalPtr; - - [FieldOffset(184)] - public global::System.IntPtr comment; - - [FieldOffset(192)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TypedefDecl@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TypedefDecl@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0VFTableInfo@AST@CppParser@CppSharp@@QEAA@AEBU0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1TypedefDecl@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1VFTableInfo@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypedefDecl(native.ToPointer(), skipVTables); + return new VFTableInfo(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.VFTableInfo __CreateInstance(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) { - return new TypedefDecl(native, skipVTables); + return new VFTableInfo(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefDecl.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.VFTableInfo.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); - global::CppSharp.Parser.AST.TypedefDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); + global::CppSharp.Parser.AST.VFTableInfo.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) + private VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypedefDecl(void* native, bool skipVTables = false) - : base((void*) null) + protected VFTableInfo(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public TypedefDecl() - : this((void*) null) + public VFTableInfo() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl _0) - : this((void*) null) + public VFTableInfo(global::CppSharp.Parser.AST.VFTableInfo _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VFTableInfo.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -5552,152 +5288,183 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.VFTableInfo __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - } - public unsafe partial class TypeAlias : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 216)] - public new partial struct __Internal + public ulong VBTableIndex { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(64)] - public global::Std.BasicString.__Internal USR; + get + { + return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex; + } - [FieldOffset(96)] - public global::Std.BasicString.__Internal DebugText; + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VBTableIndex = value; + } + } - [FieldOffset(128)] - public byte isIncomplete; + public uint VFPtrOffset + { + get + { + return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset; + } - [FieldOffset(129)] - public byte isDependent; + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrOffset = value; + } + } - [FieldOffset(130)] - public byte isImplicit; + public uint VFPtrFullOffset + { + get + { + return ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset; + } - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->VFPtrFullOffset = value; + } + } - [FieldOffset(144)] - public uint definitionOrder; + public global::CppSharp.Parser.AST.VTableLayout Layout + { + get + { + return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout); + } - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; + set + { + ((global::CppSharp.Parser.AST.VFTableInfo.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; + } + } + } - [FieldOffset(176)] - public global::System.IntPtr originalPtr; + public unsafe partial class LayoutField : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 64)] + public partial struct __Internal + { + [FieldOffset(0)] + public uint offset; - [FieldOffset(184)] - public global::System.IntPtr comment; + [FieldOffset(8)] + public global::Std.BasicString.__Internal Name; - [FieldOffset(192)] + [FieldOffset(40)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(208)] - public global::System.IntPtr describedAliasTemplate; + [FieldOffset(56)] + public global::System.IntPtr fieldPtr; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TypeAlias@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0LayoutField@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TypeAlias@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="??0LayoutField@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr other); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1TypeAlias@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1LayoutField@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getName@LayoutField@AST@CppParser@CppSharp@@QEAAPEBDXZ")] + internal static extern global::System.IntPtr Name_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?setName@LayoutField@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] + internal static extern void SetName_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - internal static new global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypeAlias(native.ToPointer(), skipVTables); + return new LayoutField(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.LayoutField __CreateInstance(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) { - return new TypeAlias(native, skipVTables); + return new LayoutField(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAlias.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutField.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); - global::CppSharp.Parser.AST.TypeAlias.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); + global::CppSharp.Parser.AST.LayoutField.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypeAlias(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) + private LayoutField(global::CppSharp.Parser.AST.LayoutField.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypeAlias(void* native, bool skipVTables = false) - : base((void*) null) + protected LayoutField(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public TypeAlias() - : this((void*) null) + public LayoutField() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypeAlias(global::CppSharp.Parser.AST.TypeAlias _0) - : this((void*) null) + public LayoutField(global::CppSharp.Parser.AST.LayoutField other) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutField.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + if (ReferenceEquals(other, null)) + throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = other.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.LayoutField __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -5705,157 +5472,153 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.TypeAliasTemplate DescribedAliasTemplate + public uint Offset { get { - global::CppSharp.Parser.AST.TypeAliasTemplate __result0; - if (((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate)) - __result0 = (global::CppSharp.Parser.AST.TypeAliasTemplate) global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate]; - else __result0 = global::CppSharp.Parser.AST.TypeAliasTemplate.__CreateInstance(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate); - return __result0; + return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset; } set { - ((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->offset = value; } } - } - public unsafe partial class Friend : global::CppSharp.Parser.AST.Declaration, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 200)] - public new partial struct __Internal + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(64)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(96)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(128)] - public byte isIncomplete; - - [FieldOffset(129)] - public byte isDependent; + get + { + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType); + } - [FieldOffset(130)] - public byte isImplicit; + set + { + ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + } + } - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; + public global::System.IntPtr FieldPtr + { + get + { + return ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr; + } - [FieldOffset(144)] - public uint definitionOrder; + set + { + ((global::CppSharp.Parser.AST.LayoutField.__Internal*) __Instance)->fieldPtr = (global::System.IntPtr) value; + } + } - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; + public string Name + { + get + { + var __ret = __Internal.Name_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } - [FieldOffset(176)] - public global::System.IntPtr originalPtr; + set + { + __Internal.SetName_0((__Instance + __PointerAdjustment), value); + } + } + } - [FieldOffset(184)] - public global::System.IntPtr comment; + public unsafe partial class LayoutBase : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 16)] + public partial struct __Internal + { + [FieldOffset(0)] + public uint offset; - [FieldOffset(192)] - public global::System.IntPtr declaration; + [FieldOffset(8)] + public global::System.IntPtr _class; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Friend@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0LayoutBase@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Friend@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="??0LayoutBase@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr other); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1Friend@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1LayoutBase@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.Friend __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Friend(native.ToPointer(), skipVTables); + return new LayoutBase(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Friend __CreateInstance(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.LayoutBase __CreateInstance(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) { - return new Friend(native, skipVTables); + return new LayoutBase(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Friend.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.LayoutBase.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); - global::CppSharp.Parser.AST.Friend.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); + global::CppSharp.Parser.AST.LayoutBase.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Friend(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) + private LayoutBase(global::CppSharp.Parser.AST.LayoutBase.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Friend(void* native, bool skipVTables = false) - : base((void*) null) + protected LayoutBase(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public Friend() - : this((void*) null) + public LayoutBase() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Friend(global::CppSharp.Parser.AST.Friend _0) - : this((void*) null) + public LayoutBase(global::CppSharp.Parser.AST.LayoutBase other) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.LayoutBase.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; + if (ReferenceEquals(other, null)) + throw new global::System.ArgumentNullException("other", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = other.__Instance; __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.LayoutBase __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -5863,102 +5626,199 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Declaration Declaration + public uint Offset { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration); + return ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset; + } + + set + { + ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->offset = value; + } + } + + public global::CppSharp.Parser.AST.Class Class + { + get + { + global::CppSharp.Parser.AST.Class __result0; + if (((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class); return __result0; } set { - ((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.LayoutBase.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class Statement : IDisposable + public unsafe partial class ClassLayout : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 48)] + [StructLayout(LayoutKind.Explicit, Size = 128)] public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + public global::CppSharp.Parser.AST.CppAbi ABI; [FieldOffset(8)] - public global::System.IntPtr decl; + internal global::Std.Vector.__Internal VFTables; - [FieldOffset(16)] - public global::Std.BasicString.__Internal String; + [FieldOffset(32)] + public global::CppSharp.Parser.AST.VTableLayout.__Internal layout; + + [FieldOffset(56)] + public byte hasOwnVFPtr; + + [FieldOffset(60)] + public int VBPtrOffset; + + [FieldOffset(64)] + public int alignment; + + [FieldOffset(68)] + public int size; + + [FieldOffset(72)] + public int dataSize; + + [FieldOffset(80)] + internal global::Std.Vector.__Internal Fields; + + [FieldOffset(104)] + internal global::Std.Vector.__Internal Bases; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Statement@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0ClassLayout@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0ClassLayout@AST@CppParser@CppSharp@@QEAA@AEBU0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1Statement@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1ClassLayout@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getString@Statement@AST@CppParser@CppSharp@@QEAAPEBDXZ")] - internal static extern global::System.IntPtr String_0(global::System.IntPtr instance); + EntryPoint="?getVFTables@ClassLayout@AST@CppParser@CppSharp@@QEAA?AUVFTableInfo@234@I@Z")] + internal static extern void GetVFTables_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?setString@Statement@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] - internal static extern void SetString_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - } + EntryPoint="?addVFTables@ClassLayout@AST@CppParser@CppSharp@@QEAAXAEAUVFTableInfo@234@@Z")] + internal static extern void AddVFTables_0(global::System.IntPtr instance, global::System.IntPtr s); - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearVFTables@ClassLayout@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearVFTables_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getFields@ClassLayout@AST@CppParser@CppSharp@@QEAA?AVLayoutField@234@I@Z")] + internal static extern void GetFields_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addFields@ClassLayout@AST@CppParser@CppSharp@@QEAAXAEAVLayoutField@234@@Z")] + internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearFields@ClassLayout@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearFields_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getBases@ClassLayout@AST@CppParser@CppSharp@@QEAA?AVLayoutBase@234@I@Z")] + internal static extern void GetBases_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addBases@ClassLayout@AST@CppParser@CppSharp@@QEAAXAEAVLayoutBase@234@@Z")] + internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearBases@ClassLayout@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearBases_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getVFTablesCount@ClassLayout@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetVFTablesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getFieldsCount@ClassLayout@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getBasesCount@ClassLayout@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetBasesCount_0(global::System.IntPtr instance); + } + + 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(); + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); protected void*[] __OriginalVTables; protected bool __ownsNativeInstance; - internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Statement(native.ToPointer(), skipVTables); + return new ClassLayout(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassLayout __CreateInstance(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) { - return new Statement(native, skipVTables); + return new ClassLayout(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Statement.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassLayout.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); - global::CppSharp.Parser.AST.Statement.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + global::CppSharp.Parser.AST.ClassLayout.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Statement(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + private ClassLayout(global::CppSharp.Parser.AST.ClassLayout.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Statement(void* native, bool skipVTables = false) + protected ClassLayout(void* native, bool skipVTables = false) { if (native == null) return; __Instance = new global::System.IntPtr(native); } - public Statement(global::CppSharp.Parser.AST.Statement _0) + public ClassLayout() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public ClassLayout(global::CppSharp.Parser.AST.ClassLayout _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassLayout.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -5974,7 +5834,7 @@ namespace CppSharp public virtual void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Statement __dummy; + global::CppSharp.Parser.AST.ClassLayout __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -5982,493 +5842,498 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.StatementClass Class + public global::CppSharp.Parser.AST.VFTableInfo GetVFTables(uint i) + { + var __ret = new global::CppSharp.Parser.AST.VFTableInfo.__Internal(); + __Internal.GetVFTables_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); + return global::CppSharp.Parser.AST.VFTableInfo.__CreateInstance(__ret); + } + + public void AddVFTables(global::CppSharp.Parser.AST.VFTableInfo s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddVFTables_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearVFTables() + { + __Internal.ClearVFTables_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.LayoutField GetFields(uint i) + { + var __ret = new global::CppSharp.Parser.AST.LayoutField.__Internal(); + __Internal.GetFields_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); + return global::CppSharp.Parser.AST.LayoutField.__CreateInstance(__ret); + } + + public void AddFields(global::CppSharp.Parser.AST.LayoutField s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearFields() + { + __Internal.ClearFields_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.LayoutBase GetBases(uint i) + { + var __ret = new global::CppSharp.Parser.AST.LayoutBase.__Internal(); + __Internal.GetBases_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); + return global::CppSharp.Parser.AST.LayoutBase.__CreateInstance(__ret); + } + + public void AddBases(global::CppSharp.Parser.AST.LayoutBase s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearBases() + { + __Internal.ClearBases_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.CppAbi ABI { get { - return ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class; + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI; } set { - ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class = value; + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->ABI = value; } } - public global::CppSharp.Parser.AST.Declaration Decl + public global::CppSharp.Parser.AST.VTableLayout Layout { get { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl); - return __result0; + return global::CppSharp.Parser.AST.VTableLayout.__CreateInstance(((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout); } set { - ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.VTableLayout.__Internal() : *(global::CppSharp.Parser.AST.VTableLayout.__Internal*) value.__Instance; } } - public string String + public bool HasOwnVFPtr { get { - var __ret = __Internal.String_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr != 0; } set { - __Internal.SetString_0((__Instance + __PointerAdjustment), value); + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->hasOwnVFPtr = (byte) (value ? 1 : 0); } } - } - public unsafe partial class Expression : global::CppSharp.Parser.AST.Statement, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 48)] - public new partial struct __Internal + public int VBPtrOffset { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; - - [FieldOffset(8)] - public global::System.IntPtr decl; + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset; + } - [FieldOffset(16)] - public global::Std.BasicString.__Internal String; + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->VBPtrOffset = value; + } + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Expression@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public int Alignment + { + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1Expression@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->alignment = value; + } } - internal static new global::CppSharp.Parser.AST.Expression __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + public int Size { - return new Expression(native.ToPointer(), skipVTables); + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->size = value; + } } - internal static global::CppSharp.Parser.AST.Expression __CreateInstance(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) + public int DataSize { - return new Expression(native, skipVTables); + get + { + return ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize; + } + + set + { + ((global::CppSharp.Parser.AST.ClassLayout.__Internal*) __Instance)->dataSize = value; + } } - private static void* __CopyValue(global::CppSharp.Parser.AST.Expression.__Internal native) + public uint VFTablesCount { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); - global::CppSharp.Parser.AST.Expression.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); + get + { + var __ret = __Internal.GetVFTablesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - private Expression(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) + public uint FieldsCount { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; + get + { + var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } - protected Expression(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public Expression(global::CppSharp.Parser.AST.Expression _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public override void Dispose(bool disposing) + public uint BasesCount { - global::CppSharp.Parser.AST.Statement __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + get + { + var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } } } - public unsafe partial class BinaryOperator : global::CppSharp.Parser.AST.Expression, IDisposable + public unsafe partial class DeclarationContext : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 96)] + [StructLayout(LayoutKind.Explicit, Size = 456)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr decl; + public global::System.IntPtr _namespace; [FieldOffset(16)] - public global::Std.BasicString.__Internal String; + public global::CppSharp.Parser.SourceLocation.__Internal location; - [FieldOffset(48)] - public global::System.IntPtr LHS; + [FieldOffset(20)] + public int lineNumberStart; - [FieldOffset(56)] - public global::System.IntPtr RHS; + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; [FieldOffset(64)] - public global::Std.BasicString.__Internal OpcodeStr; + public global::Std.BasicString.__Internal USR; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0BinaryOperator@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(96)] + public global::Std.BasicString.__Internal DebugText; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1BinaryOperator@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + [FieldOffset(128)] + public byte isIncomplete; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getOpcodeStr@BinaryOperator@AST@CppParser@CppSharp@@QEAAPEBDXZ")] - internal static extern global::System.IntPtr OpcodeStr_0(global::System.IntPtr instance); + [FieldOffset(129)] + public byte isDependent; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?setOpcodeStr@BinaryOperator@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] - internal static extern void SetOpcodeStr_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - } + [FieldOffset(130)] + public byte isImplicit; - internal static new global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new BinaryOperator(native.ToPointer(), skipVTables); - } + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; - internal static global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) - { - return new BinaryOperator(native, skipVTables); - } + [FieldOffset(144)] + public uint definitionOrder; - private static void* __CopyValue(global::CppSharp.Parser.AST.BinaryOperator.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); - global::CppSharp.Parser.AST.BinaryOperator.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; - private BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; - protected BinaryOperator(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [FieldOffset(200)] + public global::System.IntPtr originalPtr; - public BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(208)] + public global::System.IntPtr comment; - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Statement __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } + [FieldOffset(216)] + internal global::Std.Vector.__Internal Namespaces; - public global::CppSharp.Parser.AST.Expression LHS - { - get - { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS); - return __result0; - } + [FieldOffset(240)] + internal global::Std.Vector.__Internal Enums; - set - { - ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } + [FieldOffset(264)] + internal global::Std.Vector.__Internal Functions; - public global::CppSharp.Parser.AST.Expression RHS - { - get - { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS); - return __result0; - } + [FieldOffset(288)] + internal global::Std.Vector.__Internal Classes; - set - { - ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } + [FieldOffset(312)] + internal global::Std.Vector.__Internal Templates; - public string OpcodeStr - { - get - { - var __ret = __Internal.OpcodeStr_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } + [FieldOffset(336)] + internal global::Std.Vector.__Internal Typedefs; - set - { - __Internal.SetOpcodeStr_0((__Instance + __PointerAdjustment), value); - } - } - } + [FieldOffset(360)] + internal global::Std.Vector.__Internal TypeAliases; - public unsafe partial class CallExpr : global::CppSharp.Parser.AST.Expression, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 72)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + [FieldOffset(384)] + internal global::Std.Vector.__Internal Variables; - [FieldOffset(8)] - public global::System.IntPtr decl; + [FieldOffset(408)] + internal global::Std.Vector.__Internal Friends; - [FieldOffset(16)] - public global::Std.BasicString.__Internal String; + [FieldOffset(432)] + internal global::Std.Map.__Internal anonymous; - [FieldOffset(48)] - internal global::Std.Vector.__Internal Arguments; + [FieldOffset(448)] + public byte isAnonymous; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0CallExpr@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0DeclarationContext@AST@CppParser@CppSharp@@QEAA@W4DeclarationKind@123@@Z")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0DeclarationContext@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1CallExpr@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1DeclarationContext@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getArguments@CallExpr@AST@CppParser@CppSharp@@QEAAPEAVExpression@234@I@Z")] - internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); + EntryPoint="?getNamespaces@DeclarationContext@AST@CppParser@CppSharp@@QEAAPEAVNamespace@234@I@Z")] + internal static extern global::System.IntPtr GetNamespaces_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addArguments@CallExpr@AST@CppParser@CppSharp@@QEAAXAEAPEAVExpression@234@@Z")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="?addNamespaces@DeclarationContext@AST@CppParser@CppSharp@@QEAAXAEAPEAVNamespace@234@@Z")] + internal static extern void AddNamespaces_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearArguments@CallExpr@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="?clearNamespaces@DeclarationContext@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearNamespaces_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getArgumentsCount@CallExpr@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); - } + EntryPoint="?getEnums@DeclarationContext@AST@CppParser@CppSharp@@QEAAPEAVEnumeration@234@I@Z")] + internal static extern global::System.IntPtr GetEnums_0(global::System.IntPtr instance, uint i); - internal static new global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new CallExpr(native.ToPointer(), skipVTables); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addEnums@DeclarationContext@AST@CppParser@CppSharp@@QEAAXAEAPEAVEnumeration@234@@Z")] + internal static extern void AddEnums_0(global::System.IntPtr instance, global::System.IntPtr s); - internal static global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) - { - return new CallExpr(native, skipVTables); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearEnums@DeclarationContext@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearEnums_0(global::System.IntPtr instance); - private static void* __CopyValue(global::CppSharp.Parser.AST.CallExpr.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); - global::CppSharp.Parser.AST.CallExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getFunctions@DeclarationContext@AST@CppParser@CppSharp@@QEAAPEAVFunction@234@I@Z")] + internal static extern global::System.IntPtr GetFunctions_0(global::System.IntPtr instance, uint i); - private CallExpr(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addFunctions@DeclarationContext@AST@CppParser@CppSharp@@QEAAXAEAPEAVFunction@234@@Z")] + internal static extern void AddFunctions_0(global::System.IntPtr instance, global::System.IntPtr s); - protected CallExpr(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearFunctions@DeclarationContext@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearFunctions_0(global::System.IntPtr instance); - public CallExpr(global::CppSharp.Parser.AST.CallExpr _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getClasses@DeclarationContext@AST@CppParser@CppSharp@@QEAAPEAVClass@234@I@Z")] + internal static extern global::System.IntPtr GetClasses_0(global::System.IntPtr instance, uint i); - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Statement __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addClasses@DeclarationContext@AST@CppParser@CppSharp@@QEAAXAEAPEAVClass@234@@Z")] + internal static extern void AddClasses_0(global::System.IntPtr instance, global::System.IntPtr s); - public global::CppSharp.Parser.AST.Expression GetArguments(uint i) - { - var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Expression __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); - return __result0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearClasses@DeclarationContext@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearClasses_0(global::System.IntPtr instance); - public void AddArguments(global::CppSharp.Parser.AST.Expression s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getTemplates@DeclarationContext@AST@CppParser@CppSharp@@QEAAPEAVTemplate@234@I@Z")] + internal static extern global::System.IntPtr GetTemplates_0(global::System.IntPtr instance, uint i); - public void ClearArguments() - { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addTemplates@DeclarationContext@AST@CppParser@CppSharp@@QEAAXAEAPEAVTemplate@234@@Z")] + internal static extern void AddTemplates_0(global::System.IntPtr instance, global::System.IntPtr s); - public uint ArgumentsCount - { - get - { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearTemplates@DeclarationContext@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearTemplates_0(global::System.IntPtr instance); - public unsafe partial class CXXConstructExpr : global::CppSharp.Parser.AST.Expression, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 72)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.StatementClass _class; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getTypedefs@DeclarationContext@AST@CppParser@CppSharp@@QEAAPEAVTypedefDecl@234@I@Z")] + internal static extern global::System.IntPtr GetTypedefs_0(global::System.IntPtr instance, uint i); - [FieldOffset(8)] - public global::System.IntPtr decl; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addTypedefs@DeclarationContext@AST@CppParser@CppSharp@@QEAAXAEAPEAVTypedefDecl@234@@Z")] + internal static extern void AddTypedefs_0(global::System.IntPtr instance, global::System.IntPtr s); - [FieldOffset(16)] - public global::Std.BasicString.__Internal String; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearTypedefs@DeclarationContext@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearTypedefs_0(global::System.IntPtr instance); - [FieldOffset(48)] - internal global::Std.Vector.__Internal Arguments; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getTypeAliases@DeclarationContext@AST@CppParser@CppSharp@@QEAAPEAVTypeAlias@234@I@Z")] + internal static extern global::System.IntPtr GetTypeAliases_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0CXXConstructExpr@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="?addTypeAliases@DeclarationContext@AST@CppParser@CppSharp@@QEAAXAEAPEAVTypeAlias@234@@Z")] + internal static extern void AddTypeAliases_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1CXXConstructExpr@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + EntryPoint="?clearTypeAliases@DeclarationContext@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearTypeAliases_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getArguments@CXXConstructExpr@AST@CppParser@CppSharp@@QEAAPEAVExpression@234@I@Z")] - internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); + EntryPoint="?getVariables@DeclarationContext@AST@CppParser@CppSharp@@QEAAPEAVVariable@234@I@Z")] + internal static extern global::System.IntPtr GetVariables_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addArguments@CXXConstructExpr@AST@CppParser@CppSharp@@QEAAXAEAPEAVExpression@234@@Z")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="?addVariables@DeclarationContext@AST@CppParser@CppSharp@@QEAAXAEAPEAVVariable@234@@Z")] + internal static extern void AddVariables_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearArguments@CXXConstructExpr@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="?clearVariables@DeclarationContext@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearVariables_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getArgumentsCount@CXXConstructExpr@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + EntryPoint="?getFriends@DeclarationContext@AST@CppParser@CppSharp@@QEAAPEAVFriend@234@I@Z")] + internal static extern global::System.IntPtr GetFriends_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addFriends@DeclarationContext@AST@CppParser@CppSharp@@QEAAXAEAPEAVFriend@234@@Z")] + internal static extern void AddFriends_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearFriends@DeclarationContext@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearFriends_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getNamespacesCount@DeclarationContext@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetNamespacesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getEnumsCount@DeclarationContext@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetEnumsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getFunctionsCount@DeclarationContext@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetFunctionsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getClassesCount@DeclarationContext@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetClassesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getTemplatesCount@DeclarationContext@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetTemplatesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getTypedefsCount@DeclarationContext@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetTypedefsCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getTypeAliasesCount@DeclarationContext@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetTypeAliasesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getVariablesCount@DeclarationContext@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetVariablesCount_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getFriendsCount@DeclarationContext@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetFriendsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new CXXConstructExpr(native.ToPointer(), skipVTables); + return new DeclarationContext(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.DeclarationContext __CreateInstance(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) { - return new CXXConstructExpr(native, skipVTables); + return new DeclarationContext(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.DeclarationContext.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); - global::CppSharp.Parser.AST.CXXConstructExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + global::CppSharp.Parser.AST.DeclarationContext.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) + private DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected CXXConstructExpr(void* native, bool skipVTables = false) + protected DeclarationContext(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -6477,10 +6342,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr _0) + public DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + } + + public DeclarationContext(global::CppSharp.Parser.AST.DeclarationContext _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.DeclarationContext.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -6491,7 +6365,7 @@ namespace CppSharp public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Statement __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -6499,152 +6373,997 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Expression GetArguments(uint i) + public global::CppSharp.Parser.AST.Namespace GetNamespaces(uint i) { - var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Expression __result0; + var __ret = __Internal.GetNamespaces_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Namespace __result0; if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); + else if (global::CppSharp.Parser.AST.Namespace.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Namespace) global::CppSharp.Parser.AST.Namespace.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Namespace.__CreateInstance(__ret); return __result0; } - public void AddArguments(global::CppSharp.Parser.AST.Expression s) + public void AddNamespaces(global::CppSharp.Parser.AST.Namespace s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + __Internal.AddNamespaces_0((__Instance + __PointerAdjustment), __arg0); } - public void ClearArguments() + public void ClearNamespaces() { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + __Internal.ClearNamespaces_0((__Instance + __PointerAdjustment)); } - public uint ArgumentsCount + public global::CppSharp.Parser.AST.Enumeration GetEnums(uint i) { - get - { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + var __ret = __Internal.GetEnums_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Enumeration __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Enumeration) global::CppSharp.Parser.AST.Enumeration.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Enumeration.__CreateInstance(__ret); + return __result0; } - } - public unsafe partial class Parameter : global::CppSharp.Parser.AST.Declaration, IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 224)] - public new partial struct __Internal + public void AddEnums(global::CppSharp.Parser.AST.Enumeration s) { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddEnums_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public void ClearEnums() + { + __Internal.ClearEnums_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(8)] - public global::System.IntPtr _namespace; + public global::CppSharp.Parser.AST.Function GetFunctions(uint i) + { + var __ret = __Internal.GetFunctions_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Function __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(__ret); + return __result0; + } - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; + public void AddFunctions(global::CppSharp.Parser.AST.Function s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFunctions_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(20)] - public int lineNumberStart; + public void ClearFunctions() + { + __Internal.ClearFunctions_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(24)] - public int lineNumberEnd; + public global::CppSharp.Parser.AST.Class GetClasses(uint i) + { + var __ret = __Internal.GetClasses_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Class __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(__ret); + return __result0; + } - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; + public void AddClasses(global::CppSharp.Parser.AST.Class s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddClasses_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(64)] - public global::Std.BasicString.__Internal USR; + public void ClearClasses() + { + __Internal.ClearClasses_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(96)] - public global::Std.BasicString.__Internal DebugText; + public global::CppSharp.Parser.AST.Template GetTemplates(uint i) + { + var __ret = __Internal.GetTemplates_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Template __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Template.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Template) global::CppSharp.Parser.AST.Template.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Template.__CreateInstance(__ret); + return __result0; + } - [FieldOffset(128)] - public byte isIncomplete; + public void AddTemplates(global::CppSharp.Parser.AST.Template s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddTemplates_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(129)] - public byte isDependent; + public void ClearTemplates() + { + __Internal.ClearTemplates_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(130)] - public byte isImplicit; + public global::CppSharp.Parser.AST.TypedefDecl GetTypedefs(uint i) + { + var __ret = __Internal.GetTypedefs_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.TypedefDecl __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.TypedefDecl) global::CppSharp.Parser.AST.TypedefDecl.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.TypedefDecl.__CreateInstance(__ret); + return __result0; + } - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; + public void AddTypedefs(global::CppSharp.Parser.AST.TypedefDecl s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddTypedefs_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(144)] - public uint definitionOrder; + public void ClearTypedefs() + { + __Internal.ClearTypedefs_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; + public global::CppSharp.Parser.AST.TypeAlias GetTypeAliases(uint i) + { + var __ret = __Internal.GetTypeAliases_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.TypeAlias __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.TypeAlias) global::CppSharp.Parser.AST.TypeAlias.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.TypeAlias.__CreateInstance(__ret); + return __result0; + } - [FieldOffset(176)] - public global::System.IntPtr originalPtr; + public void AddTypeAliases(global::CppSharp.Parser.AST.TypeAlias s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddTypeAliases_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(184)] - public global::System.IntPtr comment; + public void ClearTypeAliases() + { + __Internal.ClearTypeAliases_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(192)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + public global::CppSharp.Parser.AST.Variable GetVariables(uint i) + { + var __ret = __Internal.GetVariables_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Variable __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Variable.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Variable) global::CppSharp.Parser.AST.Variable.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Variable.__CreateInstance(__ret); + return __result0; + } - [FieldOffset(208)] - public byte isIndirect; + public void AddVariables(global::CppSharp.Parser.AST.Variable s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddVariables_0((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(209)] - public byte hasDefaultValue; + public void ClearVariables() + { + __Internal.ClearVariables_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(212)] - public uint index; + public global::CppSharp.Parser.AST.Friend GetFriends(uint i) + { + var __ret = __Internal.GetFriends_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Friend __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Friend.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Friend) global::CppSharp.Parser.AST.Friend.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Friend.__CreateInstance(__ret); + return __result0; + } - [FieldOffset(216)] - public global::System.IntPtr defaultArgument; + public void AddFriends(global::CppSharp.Parser.AST.Friend s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddFriends_0((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Parameter@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + public void ClearFriends() + { + __Internal.ClearFriends_0((__Instance + __PointerAdjustment)); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Parameter@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + public static implicit operator global::CppSharp.Parser.AST.DeclarationContext(global::CppSharp.Parser.AST.DeclarationKind kind) + { + return new global::CppSharp.Parser.AST.DeclarationContext(kind); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1Parameter@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + public bool IsAnonymous + { + get + { + return ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous != 0; + } + + set + { + ((global::CppSharp.Parser.AST.DeclarationContext.__Internal*) __Instance)->isAnonymous = (byte) (value ? 1 : 0); + } + } + + public uint NamespacesCount + { + get + { + var __ret = __Internal.GetNamespacesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + + public uint EnumsCount + { + get + { + var __ret = __Internal.GetEnumsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + + public uint FunctionsCount + { + get + { + var __ret = __Internal.GetFunctionsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + + public uint ClassesCount + { + get + { + var __ret = __Internal.GetClassesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + + public uint TemplatesCount + { + get + { + var __ret = __Internal.GetTemplatesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + + public uint TypedefsCount + { + get + { + var __ret = __Internal.GetTypedefsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + + public uint TypeAliasesCount + { + get + { + var __ret = __Internal.GetTypeAliasesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + + public uint VariablesCount + { + get + { + var __ret = __Internal.GetVariablesCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + + public uint FriendsCount + { + get + { + var __ret = __Internal.GetFriendsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } + } + + public unsafe partial class RawComment : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 80)] + public partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.RawCommentKind kind; + + [FieldOffset(8)] + public global::Std.BasicString.__Internal Text; + + [FieldOffset(40)] + public global::Std.BasicString.__Internal BriefText; + + [FieldOffset(72)] + public global::System.IntPtr fullCommentBlock; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0RawComment@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0RawComment@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??1RawComment@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getText@RawComment@AST@CppParser@CppSharp@@QEAAPEBDXZ")] + internal static extern global::System.IntPtr Text_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?setText@RawComment@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] + internal static extern void SetText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getBriefText@RawComment@AST@CppParser@CppSharp@@QEAAPEBDXZ")] + internal static extern global::System.IntPtr BriefText_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?setBriefText@RawComment@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] + internal static extern void SetBriefText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + } + + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new RawComment(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) + { + return new RawComment(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.RawComment.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); + global::CppSharp.Parser.AST.RawComment.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private RawComment(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected RawComment(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public RawComment() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public RawComment(global::CppSharp.Parser.AST.RawComment _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.RawComment __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.RawCommentKind Kind + { + get + { + return ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind; + } + + set + { + ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind = value; + } + } + + public global::CppSharp.Parser.AST.FullComment FullCommentBlock + { + get + { + global::CppSharp.Parser.AST.FullComment __result0; + if (((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FullComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock)) + __result0 = (global::CppSharp.Parser.AST.FullComment) global::CppSharp.Parser.AST.FullComment.NativeToManagedMap[((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock]; + else __result0 = global::CppSharp.Parser.AST.FullComment.__CreateInstance(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public string Text + { + get + { + var __ret = __Internal.Text_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetText_0((__Instance + __PointerAdjustment), value); + } + } + + public string BriefText + { + get + { + var __ret = __Internal.BriefText_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetBriefText_0((__Instance + __PointerAdjustment), value); + } + } + } + + public unsafe partial class PreprocessedEntity : IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 24)] + public partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.MacroLocation macroLocation; + + [FieldOffset(8)] + public global::System.IntPtr originalPtr; + + [FieldOffset(16)] + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0PreprocessedEntity@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0PreprocessedEntity@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + } + + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new PreprocessedEntity(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) + { + return new PreprocessedEntity(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); + *(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) ret = native; + return ret.ToPointer(); + } + + private PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected PreprocessedEntity(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public PreprocessedEntity() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) _0.__Instance); + } + + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.PreprocessedEntity __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.MacroLocation MacroLocation + { + get + { + return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation; + } + + set + { + ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation = value; + } + } + + public global::System.IntPtr OriginalPtr + { + get + { + return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr; + } + + set + { + ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; + } + } + + public global::CppSharp.Parser.AST.DeclarationKind Kind + { + get + { + return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind; + } + + set + { + ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind = value; + } + } + } + + public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 504)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; + + [FieldOffset(8)] + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(64)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(96)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(128)] + public byte isIncomplete; + + [FieldOffset(129)] + public byte isDependent; + + [FieldOffset(130)] + public byte isImplicit; + + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(144)] + public uint definitionOrder; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] + public global::System.IntPtr originalPtr; + + [FieldOffset(208)] + public global::System.IntPtr comment; + + [FieldOffset(216)] + internal global::Std.Vector.__Internal Namespaces; + + [FieldOffset(240)] + internal global::Std.Vector.__Internal Enums; + + [FieldOffset(264)] + internal global::Std.Vector.__Internal Functions; + + [FieldOffset(288)] + internal global::Std.Vector.__Internal Classes; + + [FieldOffset(312)] + internal global::Std.Vector.__Internal Templates; + + [FieldOffset(336)] + internal global::Std.Vector.__Internal Typedefs; + + [FieldOffset(360)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(384)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(408)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(432)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(448)] + public byte isAnonymous; + + [FieldOffset(456)] + public global::CppSharp.Parser.AST.Enumeration.EnumModifiers modifiers; + + [FieldOffset(464)] + public global::System.IntPtr type; + + [FieldOffset(472)] + public global::System.IntPtr builtinType; + + [FieldOffset(480)] + internal global::Std.Vector.__Internal Items; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0Enumeration@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0Enumeration@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??1Enumeration@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getItems@Enumeration@AST@CppParser@CppSharp@@QEAAPEAVItem@1234@I@Z")] + internal static extern global::System.IntPtr GetItems_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addItems@Enumeration@AST@CppParser@CppSharp@@QEAAXAEAPEAVItem@1234@@Z")] + internal static extern void AddItems_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearItems@Enumeration@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearItems_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getItemsCount@Enumeration@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetItemsCount_0(global::System.IntPtr instance); + } + + [Flags] + public enum EnumModifiers + { + Anonymous = 1, + Scoped = 2, + Flags = 4 + } + + public unsafe partial class Item : global::CppSharp.Parser.AST.Declaration, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 256)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; + + [FieldOffset(8)] + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(64)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(96)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(128)] + public byte isIncomplete; + + [FieldOffset(129)] + public byte isDependent; + + [FieldOffset(130)] + public byte isImplicit; + + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(144)] + public uint definitionOrder; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] + public global::System.IntPtr originalPtr; + + [FieldOffset(208)] + public global::System.IntPtr comment; + + [FieldOffset(216)] + public global::Std.BasicString.__Internal Expression; + + [FieldOffset(248)] + public ulong value; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0Item@Enumeration@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0Item@Enumeration@AST@CppParser@CppSharp@@QEAA@AEBV01234@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??1Item@Enumeration@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getExpression@Item@Enumeration@AST@CppParser@CppSharp@@QEAAPEBDXZ")] + internal static extern global::System.IntPtr Expression_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?setExpression@Item@Enumeration@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] + internal static extern void SetExpression_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + } + + internal static new global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Item(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) + { + return new Item(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); + global::CppSharp.Parser.AST.Enumeration.Item.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private Item(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected Item(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public Item() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public Item(global::CppSharp.Parser.AST.Enumeration.Item _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public ulong Value + { + get + { + return ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value; + } + + set + { + ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value = value; + } + } + + public string Expression + { + get + { + var __ret = __Internal.Expression_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetExpression_0((__Instance + __PointerAdjustment), value); + } + } } - internal static new global::CppSharp.Parser.AST.Parameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Parameter(native.ToPointer(), skipVTables); + return new Enumeration(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Parameter __CreateInstance(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) { - return new Parameter(native, skipVTables); + return new Enumeration(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Parameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); - global::CppSharp.Parser.AST.Parameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + global::CppSharp.Parser.AST.Enumeration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Parameter(global::CppSharp.Parser.AST.Parameter.__Internal native, bool skipVTables = false) + private Enumeration(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Parameter(void* native, bool skipVTables = false) + protected Enumeration(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -6653,19 +7372,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Parameter() + public Enumeration() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Parameter(global::CppSharp.Parser.AST.Parameter _0) + public Enumeration(global::CppSharp.Parser.AST.Enumeration _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Parameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -6684,80 +7403,92 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public global::CppSharp.Parser.AST.Enumeration.Item GetItems(uint i) { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType); - } + var __ret = __Internal.GetItems_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Enumeration.Item __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Enumeration.Item) global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Enumeration.Item.__CreateInstance(__ret); + return __result0; + } - set - { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + public void AddItems(global::CppSharp.Parser.AST.Enumeration.Item s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddItems_0((__Instance + __PointerAdjustment), __arg0); } - public bool IsIndirect + public void ClearItems() + { + __Internal.ClearItems_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.Enumeration.EnumModifiers Modifiers { get { - return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect != 0; + return ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers; } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->isIndirect = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers = value; } } - public bool HasDefaultValue + public global::CppSharp.Parser.AST.Type Type { get { - return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue != 0; + global::CppSharp.Parser.AST.Type __result0; + if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type)) + __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type]; + else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type); + return __result0; } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->hasDefaultValue = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public uint Index + public global::CppSharp.Parser.AST.BuiltinType BuiltinType { get { - return ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index; + global::CppSharp.Parser.AST.BuiltinType __result0; + if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType)) + __result0 = (global::CppSharp.Parser.AST.BuiltinType) global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType]; + else __result0 = global::CppSharp.Parser.AST.BuiltinType.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType); + return __result0; } set { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->index = value; + ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public global::CppSharp.Parser.AST.Expression DefaultArgument + public uint ItemsCount { get { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + var __ret = __Internal.GetItemsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } public unsafe partial class Function : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 384)] + [StructLayout(LayoutKind.Explicit, Size = 408)] public new partial struct __Internal { [FieldOffset(0)] @@ -6806,63 +7537,66 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] + [FieldOffset(216)] public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(208)] + [FieldOffset(232)] public byte isReturnIndirect; - [FieldOffset(209)] + [FieldOffset(233)] public byte hasThisReturn; - [FieldOffset(210)] + [FieldOffset(234)] public byte isConstExpr; - [FieldOffset(211)] + [FieldOffset(235)] public byte isVariadic; - [FieldOffset(212)] + [FieldOffset(236)] public byte isInline; - [FieldOffset(213)] + [FieldOffset(237)] public byte isPure; - [FieldOffset(214)] + [FieldOffset(238)] public byte isDeleted; - [FieldOffset(216)] + [FieldOffset(240)] public global::CppSharp.Parser.AST.FriendKind friendKind; - [FieldOffset(220)] + [FieldOffset(244)] public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - [FieldOffset(224)] + [FieldOffset(248)] public global::Std.BasicString.__Internal Mangled; - [FieldOffset(256)] + [FieldOffset(280)] public global::Std.BasicString.__Internal Signature; - [FieldOffset(288)] + [FieldOffset(312)] public global::Std.BasicString.__Internal Body; - [FieldOffset(320)] + [FieldOffset(344)] public global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(328)] + [FieldOffset(352)] internal global::Std.Vector.__Internal Parameters; - [FieldOffset(352)] + [FieldOffset(376)] public global::System.IntPtr specializationInfo; - [FieldOffset(360)] + [FieldOffset(384)] public global::System.IntPtr instantiatedFrom; - [FieldOffset(368)] + [FieldOffset(392)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] @@ -7263,9 +7997,152 @@ namespace CppSharp } } - public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable + public unsafe partial class TypedefDecl : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 232)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; + + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; + + [FieldOffset(8)] + public global::System.IntPtr _namespace; + + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(64)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(96)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(128)] + public byte isIncomplete; + + [FieldOffset(129)] + public byte isDependent; + + [FieldOffset(130)] + public byte isImplicit; + + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(144)] + public uint definitionOrder; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] + public global::System.IntPtr originalPtr; + + [FieldOffset(208)] + public global::System.IntPtr comment; + + [FieldOffset(216)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0TypedefDecl@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0TypedefDecl@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??1TypedefDecl@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); + } + + internal static new global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new TypedefDecl(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.AST.TypedefDecl __CreateInstance(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) + { + return new TypedefDecl(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.AST.TypedefDecl.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + global::CppSharp.Parser.AST.TypedefDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } + + private TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected TypedefDecl(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public TypedefDecl() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public TypedefDecl(global::CppSharp.Parser.AST.TypedefDecl _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypedefDecl.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + } + + public unsafe partial class TypeAlias : global::CppSharp.Parser.AST.TypedefNameDecl, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 424)] + [StructLayout(LayoutKind.Explicit, Size = 240)] public new partial struct __Internal { [FieldOffset(0)] @@ -7314,139 +8191,61 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] - public global::System.IntPtr originalPtr; - - [FieldOffset(184)] - public global::System.IntPtr comment; + internal global::Std.Vector.__Internal Redeclarations; - [FieldOffset(192)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; + [FieldOffset(200)] + public global::System.IntPtr originalPtr; [FieldOffset(208)] - public byte isReturnIndirect; - - [FieldOffset(209)] - public byte hasThisReturn; - - [FieldOffset(210)] - public byte isConstExpr; - - [FieldOffset(211)] - public byte isVariadic; - - [FieldOffset(212)] - public byte isInline; - - [FieldOffset(213)] - public byte isPure; - - [FieldOffset(214)] - public byte isDeleted; + public global::System.IntPtr comment; [FieldOffset(216)] - public global::CppSharp.Parser.AST.FriendKind friendKind; - - [FieldOffset(220)] - public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - - [FieldOffset(224)] - public global::Std.BasicString.__Internal Mangled; - - [FieldOffset(256)] - public global::Std.BasicString.__Internal Signature; - - [FieldOffset(288)] - public global::Std.BasicString.__Internal Body; - - [FieldOffset(320)] - public global::CppSharp.Parser.AST.CallingConvention callingConvention; - - [FieldOffset(328)] - internal global::Std.Vector.__Internal Parameters; - - [FieldOffset(352)] - public global::System.IntPtr specializationInfo; - - [FieldOffset(360)] - public global::System.IntPtr instantiatedFrom; - - [FieldOffset(368)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(384)] - public byte isVirtual; - - [FieldOffset(385)] - public byte isStatic; - - [FieldOffset(386)] - public byte isConst; - - [FieldOffset(387)] - public byte isExplicit; - - [FieldOffset(388)] - public byte isOverride; - - [FieldOffset(392)] - public global::CppSharp.Parser.AST.CXXMethodKind methodKind; - - [FieldOffset(396)] - public byte isDefaultConstructor; - - [FieldOffset(397)] - public byte isCopyConstructor; - - [FieldOffset(398)] - public byte isMoveConstructor; - - [FieldOffset(400)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; - - [FieldOffset(416)] - public global::CppSharp.Parser.AST.RefQualifierKind refQualifier; + [FieldOffset(232)] + public global::System.IntPtr describedAliasTemplate; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Method@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0TypeAlias@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Method@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0TypeAlias@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1Method@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1TypeAlias@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Method(native.ToPointer(), skipVTables); + return new TypeAlias(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Method __CreateInstance(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypeAlias __CreateInstance(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) { - return new Method(native, skipVTables); + return new TypeAlias(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Method.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAlias.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); - global::CppSharp.Parser.AST.Method.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); + global::CppSharp.Parser.AST.TypeAlias.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Method(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) + private TypeAlias(global::CppSharp.Parser.AST.TypeAlias.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Method(void* native, bool skipVTables = false) + protected TypeAlias(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -7455,19 +8254,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Method() + public TypeAlias() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Method(global::CppSharp.Parser.AST.Method _0) + public TypeAlias(global::CppSharp.Parser.AST.TypeAlias _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAlias.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -7486,153 +8285,28 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public bool IsVirtual - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); - } - } - - public bool IsStatic - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic = (byte) (value ? 1 : 0); - } - } - - public bool IsConst - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst = (byte) (value ? 1 : 0); - } - } - - public bool IsExplicit - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit = (byte) (value ? 1 : 0); - } - } - - public bool IsOverride - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride = (byte) (value ? 1 : 0); - } - } - - public global::CppSharp.Parser.AST.CXXMethodKind MethodKind - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind = value; - } - } - - public bool IsDefaultConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor = (byte) (value ? 1 : 0); - } - } - - public bool IsCopyConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor = (byte) (value ? 1 : 0); - } - } - - public bool IsMoveConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor = (byte) (value ? 1 : 0); - } - } - - public global::CppSharp.Parser.AST.QualifiedType ConversionType - { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType); - } - - set - { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.RefQualifierKind RefQualifier + public global::CppSharp.Parser.AST.TypeAliasTemplate DescribedAliasTemplate { get { - return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier; + global::CppSharp.Parser.AST.TypeAliasTemplate __result0; + if (((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate)) + __result0 = (global::CppSharp.Parser.AST.TypeAliasTemplate) global::CppSharp.Parser.AST.TypeAliasTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate]; + else __result0 = global::CppSharp.Parser.AST.TypeAliasTemplate.__CreateInstance(((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate); + return __result0; } set { - ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value; + ((global::CppSharp.Parser.AST.TypeAlias.__Internal*) __Instance)->describedAliasTemplate = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } } - public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + public unsafe partial class Namespace : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 480)] + [StructLayout(LayoutKind.Explicit, Size = 464)] public new partial struct __Internal { [FieldOffset(0)] @@ -7681,305 +8355,250 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(216)] - internal global::Std.Vector.__Internal Enums; + internal global::Std.Vector.__Internal Namespaces; [FieldOffset(240)] - internal global::Std.Vector.__Internal Functions; + internal global::Std.Vector.__Internal Enums; [FieldOffset(264)] - internal global::Std.Vector.__Internal Classes; + internal global::Std.Vector.__Internal Functions; [FieldOffset(288)] - internal global::Std.Vector.__Internal Templates; + internal global::Std.Vector.__Internal Classes; [FieldOffset(312)] - internal global::Std.Vector.__Internal Typedefs; + internal global::Std.Vector.__Internal Templates; [FieldOffset(336)] - internal global::Std.Vector.__Internal TypeAliases; + internal global::Std.Vector.__Internal Typedefs; [FieldOffset(360)] - internal global::Std.Vector.__Internal Variables; + internal global::Std.Vector.__Internal TypeAliases; [FieldOffset(384)] - internal global::Std.Vector.__Internal Friends; + internal global::Std.Vector.__Internal Variables; [FieldOffset(408)] - internal global::Std.Map.__Internal anonymous; - - [FieldOffset(424)] - public byte isAnonymous; + internal global::Std.Vector.__Internal Friends; [FieldOffset(432)] - public global::CppSharp.Parser.AST.Enumeration.EnumModifiers modifiers; - - [FieldOffset(440)] - public global::System.IntPtr type; + internal global::Std.Map.__Internal anonymous; [FieldOffset(448)] - public global::System.IntPtr builtinType; + public byte isAnonymous; [FieldOffset(456)] - internal global::Std.Vector.__Internal Items; + public byte isInline; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Enumeration@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0Namespace@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Enumeration@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0Namespace@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1Enumeration@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1Namespace@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getItems@Enumeration@AST@CppParser@CppSharp@@QEAAPEAVItem@1234@I@Z")] - internal static extern global::System.IntPtr GetItems_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addItems@Enumeration@AST@CppParser@CppSharp@@QEAAXAEAPEAVItem@1234@@Z")] - internal static extern void AddItems_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearItems@Enumeration@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearItems_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getItemsCount@Enumeration@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetItemsCount_0(global::System.IntPtr instance); } - [Flags] - public enum EnumModifiers + internal static new global::CppSharp.Parser.AST.Namespace __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - Anonymous = 1, - Scoped = 2, - Flags = 4 + return new Namespace(native.ToPointer(), skipVTables); } - public unsafe partial class Item : global::CppSharp.Parser.AST.Declaration, IDisposable + internal static global::CppSharp.Parser.AST.Namespace __CreateInstance(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) { - [StructLayout(LayoutKind.Explicit, Size = 232)] - public new partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; + return new Namespace(native, skipVTables); + } - [FieldOffset(64)] - public global::Std.BasicString.__Internal USR; + private static void* __CopyValue(global::CppSharp.Parser.AST.Namespace.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + global::CppSharp.Parser.AST.Namespace.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [FieldOffset(96)] - public global::Std.BasicString.__Internal DebugText; + private Namespace(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [FieldOffset(128)] - public byte isIncomplete; + protected Namespace(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [FieldOffset(129)] - public byte isDependent; + public Namespace() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } - [FieldOffset(130)] - public byte isImplicit; + public Namespace(global::CppSharp.Parser.AST.Namespace _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - [FieldOffset(144)] - public uint definitionOrder; + public bool IsInline + { + get + { + return ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline != 0; + } - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; + set + { + ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline = (byte) (value ? 1 : 0); + } + } + } - [FieldOffset(176)] - public global::System.IntPtr originalPtr; + public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Template, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 248)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.DeclarationKind kind; - [FieldOffset(184)] - public global::System.IntPtr comment; + [FieldOffset(4)] + public global::CppSharp.Parser.AST.AccessSpecifier access; - [FieldOffset(192)] - public global::Std.BasicString.__Internal Expression; + [FieldOffset(8)] + public global::System.IntPtr _namespace; - [FieldOffset(224)] - public ulong value; + [FieldOffset(16)] + public global::CppSharp.Parser.SourceLocation.__Internal location; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Item@Enumeration@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + [FieldOffset(20)] + public int lineNumberStart; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Item@Enumeration@AST@CppParser@CppSharp@@QEAA@AEBV01234@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(24)] + public int lineNumberEnd; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1Item@Enumeration@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getExpression@Item@Enumeration@AST@CppParser@CppSharp@@QEAAPEBDXZ")] - internal static extern global::System.IntPtr Expression_0(global::System.IntPtr instance); + [FieldOffset(64)] + public global::Std.BasicString.__Internal USR; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?setExpression@Item@Enumeration@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] - internal static extern void SetExpression_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - } + [FieldOffset(96)] + public global::Std.BasicString.__Internal DebugText; - internal static new global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new Item(native.ToPointer(), skipVTables); - } + [FieldOffset(128)] + public byte isIncomplete; - internal static global::CppSharp.Parser.AST.Enumeration.Item __CreateInstance(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) - { - return new Item(native, skipVTables); - } + [FieldOffset(129)] + public byte isDependent; - private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); - global::CppSharp.Parser.AST.Enumeration.Item.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [FieldOffset(130)] + public byte isImplicit; - private Item(global::CppSharp.Parser.AST.Enumeration.Item.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; - protected Item(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [FieldOffset(144)] + public uint definitionOrder; - public Item() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; - public Item(global::CppSharp.Parser.AST.Enumeration.Item _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.Item.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } + [FieldOffset(200)] + public global::System.IntPtr originalPtr; - public ulong Value - { - get - { - return ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value; - } + [FieldOffset(208)] + public global::System.IntPtr comment; - set - { - ((global::CppSharp.Parser.AST.Enumeration.Item.__Internal*) __Instance)->value = value; - } - } + [FieldOffset(216)] + public global::System.IntPtr TemplatedDecl; - public string Expression - { - get - { - var __ret = __Internal.Expression_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } + [FieldOffset(224)] + internal global::Std.Vector.__Internal Parameters; - set - { - __Internal.SetExpression_0((__Instance + __PointerAdjustment), value); - } - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0TypeAliasTemplate@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0TypeAliasTemplate@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??1TypeAliasTemplate@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Enumeration(native.ToPointer(), skipVTables); + return new TypeAliasTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Enumeration __CreateInstance(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) { - return new Enumeration(native, skipVTables); + return new TypeAliasTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Enumeration.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); - global::CppSharp.Parser.AST.Enumeration.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); + global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Enumeration(global::CppSharp.Parser.AST.Enumeration.__Internal native, bool skipVTables = false) + private TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Enumeration(void* native, bool skipVTables = false) + protected TypeAliasTemplate(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -7988,19 +8607,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Enumeration() + public TypeAliasTemplate() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Enumeration(global::CppSharp.Parser.AST.Enumeration _0) + public TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Enumeration.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8018,93 +8637,11 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - - public global::CppSharp.Parser.AST.Enumeration.Item GetItems(uint i) - { - var __ret = __Internal.GetItems_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Enumeration.Item __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Enumeration.Item) global::CppSharp.Parser.AST.Enumeration.Item.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Enumeration.Item.__CreateInstance(__ret); - return __result0; - } - - public void AddItems(global::CppSharp.Parser.AST.Enumeration.Item s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddItems_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearItems() - { - __Internal.ClearItems_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.Enumeration.EnumModifiers Modifiers - { - get - { - return ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers; - } - - set - { - ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->modifiers = value; - } - } - - public global::CppSharp.Parser.AST.Type Type - { - get - { - global::CppSharp.Parser.AST.Type __result0; - if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type)) - __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type]; - else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public global::CppSharp.Parser.AST.BuiltinType BuiltinType - { - get - { - global::CppSharp.Parser.AST.BuiltinType __result0; - if (((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType)) - __result0 = (global::CppSharp.Parser.AST.BuiltinType) global::CppSharp.Parser.AST.BuiltinType.NativeToManagedMap[((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType]; - else __result0 = global::CppSharp.Parser.AST.BuiltinType.__CreateInstance(((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Enumeration.__Internal*) __Instance)->builtinType = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public uint ItemsCount - { - get - { - var __ret = __Internal.GetItemsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } } - public unsafe partial class Variable : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class ClassTemplate : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 240)] + [StructLayout(LayoutKind.Explicit, Size = 272)] public new partial struct __Internal { [FieldOffset(0)] @@ -8153,68 +8690,84 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - public global::Std.BasicString.__Internal Mangled; + [FieldOffset(216)] + public global::System.IntPtr TemplatedDecl; [FieldOffset(224)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + internal global::Std.Vector.__Internal Parameters; + + [FieldOffset(248)] + internal global::Std.Vector.__Internal Specializations; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Variable@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0ClassTemplate@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Variable@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0ClassTemplate@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1Variable@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1ClassTemplate@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getMangled@Variable@AST@CppParser@CppSharp@@QEAAPEBDXZ")] - internal static extern global::System.IntPtr Mangled_0(global::System.IntPtr instance); + EntryPoint="?getSpecializations@ClassTemplate@AST@CppParser@CppSharp@@QEAAPEAVClassTemplateSpecialization@234@I@Z")] + internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?setMangled@Variable@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] - internal static extern void SetMangled_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + EntryPoint="?addSpecializations@ClassTemplate@AST@CppParser@CppSharp@@QEAAXAEAPEAVClassTemplateSpecialization@234@@Z")] + internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearSpecializations@ClassTemplate@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getSpecializationsCount@ClassTemplate@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Variable __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Variable(native.ToPointer(), skipVTables); + return new ClassTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Variable __CreateInstance(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) { - return new Variable(native, skipVTables); + return new ClassTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Variable.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); - global::CppSharp.Parser.AST.Variable.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); + global::CppSharp.Parser.AST.ClassTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Variable(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) + private ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Variable(void* native, bool skipVTables = false) + protected ClassTemplate(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -8223,19 +8776,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Variable() + public ClassTemplate() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Variable(global::CppSharp.Parser.AST.Variable _0) + public ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8254,191 +8807,245 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.QualifiedType QualifiedType + public global::CppSharp.Parser.AST.ClassTemplateSpecialization GetSpecializations(uint i) + { + var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.ClassTemplateSpecialization __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.ClassTemplateSpecialization) global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.ClassTemplateSpecialization.__CreateInstance(__ret); + return __result0; + } + + public void AddSpecializations(global::CppSharp.Parser.AST.ClassTemplateSpecialization s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearSpecializations() { - get - { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } + __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); } - public string Mangled + public uint SpecializationsCount { get { - var __ret = __Internal.Mangled_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetMangled_0((__Instance + __PointerAdjustment), value); + var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class BaseClassSpecifier : IDisposable + public unsafe partial class FunctionTemplate : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 272)] + public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::CppSharp.Parser.AST.DeclarationKind kind; [FieldOffset(4)] - public byte isVirtual; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(8)] - public global::System.IntPtr type; + public global::System.IntPtr _namespace; [FieldOffset(16)] - public int offset; + public global::CppSharp.Parser.SourceLocation.__Internal location; + + [FieldOffset(20)] + public int lineNumberStart; + + [FieldOffset(24)] + public int lineNumberEnd; + + [FieldOffset(32)] + public global::Std.BasicString.__Internal Name; + + [FieldOffset(64)] + public global::Std.BasicString.__Internal USR; + + [FieldOffset(96)] + public global::Std.BasicString.__Internal DebugText; + + [FieldOffset(128)] + public byte isIncomplete; + + [FieldOffset(129)] + public byte isDependent; + + [FieldOffset(130)] + public byte isImplicit; + + [FieldOffset(136)] + public global::System.IntPtr completeDeclaration; + + [FieldOffset(144)] + public uint definitionOrder; + + [FieldOffset(152)] + internal global::Std.Vector.__Internal PreprocessedEntities; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] + public global::System.IntPtr originalPtr; + + [FieldOffset(208)] + public global::System.IntPtr comment; + + [FieldOffset(216)] + public global::System.IntPtr TemplatedDecl; + + [FieldOffset(224)] + internal global::Std.Vector.__Internal Parameters; + + [FieldOffset(248)] + internal global::Std.Vector.__Internal Specializations; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0BaseClassSpecifier@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0FunctionTemplate@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0BaseClassSpecifier@AST@CppParser@CppSharp@@QEAA@AEBU0123@@Z")] + EntryPoint="??0FunctionTemplate@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - public global::System.IntPtr __Instance { get; protected set; } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??1FunctionTemplate@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); - protected void*[] __OriginalVTables; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getSpecializations@FunctionTemplate@AST@CppParser@CppSharp@@QEAAPEAVFunctionTemplateSpecialization@234@I@Z")] + internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); - protected bool __ownsNativeInstance; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addSpecializations@FunctionTemplate@AST@CppParser@CppSharp@@QEAAXAEAPEAVFunctionTemplateSpecialization@234@@Z")] + internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); - internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearSpecializations@FunctionTemplate@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getSpecializationsCount@FunctionTemplate@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); + } + + internal static new global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new BaseClassSpecifier(native.ToPointer(), skipVTables); + return new FunctionTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) { - return new BaseClassSpecifier(native, skipVTables); + return new FunctionTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); - *(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) ret = native; + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); + global::CppSharp.Parser.AST.FunctionTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) + private FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected BaseClassSpecifier(void* native, bool skipVTables = false) + protected FunctionTemplate(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public BaseClassSpecifier() + public FunctionTemplate() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier _0) + public FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.BaseClassSpecifier __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.AccessSpecifier Access + public global::CppSharp.Parser.AST.FunctionTemplateSpecialization GetSpecializations(uint i) { - get - { - return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access = value; - } + var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.FunctionTemplateSpecialization __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.FunctionTemplateSpecialization) global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__CreateInstance(__ret); + return __result0; } - public bool IsVirtual + public void AddSpecializations(global::CppSharp.Parser.AST.FunctionTemplateSpecialization s) { - get - { - return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual != 0; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.Type Type + public void ClearSpecializations() { - get - { - global::CppSharp.Parser.AST.Type __result0; - if (((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type)) - __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type]; - else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); } - public int Offset + public uint SpecializationsCount { get { - return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset; - } - - set - { - ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset = value; + var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } - public unsafe partial class Field : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class Variable : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 224)] + [StructLayout(LayoutKind.Explicit, Size = 264)] public new partial struct __Internal { [FieldOffset(0)] @@ -8487,64 +9094,71 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] - public global::System.IntPtr originalPtr; + internal global::Std.Vector.__Internal Redeclarations; - [FieldOffset(184)] - public global::System.IntPtr comment; - - [FieldOffset(192)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + [FieldOffset(200)] + public global::System.IntPtr originalPtr; [FieldOffset(208)] - public global::System.IntPtr _class; + public global::System.IntPtr comment; [FieldOffset(216)] - public byte isBitField; + public global::Std.BasicString.__Internal Mangled; - [FieldOffset(220)] - public uint bitWidth; + [FieldOffset(248)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Field@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0Variable@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Field@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="??0Variable@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??1Variable@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getMangled@Variable@AST@CppParser@CppSharp@@QEAAPEBDXZ")] + internal static extern global::System.IntPtr Mangled_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1Field@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + EntryPoint="?setMangled@Variable@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] + internal static extern void SetMangled_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - internal static new global::CppSharp.Parser.AST.Field __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Variable __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Field(native.ToPointer(), skipVTables); + return new Variable(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Field __CreateInstance(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Variable __CreateInstance(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) { - return new Field(native, skipVTables); + return new Variable(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Field.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Variable.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); - global::CppSharp.Parser.AST.Field.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); + global::CppSharp.Parser.AST.Variable.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Field(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) + private Variable(global::CppSharp.Parser.AST.Variable.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Field(void* native, bool skipVTables = false) + protected Variable(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -8553,19 +9167,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Field() + public Variable() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Field(global::CppSharp.Parser.AST.Field _0) + public Variable(global::CppSharp.Parser.AST.Variable _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Variable.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8588,63 +9202,33 @@ namespace CppSharp { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType); - } - - set - { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; - } - } - - public global::CppSharp.Parser.AST.Class Class - { - get - { - global::CppSharp.Parser.AST.Class __result0; - if (((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class)) - __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class]; - else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public bool IsBitField - { - get - { - return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField != 0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Variable.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public uint BitWidth + public string Mangled { get { - return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth; + var __ret = __Internal.Mangled_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth = value; + __Internal.SetMangled_0((__Instance + __PointerAdjustment), value); } } } - public unsafe partial class AccessSpecifierDecl : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class Friend : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 192)] + [StructLayout(LayoutKind.Explicit, Size = 224)] public new partial struct __Internal { [FieldOffset(0)] @@ -8693,52 +9277,58 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; + [FieldOffset(216)] + public global::System.IntPtr declaration; + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0AccessSpecifierDecl@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0Friend@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0AccessSpecifierDecl@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0Friend@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1AccessSpecifierDecl@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1Friend@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Friend __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new AccessSpecifierDecl(native.ToPointer(), skipVTables); + return new Friend(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Friend __CreateInstance(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) { - return new AccessSpecifierDecl(native, skipVTables); + return new Friend(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Friend.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); - global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); + global::CppSharp.Parser.AST.Friend.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) + private Friend(global::CppSharp.Parser.AST.Friend.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected AccessSpecifierDecl(void* native, bool skipVTables = false) + protected Friend(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -8747,19 +9337,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public AccessSpecifierDecl() + public Friend() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl _0) + public Friend(global::CppSharp.Parser.AST.Friend _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Friend.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -8777,263 +9367,222 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + + public global::CppSharp.Parser.AST.Declaration Declaration + { + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Friend.__Internal*) __Instance)->declaration = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } } - public unsafe partial class Class : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + public unsafe partial class Statement : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 552)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 48)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; - - [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(64)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(96)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(128)] - public byte isIncomplete; - - [FieldOffset(129)] - public byte isDependent; - - [FieldOffset(130)] - public byte isImplicit; - - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(144)] - public uint definitionOrder; - - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(176)] - public global::System.IntPtr originalPtr; - - [FieldOffset(184)] - public global::System.IntPtr comment; - - [FieldOffset(192)] - internal global::Std.Vector.__Internal Namespaces; - - [FieldOffset(216)] - internal global::Std.Vector.__Internal Enums; - - [FieldOffset(240)] - internal global::Std.Vector.__Internal Functions; - - [FieldOffset(264)] - internal global::Std.Vector.__Internal Classes; - - [FieldOffset(288)] - internal global::Std.Vector.__Internal Templates; - - [FieldOffset(312)] - internal global::Std.Vector.__Internal Typedefs; - - [FieldOffset(336)] - internal global::Std.Vector.__Internal TypeAliases; - - [FieldOffset(360)] - internal global::Std.Vector.__Internal Variables; - - [FieldOffset(384)] - internal global::Std.Vector.__Internal Friends; - - [FieldOffset(408)] - internal global::Std.Map.__Internal anonymous; - - [FieldOffset(424)] - public byte isAnonymous; - - [FieldOffset(432)] - internal global::Std.Vector.__Internal Bases; - - [FieldOffset(456)] - internal global::Std.Vector.__Internal Fields; - - [FieldOffset(480)] - internal global::Std.Vector.__Internal Methods; - - [FieldOffset(504)] - internal global::Std.Vector.__Internal Specifiers; - - [FieldOffset(528)] - public byte isPOD; - - [FieldOffset(529)] - public byte isAbstract; - - [FieldOffset(530)] - public byte isUnion; - - [FieldOffset(531)] - public byte isDynamic; - - [FieldOffset(532)] - public byte isPolymorphic; - - [FieldOffset(533)] - public byte hasNonTrivialDefaultConstructor; - - [FieldOffset(534)] - public byte hasNonTrivialCopyConstructor; - - [FieldOffset(535)] - public byte hasNonTrivialDestructor; - - [FieldOffset(536)] - public byte isExternCContext; - - [FieldOffset(537)] - public byte isInjected; + public global::CppSharp.Parser.AST.StatementClass _class; - [FieldOffset(544)] - public global::System.IntPtr layout; + [FieldOffset(8)] + public global::System.IntPtr decl; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Class@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + [FieldOffset(16)] + public global::Std.BasicString.__Internal String; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Class@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0Statement@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1Class@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1Statement@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getBases@Class@AST@CppParser@CppSharp@@QEAAPEAUBaseClassSpecifier@234@I@Z")] - internal static extern global::System.IntPtr GetBases_0(global::System.IntPtr instance, uint i); + EntryPoint="?getString@Statement@AST@CppParser@CppSharp@@QEAAPEBDXZ")] + internal static extern global::System.IntPtr String_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addBases@Class@AST@CppParser@CppSharp@@QEAAXAEAPEAUBaseClassSpecifier@234@@Z")] - internal static extern void AddBases_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="?setString@Statement@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] + internal static extern void SetString_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearBases@Class@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearBases_0(global::System.IntPtr instance); + public global::System.IntPtr __Instance { get; protected set; } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getFields@Class@AST@CppParser@CppSharp@@QEAAPEAVField@234@I@Z")] - internal static extern global::System.IntPtr GetFields_0(global::System.IntPtr instance, uint i); + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + protected void*[] __OriginalVTables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addFields@Class@AST@CppParser@CppSharp@@QEAAXAEAPEAVField@234@@Z")] - internal static extern void AddFields_0(global::System.IntPtr instance, global::System.IntPtr s); + protected bool __ownsNativeInstance; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearFields@Class@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearFields_0(global::System.IntPtr instance); + internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Statement(native.ToPointer(), skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getMethods@Class@AST@CppParser@CppSharp@@QEAAPEAVMethod@234@I@Z")] - internal static extern global::System.IntPtr GetMethods_0(global::System.IntPtr instance, uint i); + internal static global::CppSharp.Parser.AST.Statement __CreateInstance(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + { + return new Statement(native, skipVTables); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addMethods@Class@AST@CppParser@CppSharp@@QEAAXAEAPEAVMethod@234@@Z")] - internal static extern void AddMethods_0(global::System.IntPtr instance, global::System.IntPtr s); + private static void* __CopyValue(global::CppSharp.Parser.AST.Statement.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); + global::CppSharp.Parser.AST.Statement.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearMethods@Class@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearMethods_0(global::System.IntPtr instance); + private Statement(global::CppSharp.Parser.AST.Statement.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getSpecifiers@Class@AST@CppParser@CppSharp@@QEAAPEAVAccessSpecifierDecl@234@I@Z")] - internal static extern global::System.IntPtr GetSpecifiers_0(global::System.IntPtr instance, uint i); + protected Statement(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addSpecifiers@Class@AST@CppParser@CppSharp@@QEAAXAEAPEAVAccessSpecifierDecl@234@@Z")] - internal static extern void AddSpecifiers_0(global::System.IntPtr instance, global::System.IntPtr s); + public Statement(global::CppSharp.Parser.AST.Statement _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Statement.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearSpecifiers@Class@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearSpecifiers_0(global::System.IntPtr instance); + public void Dispose() + { + Dispose(disposing: true); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getBasesCount@Class@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetBasesCount_0(global::System.IntPtr instance); + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Statement __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getFieldsCount@Class@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetFieldsCount_0(global::System.IntPtr instance); + public global::CppSharp.Parser.AST.StatementClass Class + { + get + { + return ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class; + } + + set + { + ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->_class = value; + } + } + + public global::CppSharp.Parser.AST.Declaration Decl + { + get + { + global::CppSharp.Parser.AST.Declaration __result0; + if (((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl)) + __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl]; + else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.Statement.__Internal*) __Instance)->decl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public string String + { + get + { + var __ret = __Internal.String_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); + } + + set + { + __Internal.SetString_0((__Instance + __PointerAdjustment), value); + } + } + } + + public unsafe partial class Expression : global::CppSharp.Parser.AST.Statement, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 48)] + public new partial struct __Internal + { + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; + + [FieldOffset(8)] + public global::System.IntPtr decl; + + [FieldOffset(16)] + public global::Std.BasicString.__Internal String; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getMethodsCount@Class@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetMethodsCount_0(global::System.IntPtr instance); + EntryPoint="??0Expression@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getSpecifiersCount@Class@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetSpecifiersCount_0(global::System.IntPtr instance); + EntryPoint="??1Expression@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.Class __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Expression __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Class(native.ToPointer(), skipVTables); + return new Expression(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Class __CreateInstance(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Expression __CreateInstance(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) { - return new Class(native, skipVTables); + return new Expression(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Class.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Expression.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); - global::CppSharp.Parser.AST.Class.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); + global::CppSharp.Parser.AST.Expression.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Class(global::CppSharp.Parser.AST.Class.__Internal native, bool skipVTables = false) + private Expression(global::CppSharp.Parser.AST.Expression.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Class(void* native, bool skipVTables = false) + protected Expression(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -9042,19 +9591,10 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Class() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public Class(global::CppSharp.Parser.AST.Class _0) + public Expression(global::CppSharp.Parser.AST.Expression _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Class.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Expression.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -9065,423 +9605,375 @@ namespace CppSharp public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Declaration __dummy; + global::CppSharp.Parser.AST.Statement __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + } - public global::CppSharp.Parser.AST.BaseClassSpecifier GetBases(uint i) + public unsafe partial class BinaryOperator : global::CppSharp.Parser.AST.Expression, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 96)] + public new partial struct __Internal { - var __ret = __Internal.GetBases_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.BaseClassSpecifier __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.BaseClassSpecifier) global::CppSharp.Parser.AST.BaseClassSpecifier.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.BaseClassSpecifier.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; - public void AddBases(global::CppSharp.Parser.AST.BaseClassSpecifier s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddBases_0((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(8)] + public global::System.IntPtr decl; + + [FieldOffset(16)] + public global::Std.BasicString.__Internal String; + + [FieldOffset(48)] + public global::System.IntPtr LHS; + + [FieldOffset(56)] + public global::System.IntPtr RHS; - public void ClearBases() - { - __Internal.ClearBases_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(64)] + public global::Std.BasicString.__Internal OpcodeStr; - public global::CppSharp.Parser.AST.Field GetFields(uint i) - { - var __ret = __Internal.GetFields_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Field __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Field.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Field) global::CppSharp.Parser.AST.Field.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Field.__CreateInstance(__ret); - return __result0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0BinaryOperator@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - public void AddFields(global::CppSharp.Parser.AST.Field s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddFields_0((__Instance + __PointerAdjustment), __arg0); + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??1BinaryOperator@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getOpcodeStr@BinaryOperator@AST@CppParser@CppSharp@@QEAAPEBDXZ")] + internal static extern global::System.IntPtr OpcodeStr_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?setOpcodeStr@BinaryOperator@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] + internal static extern void SetOpcodeStr_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); } - public void ClearFields() + internal static new global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - __Internal.ClearFields_0((__Instance + __PointerAdjustment)); + return new BinaryOperator(native.ToPointer(), skipVTables); } - public global::CppSharp.Parser.AST.Method GetMethods(uint i) + internal static global::CppSharp.Parser.AST.BinaryOperator __CreateInstance(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) { - var __ret = __Internal.GetMethods_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Method __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Method.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Method) global::CppSharp.Parser.AST.Method.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Method.__CreateInstance(__ret); - return __result0; + return new BinaryOperator(native, skipVTables); } - public void AddMethods(global::CppSharp.Parser.AST.Method s) + private static void* __CopyValue(global::CppSharp.Parser.AST.BinaryOperator.__Internal native) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddMethods_0((__Instance + __PointerAdjustment), __arg0); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); + global::CppSharp.Parser.AST.BinaryOperator.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public void ClearMethods() + private BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - __Internal.ClearMethods_0((__Instance + __PointerAdjustment)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; } - public global::CppSharp.Parser.AST.AccessSpecifierDecl GetSpecifiers(uint i) + protected BinaryOperator(void* native, bool skipVTables = false) + : base((void*) null) { - var __ret = __Internal.GetSpecifiers_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.AccessSpecifierDecl __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.AccessSpecifierDecl) global::CppSharp.Parser.AST.AccessSpecifierDecl.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.AccessSpecifierDecl.__CreateInstance(__ret); - return __result0; + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public void AddSpecifiers(global::CppSharp.Parser.AST.AccessSpecifierDecl s) + public BinaryOperator(global::CppSharp.Parser.AST.BinaryOperator _0) + : this((void*) null) { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecifiers_0((__Instance + __PointerAdjustment), __arg0); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BinaryOperator.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void ClearSpecifiers() + public override void Dispose(bool disposing) { - __Internal.ClearSpecifiers_0((__Instance + __PointerAdjustment)); + global::CppSharp.Parser.AST.Statement __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public bool IsPOD + public global::CppSharp.Parser.AST.Expression LHS { get { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD != 0; + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS); + return __result0; } set { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPOD = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->LHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsAbstract + public global::CppSharp.Parser.AST.Expression RHS { get { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract != 0; + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS); + return __result0; } set { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isAbstract = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.BinaryOperator.__Internal*) __Instance)->RHS = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsUnion + public string OpcodeStr { get { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion != 0; + var __ret = __Internal.OpcodeStr_0((__Instance + __PointerAdjustment)); + return Marshal.PtrToStringAnsi(__ret); } set { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isUnion = (byte) (value ? 1 : 0); + __Internal.SetOpcodeStr_0((__Instance + __PointerAdjustment), value); } } + } - public bool IsDynamic + public unsafe partial class CallExpr : global::CppSharp.Parser.AST.Expression, IDisposable + { + [StructLayout(LayoutKind.Explicit, Size = 72)] + public new partial struct __Internal { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic != 0; - } + [FieldOffset(0)] + public global::CppSharp.Parser.AST.StatementClass _class; - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isDynamic = (byte) (value ? 1 : 0); - } - } + [FieldOffset(8)] + public global::System.IntPtr decl; - public bool IsPolymorphic - { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic != 0; - } + [FieldOffset(16)] + public global::Std.BasicString.__Internal String; - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isPolymorphic = (byte) (value ? 1 : 0); - } - } + [FieldOffset(48)] + internal global::Std.Vector.__Internal Arguments; - public bool HasNonTrivialDefaultConstructor - { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor != 0; - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0CallExpr@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDefaultConstructor = (byte) (value ? 1 : 0); - } + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??1CallExpr@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getArguments@CallExpr@AST@CppParser@CppSharp@@QEAAPEAVExpression@234@I@Z")] + internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?addArguments@CallExpr@AST@CppParser@CppSharp@@QEAAXAEAPEAVExpression@234@@Z")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?clearArguments@CallExpr@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getArgumentsCount@CallExpr@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - public bool HasNonTrivialCopyConstructor + internal static new global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialCopyConstructor = (byte) (value ? 1 : 0); - } + return new CallExpr(native.ToPointer(), skipVTables); } - public bool HasNonTrivialDestructor + internal static global::CppSharp.Parser.AST.CallExpr __CreateInstance(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor != 0; - } + return new CallExpr(native, skipVTables); + } - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->hasNonTrivialDestructor = (byte) (value ? 1 : 0); - } + private static void* __CopyValue(global::CppSharp.Parser.AST.CallExpr.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); + global::CppSharp.Parser.AST.CallExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + return ret.ToPointer(); } - public bool IsExternCContext + private CallExpr(global::CppSharp.Parser.AST.CallExpr.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext != 0; - } + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isExternCContext = (byte) (value ? 1 : 0); - } + protected CallExpr(void* native, bool skipVTables = false) + : base((void*) null) + { + __PointerAdjustment = 0; + if (native == null) + return; + __Instance = new global::System.IntPtr(native); } - public bool IsInjected + public CallExpr(global::CppSharp.Parser.AST.CallExpr _0) + : this((void*) null) { - get - { - return ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->isInjected = (byte) (value ? 1 : 0); - } + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CallExpr.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public global::CppSharp.Parser.AST.ClassLayout Layout + public override void Dispose(bool disposing) { - get - { - global::CppSharp.Parser.AST.ClassLayout __result0; - if (((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout)) - __result0 = (global::CppSharp.Parser.AST.ClassLayout) global::CppSharp.Parser.AST.ClassLayout.NativeToManagedMap[((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout]; - else __result0 = global::CppSharp.Parser.AST.ClassLayout.__CreateInstance(((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Class.__Internal*) __Instance)->layout = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + global::CppSharp.Parser.AST.Statement __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); } - public uint BasesCount + public global::CppSharp.Parser.AST.Expression GetArguments(uint i) { - get - { - var __ret = __Internal.GetBasesCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Expression __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); + return __result0; } - public uint FieldsCount + public void AddArguments(global::CppSharp.Parser.AST.Expression s) { - get - { - var __ret = __Internal.GetFieldsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); } - public uint MethodsCount + public void ClearArguments() { - get - { - var __ret = __Internal.GetMethodsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint SpecifiersCount + public uint ArgumentsCount { get { - var __ret = __Internal.GetSpecifiersCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class Template : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class CXXConstructExpr : global::CppSharp.Parser.AST.Expression, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 224)] + [StructLayout(LayoutKind.Explicit, Size = 72)] public new partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::CppSharp.Parser.AST.StatementClass _class; [FieldOffset(8)] - public global::System.IntPtr _namespace; + public global::System.IntPtr decl; [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(64)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(96)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(128)] - public byte isIncomplete; - - [FieldOffset(129)] - public byte isDependent; - - [FieldOffset(130)] - public byte isImplicit; - - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(144)] - public uint definitionOrder; - - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(176)] - public global::System.IntPtr originalPtr; - - [FieldOffset(184)] - public global::System.IntPtr comment; - - [FieldOffset(192)] - public global::System.IntPtr TemplatedDecl; - - [FieldOffset(200)] - internal global::Std.Vector.__Internal Parameters; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Template@AST@CppParser@CppSharp@@QEAA@W4DeclarationKind@123@@Z")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + public global::Std.BasicString.__Internal String; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Template@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_1(global::System.IntPtr instance); + [FieldOffset(48)] + internal global::Std.Vector.__Internal Arguments; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Template@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="??0CXXConstructExpr@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1Template@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1CXXConstructExpr@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getParameters@Template@AST@CppParser@CppSharp@@QEAAPEAVDeclaration@234@I@Z")] - internal static extern global::System.IntPtr GetParameters_0(global::System.IntPtr instance, uint i); + EntryPoint="?getArguments@CXXConstructExpr@AST@CppParser@CppSharp@@QEAAPEAVExpression@234@I@Z")] + internal static extern global::System.IntPtr GetArguments_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addParameters@Template@AST@CppParser@CppSharp@@QEAAXAEAPEAVDeclaration@234@@Z")] - internal static extern void AddParameters_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="?addArguments@CXXConstructExpr@AST@CppParser@CppSharp@@QEAAXAEAPEAVExpression@234@@Z")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearParameters@Template@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearParameters_0(global::System.IntPtr instance); + EntryPoint="?clearArguments@CXXConstructExpr@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getParametersCount@Template@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetParametersCount_0(global::System.IntPtr instance); + EntryPoint="?getArgumentsCount@CXXConstructExpr@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Template __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Template(native.ToPointer(), skipVTables); + return new CXXConstructExpr(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Template __CreateInstance(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.CXXConstructExpr __CreateInstance(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) { - return new Template(native, skipVTables); + return new CXXConstructExpr(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Template.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); - global::CppSharp.Parser.AST.Template.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); + global::CppSharp.Parser.AST.CXXConstructExpr.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Template(global::CppSharp.Parser.AST.Template.__Internal native, bool skipVTables = false) + private CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Template(void* native, bool skipVTables = false) + protected CXXConstructExpr(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -9490,39 +9982,21 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Template(global::CppSharp.Parser.AST.DeclarationKind kind) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); - } - - public Template() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_1((__Instance + __PointerAdjustment)); - } - - public Template(global::CppSharp.Parser.AST.Template _0) + public CXXConstructExpr(global::CppSharp.Parser.AST.CXXConstructExpr _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Template.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.CXXConstructExpr.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); var __arg0 = _0.__Instance; - __Internal.cctor_2((__Instance + __PointerAdjustment), __arg0); + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.Declaration __dummy; + global::CppSharp.Parser.AST.Statement __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -9530,187 +10004,143 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Declaration GetParameters(uint i) + public global::CppSharp.Parser.AST.Expression GetArguments(uint i) { - var __ret = __Internal.GetParameters_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.Declaration __result0; + var __ret = __Internal.GetArguments_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.Expression __result0; if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(__ret); + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(__ret); return __result0; } - public void AddParameters(global::CppSharp.Parser.AST.Declaration s) + public void AddArguments(global::CppSharp.Parser.AST.Expression s) { if (ReferenceEquals(s, null)) throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); var __arg0 = s.__Instance; - __Internal.AddParameters_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearParameters() - { - __Internal.ClearParameters_0((__Instance + __PointerAdjustment)); - } - - public static implicit operator global::CppSharp.Parser.AST.Template(global::CppSharp.Parser.AST.DeclarationKind kind) - { - return new global::CppSharp.Parser.AST.Template(kind); + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); } - - public global::CppSharp.Parser.AST.Declaration TemplatedDecl - { - get - { - global::CppSharp.Parser.AST.Declaration __result0; - if (((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Declaration.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl)) - __result0 = (global::CppSharp.Parser.AST.Declaration) global::CppSharp.Parser.AST.Declaration.NativeToManagedMap[((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl]; - else __result0 = global::CppSharp.Parser.AST.Declaration.__CreateInstance(((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.Template.__Internal*) __Instance)->TemplatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } + + public void ClearArguments() + { + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public uint ParametersCount + public uint ArgumentsCount { get { - var __ret = __Internal.GetParametersCount_0((__Instance + __PointerAdjustment)); + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); return __ret; } } } - public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class FunctionTemplateSpecialization : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 224)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 48)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public global::System.IntPtr _template; [FieldOffset(8)] - public global::System.IntPtr _namespace; - - [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; + internal global::Std.Vector.__Internal Arguments; [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(64)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(96)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(128)] - public byte isIncomplete; - - [FieldOffset(129)] - public byte isDependent; - - [FieldOffset(130)] - public byte isImplicit; - - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(144)] - public uint definitionOrder; + public global::System.IntPtr specializedFunction; - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; + [FieldOffset(40)] + public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; - [FieldOffset(176)] - public global::System.IntPtr originalPtr; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - [FieldOffset(184)] - public global::System.IntPtr comment; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(192)] - public global::System.IntPtr TemplatedDecl; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??1FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); - [FieldOffset(200)] - internal global::Std.Vector.__Internal Parameters; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getArguments@FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QEAA?AUTemplateArgument@234@I@Z")] + internal static extern void GetArguments_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TypeAliasTemplate@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + EntryPoint="?addArguments@FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QEAAXAEAUTemplateArgument@234@@Z")] + internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TypeAliasTemplate@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="?clearArguments@FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1TypeAliasTemplate@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + EntryPoint="?getArgumentsCount@FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypeAliasTemplate(native.ToPointer(), skipVTables); + return new FunctionTemplateSpecialization(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypeAliasTemplate __CreateInstance(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) { - return new TypeAliasTemplate(native, skipVTables); + return new FunctionTemplateSpecialization(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); - global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); + global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal native, bool skipVTables = false) + private FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypeAliasTemplate(void* native, bool skipVTables = false) - : base((void*) null) + protected FunctionTemplateSpecialization(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public TypeAliasTemplate() - : this((void*) null) + public FunctionTemplateSpecialization() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypeAliasTemplate(global::CppSharp.Parser.AST.TypeAliasTemplate _0) - : this((void*) null) + public FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeAliasTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -9719,20 +10149,103 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.FunctionTemplateSpecialization __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } + + public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) + { + var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); + __Internal.GetArguments_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); + return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); + } + + public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) + { + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); + } + + public void ClearArguments() + { + __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); + } + + public global::CppSharp.Parser.AST.FunctionTemplate Template + { + get + { + global::CppSharp.Parser.AST.FunctionTemplate __result0; + if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template)) + __result0 = (global::CppSharp.Parser.AST.FunctionTemplate) global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template]; + else __result0 = global::CppSharp.Parser.AST.FunctionTemplate.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public global::CppSharp.Parser.AST.Function SpecializedFunction + { + get + { + global::CppSharp.Parser.AST.Function __result0; + if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction)) + __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction]; + else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public global::CppSharp.Parser.AST.TemplateSpecializationKind SpecializationKind + { + get + { + return ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind; + } + + set + { + ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; + } + } + + public uint ArgumentsCount + { + get + { + var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); + return __ret; + } + } } - public unsafe partial class TemplateParameter : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class AccessSpecifierDecl : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 208)] + [StructLayout(LayoutKind.Explicit, Size = 216)] public new partial struct __Internal { [FieldOffset(0)] @@ -9781,61 +10294,55 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - public uint depth; - - [FieldOffset(196)] - public uint index; - - [FieldOffset(200)] - public byte isParameterPack; - [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TemplateParameter@AST@CppParser@CppSharp@@QEAA@W4DeclarationKind@123@@Z")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); + EntryPoint="??0AccessSpecifierDecl@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TemplateParameter@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0AccessSpecifierDecl@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1TemplateParameter@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1AccessSpecifierDecl@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateParameter(native.ToPointer(), skipVTables); + return new AccessSpecifierDecl(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.AccessSpecifierDecl __CreateInstance(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) { - return new TemplateParameter(native, skipVTables); + return new AccessSpecifierDecl(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); - global::CppSharp.Parser.AST.TemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); + global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) + private AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateParameter(void* native, bool skipVTables = false) + protected AccessSpecifierDecl(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -9844,19 +10351,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) + public AccessSpecifierDecl() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment), kind); + __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter _0) + public AccessSpecifierDecl(global::CppSharp.Parser.AST.AccessSpecifierDecl _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.AccessSpecifierDecl.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -9874,55 +10381,11 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - - public static implicit operator global::CppSharp.Parser.AST.TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) - { - return new global::CppSharp.Parser.AST.TemplateParameter(kind); - } - - public uint Depth - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth = value; - } - } - - public uint Index - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index = value; - } - } - - public bool IsParameterPack - { - get - { - return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack != 0; - } - - set - { - ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); - } - } } - public unsafe partial class TemplateTemplateParameter : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 232)] + [StructLayout(LayoutKind.Explicit, Size = 448)] public new partial struct __Internal { [FieldOffset(0)] @@ -9971,67 +10434,142 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(216)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(200)] + [FieldOffset(232)] + public byte isReturnIndirect; + + [FieldOffset(233)] + public byte hasThisReturn; + + [FieldOffset(234)] + public byte isConstExpr; + + [FieldOffset(235)] + public byte isVariadic; + + [FieldOffset(236)] + public byte isInline; + + [FieldOffset(237)] + public byte isPure; + + [FieldOffset(238)] + public byte isDeleted; + + [FieldOffset(240)] + public global::CppSharp.Parser.AST.FriendKind friendKind; + + [FieldOffset(244)] + public global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; + + [FieldOffset(248)] + public global::Std.BasicString.__Internal Mangled; + + [FieldOffset(280)] + public global::Std.BasicString.__Internal Signature; + + [FieldOffset(312)] + public global::Std.BasicString.__Internal Body; + + [FieldOffset(344)] + public global::CppSharp.Parser.AST.CallingConvention callingConvention; + + [FieldOffset(352)] internal global::Std.Vector.__Internal Parameters; - [FieldOffset(224)] - public byte isParameterPack; + [FieldOffset(376)] + public global::System.IntPtr specializationInfo; - [FieldOffset(225)] - public byte isPackExpansion; + [FieldOffset(384)] + public global::System.IntPtr instantiatedFrom; - [FieldOffset(226)] - public byte isExpandedParameterPack; + [FieldOffset(392)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; + + [FieldOffset(408)] + public byte isVirtual; + + [FieldOffset(409)] + public byte isStatic; + + [FieldOffset(410)] + public byte isConst; + + [FieldOffset(411)] + public byte isExplicit; + + [FieldOffset(412)] + public byte isOverride; + + [FieldOffset(416)] + public global::CppSharp.Parser.AST.CXXMethodKind methodKind; + + [FieldOffset(420)] + public byte isDefaultConstructor; + + [FieldOffset(421)] + public byte isCopyConstructor; + + [FieldOffset(422)] + public byte isMoveConstructor; + + [FieldOffset(424)] + public global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; + + [FieldOffset(440)] + public global::CppSharp.Parser.AST.RefQualifierKind refQualifier; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TemplateTemplateParameter@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0Method@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TemplateTemplateParameter@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0Method@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1TemplateTemplateParameter@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1Method@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TemplateTemplateParameter(native.ToPointer(), skipVTables); + return new Method(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Method __CreateInstance(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) { - return new TemplateTemplateParameter(native, skipVTables); + return new Method(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Method.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); - global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); + global::CppSharp.Parser.AST.Method.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) + private Method(global::CppSharp.Parser.AST.Method.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TemplateTemplateParameter(void* native, bool skipVTables = false) + protected Method(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10040,19 +10578,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public TemplateTemplateParameter() + public Method() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter _0) + public Method(global::CppSharp.Parser.AST.Method _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Method.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10071,211 +10609,307 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public bool IsParameterPack + public bool IsVirtual + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); + } + } + + public bool IsStatic + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isStatic = (byte) (value ? 1 : 0); + } + } + + public bool IsConst + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isConst = (byte) (value ? 1 : 0); + } + } + + public bool IsExplicit + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isExplicit = (byte) (value ? 1 : 0); + } + } + + public bool IsOverride + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride = (byte) (value ? 1 : 0); + } + } + + public global::CppSharp.Parser.AST.CXXMethodKind MethodKind + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->methodKind = value; + } + } + + public bool IsDefaultConstructor + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isDefaultConstructor = (byte) (value ? 1 : 0); + } + } + + public bool IsCopyConstructor + { + get + { + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor != 0; + } + + set + { + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isCopyConstructor = (byte) (value ? 1 : 0); + } + } + + public bool IsMoveConstructor { get { - return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack != 0; + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor != 0; } set { - ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isMoveConstructor = (byte) (value ? 1 : 0); } } - public bool IsPackExpansion + public global::CppSharp.Parser.AST.QualifiedType ConversionType { get { - return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType); } set { - ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->conversionType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public bool IsExpandedParameterPack + public global::CppSharp.Parser.AST.RefQualifierKind RefQualifier { get { - return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier; } set { - ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value; } } } - public unsafe partial class TypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable + public unsafe partial class BaseClassSpecifier : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 224)] - public new partial struct __Internal + [StructLayout(LayoutKind.Explicit, Size = 24)] + public partial struct __Internal { [FieldOffset(0)] - public global::CppSharp.Parser.AST.DeclarationKind kind; + public global::CppSharp.Parser.AST.AccessSpecifier access; [FieldOffset(4)] - public global::CppSharp.Parser.AST.AccessSpecifier access; + public byte isVirtual; [FieldOffset(8)] - public global::System.IntPtr _namespace; + public global::System.IntPtr type; [FieldOffset(16)] - public global::CppSharp.Parser.SourceLocation.__Internal location; - - [FieldOffset(20)] - public int lineNumberStart; - - [FieldOffset(24)] - public int lineNumberEnd; - - [FieldOffset(32)] - public global::Std.BasicString.__Internal Name; - - [FieldOffset(64)] - public global::Std.BasicString.__Internal USR; - - [FieldOffset(96)] - public global::Std.BasicString.__Internal DebugText; - - [FieldOffset(128)] - public byte isIncomplete; - - [FieldOffset(129)] - public byte isDependent; - - [FieldOffset(130)] - public byte isImplicit; - - [FieldOffset(136)] - public global::System.IntPtr completeDeclaration; - - [FieldOffset(144)] - public uint definitionOrder; - - [FieldOffset(152)] - internal global::Std.Vector.__Internal PreprocessedEntities; - - [FieldOffset(176)] - public global::System.IntPtr originalPtr; - - [FieldOffset(184)] - public global::System.IntPtr comment; - - [FieldOffset(192)] - public uint depth; - - [FieldOffset(196)] - public uint index; - - [FieldOffset(200)] - public byte isParameterPack; - - [FieldOffset(208)] - public global::CppSharp.Parser.AST.QualifiedType.__Internal defaultArgument; + public int offset; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TypeTemplateParameter@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0BaseClassSpecifier@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0TypeTemplateParameter@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0BaseClassSpecifier@AST@CppParser@CppSharp@@QEAA@AEBU0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1TypeTemplateParameter@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new TypeTemplateParameter(native.ToPointer(), skipVTables); + return new BaseClassSpecifier(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.TypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.BaseClassSpecifier __CreateInstance(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) { - return new TypeTemplateParameter(native, skipVTables); + return new BaseClassSpecifier(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); - global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); + *(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) ret = native; return ret.ToPointer(); } - private TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal native, bool skipVTables = false) + private BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected TypeTemplateParameter(void* native, bool skipVTables = false) - : base((void*) null) + protected BaseClassSpecifier(void* native, bool skipVTables = false) { - __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public TypeTemplateParameter() - : this((void*) null) + public BaseClassSpecifier() { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public TypeTemplateParameter(global::CppSharp.Parser.AST.TypeTemplateParameter _0) - : this((void*) null) + public BaseClassSpecifier(global::CppSharp.Parser.AST.BaseClassSpecifier _0) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) _0.__Instance); } - public override void Dispose(bool disposing) + public void Dispose() { - global::CppSharp.Parser.AST.Declaration __dummy; + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.BaseClassSpecifier __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.QualifiedType DefaultArgument + public global::CppSharp.Parser.AST.AccessSpecifier Access { get { - return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument); + return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access; } set { - ((global::CppSharp.Parser.AST.TypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->access = value; + } + } + + public bool IsVirtual + { + get + { + return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual != 0; + } + + set + { + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->isVirtual = (byte) (value ? 1 : 0); + } + } + + public global::CppSharp.Parser.AST.Type Type + { + get + { + global::CppSharp.Parser.AST.Type __result0; + if (((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Type.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type)) + __result0 = (global::CppSharp.Parser.AST.Type) global::CppSharp.Parser.AST.Type.NativeToManagedMap[((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type]; + else __result0 = global::CppSharp.Parser.AST.Type.__CreateInstance(((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->type = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public int Offset + { + get + { + return ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset; + } + + set + { + ((global::CppSharp.Parser.AST.BaseClassSpecifier.__Internal*) __Instance)->offset = value; } } } - public unsafe partial class NonTypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable + public unsafe partial class Field : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 224)] + [StructLayout(LayoutKind.Explicit, Size = 248)] public new partial struct __Internal { [FieldOffset(0)] @@ -10324,73 +10958,67 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] - public global::System.IntPtr originalPtr; - - [FieldOffset(184)] - public global::System.IntPtr comment; - - [FieldOffset(192)] - public uint depth; - - [FieldOffset(196)] - public uint index; + internal global::Std.Vector.__Internal Redeclarations; [FieldOffset(200)] - public byte isParameterPack; + public global::System.IntPtr originalPtr; [FieldOffset(208)] - public global::System.IntPtr defaultArgument; + public global::System.IntPtr comment; [FieldOffset(216)] - public uint position; + public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(220)] - public byte isPackExpansion; + [FieldOffset(232)] + public global::System.IntPtr _class; - [FieldOffset(221)] - public byte isExpandedParameterPack; + [FieldOffset(240)] + public byte isBitField; + + [FieldOffset(244)] + public uint bitWidth; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0NonTypeTemplateParameter@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0Field@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0NonTypeTemplateParameter@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0Field@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1NonTypeTemplateParameter@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1Field@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.Field __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new NonTypeTemplateParameter(native.ToPointer(), skipVTables); + return new Field(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.Field __CreateInstance(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) { - return new NonTypeTemplateParameter(native, skipVTables); + return new Field(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.Field.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); - global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); + global::CppSharp.Parser.AST.Field.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) + private Field(global::CppSharp.Parser.AST.Field.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected NonTypeTemplateParameter(void* native, bool skipVTables = false) + protected Field(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10399,19 +11027,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public NonTypeTemplateParameter() + public Field() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter _0) + public Field(global::CppSharp.Parser.AST.Field _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Field.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10430,67 +11058,67 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.Expression DefaultArgument + public global::CppSharp.Parser.AST.QualifiedType QualifiedType { get { - global::CppSharp.Parser.AST.Expression __result0; - if (((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument)) - __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument]; - else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument); - return __result0; + return global::CppSharp.Parser.AST.QualifiedType.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType); } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->qualifiedType = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; } } - public uint Position + public global::CppSharp.Parser.AST.Class Class { get { - return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position; + global::CppSharp.Parser.AST.Class __result0; + if (((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Class.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class)) + __result0 = (global::CppSharp.Parser.AST.Class) global::CppSharp.Parser.AST.Class.NativeToManagedMap[((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class]; + else __result0 = global::CppSharp.Parser.AST.Class.__CreateInstance(((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class); + return __result0; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position = value; + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->_class = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } - public bool IsPackExpansion + public bool IsBitField { get { - return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField != 0; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->isBitField = (byte) (value ? 1 : 0); } } - public bool IsExpandedParameterPack + public uint BitWidth { get { - return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + return ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth; } set { - ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); + ((global::CppSharp.Parser.AST.Field.__Internal*) __Instance)->bitWidth = value; } } } - public unsafe partial class ClassTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class TemplateParameter : global::CppSharp.Parser.AST.Declaration, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 248)] + [StructLayout(LayoutKind.Explicit, Size = 232)] public new partial struct __Internal { [FieldOffset(0)] @@ -10539,81 +11167,64 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(216)] + public uint depth; - [FieldOffset(200)] - internal global::Std.Vector.__Internal Parameters; + [FieldOffset(220)] + public uint index; [FieldOffset(224)] - internal global::Std.Vector.__Internal Specializations; + public byte isParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0ClassTemplate@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + EntryPoint="??0TemplateParameter@AST@CppParser@CppSharp@@QEAA@W4DeclarationKind@123@@Z")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance, global::CppSharp.Parser.AST.DeclarationKind kind); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0ClassTemplate@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0TemplateParameter@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1ClassTemplate@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1TemplateParameter@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getSpecializations@ClassTemplate@AST@CppParser@CppSharp@@QEAAPEAVClassTemplateSpecialization@234@I@Z")] - internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addSpecializations@ClassTemplate@AST@CppParser@CppSharp@@QEAAXAEAPEAVClassTemplateSpecialization@234@@Z")] - internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearSpecializations@ClassTemplate@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearSpecializations_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getSpecializationsCount@ClassTemplate@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassTemplate(native.ToPointer(), skipVTables); + return new TemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassTemplate __CreateInstance(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) { - return new ClassTemplate(native, skipVTables); + return new TemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); - global::CppSharp.Parser.AST.ClassTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); + global::CppSharp.Parser.AST.TemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate.__Internal native, bool skipVTables = false) + private TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassTemplate(void* native, bool skipVTables = false) + protected TemplateParameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10622,19 +11233,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public ClassTemplate() + public TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); + __Internal.ctor_0((__Instance + __PointerAdjustment), kind); } - public ClassTemplate(global::CppSharp.Parser.AST.ClassTemplate _0) + public TemplateParameter(global::CppSharp.Parser.AST.TemplateParameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10653,43 +11264,54 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.ClassTemplateSpecialization GetSpecializations(uint i) + public static implicit operator global::CppSharp.Parser.AST.TemplateParameter(global::CppSharp.Parser.AST.DeclarationKind kind) { - var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.ClassTemplateSpecialization __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.ClassTemplateSpecialization) global::CppSharp.Parser.AST.ClassTemplateSpecialization.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.ClassTemplateSpecialization.__CreateInstance(__ret); - return __result0; + return new global::CppSharp.Parser.AST.TemplateParameter(kind); } - public void AddSpecializations(global::CppSharp.Parser.AST.ClassTemplateSpecialization s) + public uint Depth { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); + get + { + return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->depth = value; + } } - public void ClearSpecializations() + public uint Index { - __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); + get + { + return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->index = value; + } } - public uint SpecializationsCount + public bool IsParameterPack { get { - var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); } } } - public unsafe partial class ClassTemplateSpecialization : global::CppSharp.Parser.AST.Class, IDisposable + public unsafe partial class TemplateTemplateParameter : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 592)] + [StructLayout(LayoutKind.Explicit, Size = 256)] public new partial struct __Internal { [FieldOffset(0)] @@ -10738,159 +11360,70 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(216)] - internal global::Std.Vector.__Internal Enums; - - [FieldOffset(240)] - internal global::Std.Vector.__Internal Functions; - - [FieldOffset(264)] - internal global::Std.Vector.__Internal Classes; - - [FieldOffset(288)] - internal global::Std.Vector.__Internal Templates; - - [FieldOffset(312)] - internal global::Std.Vector.__Internal Typedefs; - - [FieldOffset(336)] - internal global::Std.Vector.__Internal TypeAliases; - - [FieldOffset(360)] - internal global::Std.Vector.__Internal Variables; - - [FieldOffset(384)] - internal global::Std.Vector.__Internal Friends; - - [FieldOffset(408)] - internal global::Std.Map.__Internal anonymous; - - [FieldOffset(424)] - public byte isAnonymous; - - [FieldOffset(432)] - internal global::Std.Vector.__Internal Bases; - - [FieldOffset(456)] - internal global::Std.Vector.__Internal Fields; - - [FieldOffset(480)] - internal global::Std.Vector.__Internal Methods; - - [FieldOffset(504)] - internal global::Std.Vector.__Internal Specifiers; - - [FieldOffset(528)] - public byte isPOD; - - [FieldOffset(529)] - public byte isAbstract; - - [FieldOffset(530)] - public byte isUnion; - - [FieldOffset(531)] - public byte isDynamic; - - [FieldOffset(532)] - public byte isPolymorphic; - - [FieldOffset(533)] - public byte hasNonTrivialDefaultConstructor; - - [FieldOffset(534)] - public byte hasNonTrivialCopyConstructor; - - [FieldOffset(535)] - public byte hasNonTrivialDestructor; - - [FieldOffset(536)] - public byte isExternCContext; - - [FieldOffset(537)] - public byte isInjected; - - [FieldOffset(544)] - public global::System.IntPtr layout; - - [FieldOffset(552)] - public global::System.IntPtr templatedDecl; - - [FieldOffset(560)] - internal global::Std.Vector.__Internal Arguments; - - [FieldOffset(584)] - public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0ClassTemplateSpecialization@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + public global::System.IntPtr TemplatedDecl; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0ClassTemplateSpecialization@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(224)] + internal global::Std.Vector.__Internal Parameters; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1ClassTemplateSpecialization@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + [FieldOffset(248)] + public byte isParameterPack; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getArguments@ClassTemplateSpecialization@AST@CppParser@CppSharp@@QEAA?AUTemplateArgument@234@I@Z")] - internal static extern void GetArguments_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); + [FieldOffset(249)] + public byte isPackExpansion; + + [FieldOffset(250)] + public byte isExpandedParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addArguments@ClassTemplateSpecialization@AST@CppParser@CppSharp@@QEAAXAEAUTemplateArgument@234@@Z")] - internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="??0TemplateTemplateParameter@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearArguments@ClassTemplateSpecialization@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearArguments_0(global::System.IntPtr instance); + EntryPoint="??0TemplateTemplateParameter@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getArgumentsCount@ClassTemplateSpecialization@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); + EntryPoint="??1TemplateTemplateParameter@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassTemplateSpecialization(native.ToPointer(), skipVTables); + return new TemplateTemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.TemplateTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) { - return new ClassTemplateSpecialization(native, skipVTables); + return new TemplateTemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); - global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); + global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) + private TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassTemplateSpecialization(void* native, bool skipVTables = false) + protected TemplateTemplateParameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -10899,19 +11432,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public ClassTemplateSpecialization() + public TemplateTemplateParameter() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization _0) + public TemplateTemplateParameter(global::CppSharp.Parser.AST.TemplateTemplateParameter _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -10930,70 +11463,49 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public global::CppSharp.Parser.AST.TemplateArgument GetArguments(uint i) - { - var __ret = new global::CppSharp.Parser.AST.TemplateArgument.__Internal(); - __Internal.GetArguments_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), i); - return global::CppSharp.Parser.AST.TemplateArgument.__CreateInstance(__ret); - } - - public void AddArguments(global::CppSharp.Parser.AST.TemplateArgument s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddArguments_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearArguments() - { - __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); - } - - public global::CppSharp.Parser.AST.ClassTemplate TemplatedDecl + public bool IsParameterPack { get { - global::CppSharp.Parser.AST.ClassTemplate __result0; - if (((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl)) - __result0 = (global::CppSharp.Parser.AST.ClassTemplate) global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl]; - else __result0 = global::CppSharp.Parser.AST.ClassTemplate.__CreateInstance(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl); - return __result0; + return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack != 0; } set { - ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isParameterPack = (byte) (value ? 1 : 0); } } - public global::CppSharp.Parser.AST.TemplateSpecializationKind SpecializationKind + public bool IsPackExpansion { get { - return ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind; + return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; } set { - ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; + ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); } } - public uint ArgumentsCount + public bool IsExpandedParameterPack { get { - var __ret = __Internal.GetArgumentsCount_0((__Instance + __PointerAdjustment)); - return __ret; + return ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.TemplateTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); } } } - public unsafe partial class ClassTemplatePartialSpecialization : global::CppSharp.Parser.AST.ClassTemplateSpecialization, IDisposable + public unsafe partial class NonTypeTemplateParameter : global::CppSharp.Parser.AST.TemplateParameter, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 592)] + [StructLayout(LayoutKind.Explicit, Size = 248)] public new partial struct __Internal { [FieldOffset(0)] @@ -11042,139 +11554,76 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(216)] - internal global::Std.Vector.__Internal Enums; - - [FieldOffset(240)] - internal global::Std.Vector.__Internal Functions; - - [FieldOffset(264)] - internal global::Std.Vector.__Internal Classes; - - [FieldOffset(288)] - internal global::Std.Vector.__Internal Templates; - - [FieldOffset(312)] - internal global::Std.Vector.__Internal Typedefs; - - [FieldOffset(336)] - internal global::Std.Vector.__Internal TypeAliases; - - [FieldOffset(360)] - internal global::Std.Vector.__Internal Variables; - - [FieldOffset(384)] - internal global::Std.Vector.__Internal Friends; - - [FieldOffset(408)] - internal global::Std.Map.__Internal anonymous; - - [FieldOffset(424)] - public byte isAnonymous; - - [FieldOffset(432)] - internal global::Std.Vector.__Internal Bases; - - [FieldOffset(456)] - internal global::Std.Vector.__Internal Fields; - - [FieldOffset(480)] - internal global::Std.Vector.__Internal Methods; - - [FieldOffset(504)] - internal global::Std.Vector.__Internal Specifiers; - - [FieldOffset(528)] - public byte isPOD; - - [FieldOffset(529)] - public byte isAbstract; - - [FieldOffset(530)] - public byte isUnion; - - [FieldOffset(531)] - public byte isDynamic; - - [FieldOffset(532)] - public byte isPolymorphic; - - [FieldOffset(533)] - public byte hasNonTrivialDefaultConstructor; - - [FieldOffset(534)] - public byte hasNonTrivialCopyConstructor; - - [FieldOffset(535)] - public byte hasNonTrivialDestructor; + public uint depth; - [FieldOffset(536)] - public byte isExternCContext; + [FieldOffset(220)] + public uint index; - [FieldOffset(537)] - public byte isInjected; + [FieldOffset(224)] + public byte isParameterPack; - [FieldOffset(544)] - public global::System.IntPtr layout; + [FieldOffset(232)] + public global::System.IntPtr defaultArgument; - [FieldOffset(552)] - public global::System.IntPtr templatedDecl; + [FieldOffset(240)] + public uint position; - [FieldOffset(560)] - internal global::Std.Vector.__Internal Arguments; + [FieldOffset(244)] + public byte isPackExpansion; - [FieldOffset(584)] - public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; + [FieldOffset(245)] + public byte isExpandedParameterPack; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0ClassTemplatePartialSpecialization@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0NonTypeTemplateParameter@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0ClassTemplatePartialSpecialization@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0NonTypeTemplateParameter@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1ClassTemplatePartialSpecialization@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1NonTypeTemplateParameter@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new ClassTemplatePartialSpecialization(native.ToPointer(), skipVTables); + return new NonTypeTemplateParameter(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.NonTypeTemplateParameter __CreateInstance(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) { - return new ClassTemplatePartialSpecialization(native, skipVTables); + return new NonTypeTemplateParameter(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); - global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) + private NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected ClassTemplatePartialSpecialization(void* native, bool skipVTables = false) + protected NonTypeTemplateParameter(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -11183,41 +11632,98 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public ClassTemplatePartialSpecialization() - : this((void*) null) + public NonTypeTemplateParameter() + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + __Internal.ctor_0((__Instance + __PointerAdjustment)); + } + + public NonTypeTemplateParameter(global::CppSharp.Parser.AST.NonTypeTemplateParameter _0) + : this((void*) null) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal)); + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + if (ReferenceEquals(_0, null)) + throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = _0.__Instance; + __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + } + + public override void Dispose(bool disposing) + { + global::CppSharp.Parser.AST.Declaration __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (disposing) + __Internal.dtor_0((__Instance + __PointerAdjustment), 0); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + } + + public global::CppSharp.Parser.AST.Expression DefaultArgument + { + get + { + global::CppSharp.Parser.AST.Expression __result0; + if (((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.Expression.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument)) + __result0 = (global::CppSharp.Parser.AST.Expression) global::CppSharp.Parser.AST.Expression.NativeToManagedMap[((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument]; + else __result0 = global::CppSharp.Parser.AST.Expression.__CreateInstance(((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument); + return __result0; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->defaultArgument = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public uint Position + { + get + { + return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->position = value; + } + } + + public bool IsPackExpansion { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + get + { + return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion != 0; + } - public ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isPackExpansion = (byte) (value ? 1 : 0); + } } - public override void Dispose(bool disposing) + public bool IsExpandedParameterPack { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + get + { + return ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack != 0; + } + + set + { + ((global::CppSharp.Parser.AST.NonTypeTemplateParameter.__Internal*) __Instance)->isExpandedParameterPack = (byte) (value ? 1 : 0); + } } } - public unsafe partial class FunctionTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class ClassTemplateSpecialization : global::CppSharp.Parser.AST.Class, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 248)] + [StructLayout(LayoutKind.Explicit, Size = 616)] public new partial struct __Internal { [FieldOffset(0)] @@ -11266,257 +11772,183 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(216)] + internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(200)] - internal global::Std.Vector.__Internal Parameters; + [FieldOffset(240)] + internal global::Std.Vector.__Internal Enums; - [FieldOffset(224)] - internal global::Std.Vector.__Internal Specializations; + [FieldOffset(264)] + internal global::Std.Vector.__Internal Functions; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0FunctionTemplate@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + [FieldOffset(288)] + internal global::Std.Vector.__Internal Classes; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0FunctionTemplate@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(312)] + internal global::Std.Vector.__Internal Templates; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1FunctionTemplate@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + [FieldOffset(336)] + internal global::Std.Vector.__Internal Typedefs; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getSpecializations@FunctionTemplate@AST@CppParser@CppSharp@@QEAAPEAVFunctionTemplateSpecialization@234@I@Z")] - internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); + [FieldOffset(360)] + internal global::Std.Vector.__Internal TypeAliases; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addSpecializations@FunctionTemplate@AST@CppParser@CppSharp@@QEAAXAEAPEAVFunctionTemplateSpecialization@234@@Z")] - internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); + [FieldOffset(384)] + internal global::Std.Vector.__Internal Variables; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearSpecializations@FunctionTemplate@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + [FieldOffset(408)] + internal global::Std.Vector.__Internal Friends; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getSpecializationsCount@FunctionTemplate@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); - } + [FieldOffset(432)] + internal global::Std.Map.__Internal anonymous; - internal static new global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new FunctionTemplate(native.ToPointer(), skipVTables); - } + [FieldOffset(448)] + public byte isAnonymous; - internal static global::CppSharp.Parser.AST.FunctionTemplate __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) - { - return new FunctionTemplate(native, skipVTables); - } + [FieldOffset(456)] + internal global::Std.Vector.__Internal Bases; - private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); - global::CppSharp.Parser.AST.FunctionTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } + [FieldOffset(480)] + internal global::Std.Vector.__Internal Fields; - private FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } + [FieldOffset(504)] + internal global::Std.Vector.__Internal Methods; - protected FunctionTemplate(void* native, bool skipVTables = false) - : base((void*) null) - { - __PointerAdjustment = 0; - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } + [FieldOffset(528)] + internal global::Std.Vector.__Internal Specifiers; - public FunctionTemplate() - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(552)] + public byte isPOD; - public FunctionTemplate(global::CppSharp.Parser.AST.FunctionTemplate _0) - : this((void*) null) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplate.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(553)] + public byte isAbstract; - public override void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.Declaration __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } + [FieldOffset(554)] + public byte isUnion; - public global::CppSharp.Parser.AST.FunctionTemplateSpecialization GetSpecializations(uint i) - { - var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.FunctionTemplateSpecialization __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.FunctionTemplateSpecialization) global::CppSharp.Parser.AST.FunctionTemplateSpecialization.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__CreateInstance(__ret); - return __result0; - } + [FieldOffset(555)] + public byte isDynamic; - public void AddSpecializations(global::CppSharp.Parser.AST.FunctionTemplateSpecialization s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); - } + [FieldOffset(556)] + public byte isPolymorphic; - public void ClearSpecializations() - { - __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); - } + [FieldOffset(557)] + public byte hasNonTrivialDefaultConstructor; - public uint SpecializationsCount - { - get - { - var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } - } + [FieldOffset(558)] + public byte hasNonTrivialCopyConstructor; - public unsafe partial class FunctionTemplateSpecialization : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 48)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::System.IntPtr _template; + [FieldOffset(559)] + public byte hasNonTrivialDestructor; - [FieldOffset(8)] - internal global::Std.Vector.__Internal Arguments; + [FieldOffset(560)] + public byte isExternCContext; - [FieldOffset(32)] - public global::System.IntPtr specializedFunction; + [FieldOffset(561)] + public byte isInjected; - [FieldOffset(40)] + [FieldOffset(568)] + public global::System.IntPtr layout; + + [FieldOffset(576)] + public global::System.IntPtr templatedDecl; + + [FieldOffset(584)] + internal global::Std.Vector.__Internal Arguments; + + [FieldOffset(608)] public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??0ClassTemplateSpecialization@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + EntryPoint="??0ClassTemplateSpecialization@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QEAA@XZ")] + EntryPoint="??1ClassTemplateSpecialization@AST@CppParser@CppSharp@@QEAA@XZ")] internal static extern void dtor_0(global::System.IntPtr instance, int delete); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getArguments@FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QEAA?AUTemplateArgument@234@I@Z")] + EntryPoint="?getArguments@ClassTemplateSpecialization@AST@CppParser@CppSharp@@QEAA?AUTemplateArgument@234@I@Z")] internal static extern void GetArguments_0(global::System.IntPtr instance, global::System.IntPtr @return, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addArguments@FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QEAAXAEAUTemplateArgument@234@@Z")] + EntryPoint="?addArguments@ClassTemplateSpecialization@AST@CppParser@CppSharp@@QEAAXAEAUTemplateArgument@234@@Z")] internal static extern void AddArguments_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearArguments@FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QEAAXXZ")] + EntryPoint="?clearArguments@ClassTemplateSpecialization@AST@CppParser@CppSharp@@QEAAXXZ")] internal static extern void ClearArguments_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getArgumentsCount@FunctionTemplateSpecialization@AST@CppParser@CppSharp@@QEAAIXZ")] + EntryPoint="?getArgumentsCount@ClassTemplateSpecialization@AST@CppParser@CppSharp@@QEAAIXZ")] internal static extern uint GetArgumentsCount_0(global::System.IntPtr instance); } - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new FunctionTemplateSpecialization(native.ToPointer(), skipVTables); + return new ClassTemplateSpecialization(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.FunctionTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassTemplateSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) { - return new FunctionTemplateSpecialization(native, skipVTables); + return new ClassTemplateSpecialization(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); - global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); + global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal native, bool skipVTables = false) + private ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected FunctionTemplateSpecialization(void* native, bool skipVTables = false) + protected ClassTemplateSpecialization(void* native, bool skipVTables = false) + : base((void*) null) { + __PointerAdjustment = 0; if (native == null) return; __Instance = new global::System.IntPtr(native); } - public FunctionTemplateSpecialization() + public ClassTemplateSpecialization() + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public FunctionTemplateSpecialization(global::CppSharp.Parser.AST.FunctionTemplateSpecialization _0) + public ClassTemplateSpecialization(global::CppSharp.Parser.AST.ClassTemplateSpecialization _0) + : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -11525,14 +11957,9 @@ namespace CppSharp __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); } - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public override void Dispose(bool disposing) { - global::CppSharp.Parser.AST.FunctionTemplateSpecialization __dummy; + global::CppSharp.Parser.AST.Declaration __dummy; NativeToManagedMap.TryRemove(__Instance, out __dummy); if (disposing) __Internal.dtor_0((__Instance + __PointerAdjustment), 0); @@ -11560,39 +11987,21 @@ namespace CppSharp __Internal.ClearArguments_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.FunctionTemplate Template - { - get - { - global::CppSharp.Parser.AST.FunctionTemplate __result0; - if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template)) - __result0 = (global::CppSharp.Parser.AST.FunctionTemplate) global::CppSharp.Parser.AST.FunctionTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template]; - else __result0 = global::CppSharp.Parser.AST.FunctionTemplate.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->_template = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public global::CppSharp.Parser.AST.Function SpecializedFunction + public global::CppSharp.Parser.AST.ClassTemplate TemplatedDecl { get { - global::CppSharp.Parser.AST.Function __result0; - if (((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.Function.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction)) - __result0 = (global::CppSharp.Parser.AST.Function) global::CppSharp.Parser.AST.Function.NativeToManagedMap[((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction]; - else __result0 = global::CppSharp.Parser.AST.Function.__CreateInstance(((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction); + global::CppSharp.Parser.AST.ClassTemplate __result0; + if (((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl)) + __result0 = (global::CppSharp.Parser.AST.ClassTemplate) global::CppSharp.Parser.AST.ClassTemplate.NativeToManagedMap[((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl]; + else __result0 = global::CppSharp.Parser.AST.ClassTemplate.__CreateInstance(((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl); return __result0; } set { - ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializedFunction = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->templatedDecl = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; } } @@ -11600,12 +12009,12 @@ namespace CppSharp { get { - return ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind; + return ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind; } set { - ((global::CppSharp.Parser.AST.FunctionTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; + ((global::CppSharp.Parser.AST.ClassTemplateSpecialization.__Internal*) __Instance)->specializationKind = value; } } @@ -11619,9 +12028,9 @@ namespace CppSharp } } - public unsafe partial class VarTemplate : global::CppSharp.Parser.AST.Template, IDisposable + public unsafe partial class ClassTemplatePartialSpecialization : global::CppSharp.Parser.AST.ClassTemplateSpecialization, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 248)] + [StructLayout(LayoutKind.Explicit, Size = 616)] public new partial struct __Internal { [FieldOffset(0)] @@ -11670,81 +12079,142 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - public global::System.IntPtr TemplatedDecl; + [FieldOffset(216)] + internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(200)] - internal global::Std.Vector.__Internal Parameters; + [FieldOffset(240)] + internal global::Std.Vector.__Internal Enums; - [FieldOffset(224)] - internal global::Std.Vector.__Internal Specializations; + [FieldOffset(264)] + internal global::Std.Vector.__Internal Functions; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0VarTemplate@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + [FieldOffset(288)] + internal global::Std.Vector.__Internal Classes; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0VarTemplate@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + [FieldOffset(312)] + internal global::Std.Vector.__Internal Templates; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1VarTemplate@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + [FieldOffset(336)] + internal global::Std.Vector.__Internal Typedefs; - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getSpecializations@VarTemplate@AST@CppParser@CppSharp@@QEAAPEAVVarTemplateSpecialization@234@I@Z")] - internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); + [FieldOffset(360)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(384)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(408)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(432)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(448)] + public byte isAnonymous; + + [FieldOffset(456)] + internal global::Std.Vector.__Internal Bases; + + [FieldOffset(480)] + internal global::Std.Vector.__Internal Fields; + + [FieldOffset(504)] + internal global::Std.Vector.__Internal Methods; + + [FieldOffset(528)] + internal global::Std.Vector.__Internal Specifiers; + + [FieldOffset(552)] + public byte isPOD; + + [FieldOffset(553)] + public byte isAbstract; + + [FieldOffset(554)] + public byte isUnion; + + [FieldOffset(555)] + public byte isDynamic; + + [FieldOffset(556)] + public byte isPolymorphic; + + [FieldOffset(557)] + public byte hasNonTrivialDefaultConstructor; + + [FieldOffset(558)] + public byte hasNonTrivialCopyConstructor; + + [FieldOffset(559)] + public byte hasNonTrivialDestructor; + + [FieldOffset(560)] + public byte isExternCContext; + + [FieldOffset(561)] + public byte isInjected; + + [FieldOffset(568)] + public global::System.IntPtr layout; + + [FieldOffset(576)] + public global::System.IntPtr templatedDecl; + + [FieldOffset(584)] + internal global::Std.Vector.__Internal Arguments; + + [FieldOffset(608)] + public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?addSpecializations@VarTemplate@AST@CppParser@CppSharp@@QEAAXAEAPEAVVarTemplateSpecialization@234@@Z")] - internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); + EntryPoint="??0ClassTemplatePartialSpecialization@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?clearSpecializations@VarTemplate@AST@CppParser@CppSharp@@QEAAXXZ")] - internal static extern void ClearSpecializations_0(global::System.IntPtr instance); + EntryPoint="??0ClassTemplatePartialSpecialization@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getSpecializationsCount@VarTemplate@AST@CppParser@CppSharp@@QEAAIXZ")] - internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); + EntryPoint="??1ClassTemplatePartialSpecialization@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); } - internal static new global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new VarTemplate(native.ToPointer(), skipVTables); + return new ClassTemplatePartialSpecialization(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization __CreateInstance(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) { - return new VarTemplate(native, skipVTables); + return new ClassTemplatePartialSpecialization(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.VarTemplate.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); - global::CppSharp.Parser.AST.VarTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); + global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private VarTemplate(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) + private ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected VarTemplate(void* native, bool skipVTables = false) + protected ClassTemplatePartialSpecialization(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -11753,19 +12223,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public VarTemplate() + public ClassTemplatePartialSpecialization() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public VarTemplate(global::CppSharp.Parser.AST.VarTemplate _0) + public ClassTemplatePartialSpecialization(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.ClassTemplatePartialSpecialization.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -11783,44 +12253,11 @@ namespace CppSharp if (__ownsNativeInstance) Marshal.FreeHGlobal(__Instance); } - - public global::CppSharp.Parser.AST.VarTemplateSpecialization GetSpecializations(uint i) - { - var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); - global::CppSharp.Parser.AST.VarTemplateSpecialization __result0; - if (__ret == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) - __result0 = (global::CppSharp.Parser.AST.VarTemplateSpecialization) global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap[__ret]; - else __result0 = global::CppSharp.Parser.AST.VarTemplateSpecialization.__CreateInstance(__ret); - return __result0; - } - - public void AddSpecializations(global::CppSharp.Parser.AST.VarTemplateSpecialization s) - { - if (ReferenceEquals(s, null)) - throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = s.__Instance; - __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); - } - - public void ClearSpecializations() - { - __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); - } - - public uint SpecializationsCount - { - get - { - var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); - return __ret; - } - } } public unsafe partial class VarTemplateSpecialization : global::CppSharp.Parser.AST.Variable, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 280)] + [StructLayout(LayoutKind.Explicit, Size = 304)] public new partial struct __Internal { [FieldOffset(0)] @@ -11869,24 +12306,27 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] + [FieldOffset(216)] public global::Std.BasicString.__Internal Mangled; - [FieldOffset(224)] + [FieldOffset(248)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(240)] + [FieldOffset(264)] public global::System.IntPtr templatedDecl; - [FieldOffset(248)] + [FieldOffset(272)] internal global::Std.Vector.__Internal Arguments; - [FieldOffset(272)] + [FieldOffset(296)] public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] @@ -12052,7 +12492,7 @@ namespace CppSharp public unsafe partial class VarTemplatePartialSpecialization : global::CppSharp.Parser.AST.VarTemplateSpecialization, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 280)] + [StructLayout(LayoutKind.Explicit, Size = 304)] public new partial struct __Internal { [FieldOffset(0)] @@ -12101,24 +12541,27 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] + [FieldOffset(216)] public global::Std.BasicString.__Internal Mangled; - [FieldOffset(224)] + [FieldOffset(248)] public global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(240)] + [FieldOffset(264)] public global::System.IntPtr templatedDecl; - [FieldOffset(248)] + [FieldOffset(272)] internal global::Std.Vector.__Internal Arguments; - [FieldOffset(272)] + [FieldOffset(296)] public global::CppSharp.Parser.AST.TemplateSpecializationKind specializationKind; [SuppressUnmanagedCodeSecurity] @@ -12202,9 +12645,9 @@ namespace CppSharp } } - public unsafe partial class Namespace : global::CppSharp.Parser.AST.DeclarationContext, IDisposable + public unsafe partial class VarTemplate : global::CppSharp.Parser.AST.Template, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 440)] + [StructLayout(LayoutKind.Explicit, Size = 272)] public new partial struct __Internal { [FieldOffset(0)] @@ -12253,88 +12696,84 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(216)] - internal global::Std.Vector.__Internal Enums; - - [FieldOffset(240)] - internal global::Std.Vector.__Internal Functions; - - [FieldOffset(264)] - internal global::Std.Vector.__Internal Classes; - - [FieldOffset(288)] - internal global::Std.Vector.__Internal Templates; - - [FieldOffset(312)] - internal global::Std.Vector.__Internal Typedefs; + public global::System.IntPtr TemplatedDecl; - [FieldOffset(336)] - internal global::Std.Vector.__Internal TypeAliases; + [FieldOffset(224)] + internal global::Std.Vector.__Internal Parameters; - [FieldOffset(360)] - internal global::Std.Vector.__Internal Variables; + [FieldOffset(248)] + internal global::Std.Vector.__Internal Specializations; - [FieldOffset(384)] - internal global::Std.Vector.__Internal Friends; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0VarTemplate@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - [FieldOffset(408)] - internal global::Std.Map.__Internal anonymous; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??0VarTemplate@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] + internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - [FieldOffset(424)] - public byte isAnonymous; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="??1VarTemplate@AST@CppParser@CppSharp@@QEAA@XZ")] + internal static extern void dtor_0(global::System.IntPtr instance, int delete); - [FieldOffset(432)] - public byte isInline; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getSpecializations@VarTemplate@AST@CppParser@CppSharp@@QEAAPEAVVarTemplateSpecialization@234@I@Z")] + internal static extern global::System.IntPtr GetSpecializations_0(global::System.IntPtr instance, uint i); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Namespace@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + EntryPoint="?addSpecializations@VarTemplate@AST@CppParser@CppSharp@@QEAAXAEAPEAVVarTemplateSpecialization@234@@Z")] + internal static extern void AddSpecializations_0(global::System.IntPtr instance, global::System.IntPtr s); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0Namespace@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + EntryPoint="?clearSpecializations@VarTemplate@AST@CppParser@CppSharp@@QEAAXXZ")] + internal static extern void ClearSpecializations_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1Namespace@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); + EntryPoint="?getSpecializationsCount@VarTemplate@AST@CppParser@CppSharp@@QEAAIXZ")] + internal static extern uint GetSpecializationsCount_0(global::System.IntPtr instance); } - internal static new global::CppSharp.Parser.AST.Namespace __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + internal static new global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::System.IntPtr native, bool skipVTables = false) { - return new Namespace(native.ToPointer(), skipVTables); + return new VarTemplate(native.ToPointer(), skipVTables); } - internal static global::CppSharp.Parser.AST.Namespace __CreateInstance(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + internal static global::CppSharp.Parser.AST.VarTemplate __CreateInstance(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) { - return new Namespace(native, skipVTables); + return new VarTemplate(native, skipVTables); } - private static void* __CopyValue(global::CppSharp.Parser.AST.Namespace.__Internal native) + private static void* __CopyValue(global::CppSharp.Parser.AST.VarTemplate.__Internal native) { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); - global::CppSharp.Parser.AST.Namespace.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); + global::CppSharp.Parser.AST.VarTemplate.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); return ret.ToPointer(); } - private Namespace(global::CppSharp.Parser.AST.Namespace.__Internal native, bool skipVTables = false) + private VarTemplate(global::CppSharp.Parser.AST.VarTemplate.__Internal native, bool skipVTables = false) : this(__CopyValue(native), skipVTables) { __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; } - protected Namespace(void* native, bool skipVTables = false) + protected VarTemplate(void* native, bool skipVTables = false) : base((void*) null) { __PointerAdjustment = 0; @@ -12343,19 +12782,19 @@ namespace CppSharp __Instance = new global::System.IntPtr(native); } - public Namespace() + public VarTemplate() : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; __Internal.ctor_0((__Instance + __PointerAdjustment)); } - public Namespace(global::CppSharp.Parser.AST.Namespace _0) + public VarTemplate(global::CppSharp.Parser.AST.VarTemplate _0) : this((void*) null) { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.Namespace.__Internal)); + __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.VarTemplate.__Internal)); __ownsNativeInstance = true; NativeToManagedMap[__Instance] = this; if (ReferenceEquals(_0, null)) @@ -12374,149 +12813,36 @@ namespace CppSharp Marshal.FreeHGlobal(__Instance); } - public bool IsInline - { - get - { - return ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline != 0; - } - - set - { - ((global::CppSharp.Parser.AST.Namespace.__Internal*) __Instance)->isInline = (byte) (value ? 1 : 0); - } - } - } - - public unsafe partial class PreprocessedEntity : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 24)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.MacroLocation macroLocation; - - [FieldOffset(8)] - public global::System.IntPtr originalPtr; - - [FieldOffset(16)] - public global::CppSharp.Parser.AST.DeclarationKind kind; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0PreprocessedEntity@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0PreprocessedEntity@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new PreprocessedEntity(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.PreprocessedEntity __CreateInstance(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) - { - return new PreprocessedEntity(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); - *(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) ret = native; - return ret.ToPointer(); - } - - private PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected PreprocessedEntity(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public PreprocessedEntity() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public PreprocessedEntity(global::CppSharp.Parser.AST.PreprocessedEntity _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.PreprocessedEntity.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance) = *((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) + public global::CppSharp.Parser.AST.VarTemplateSpecialization GetSpecializations(uint i) { - global::CppSharp.Parser.AST.PreprocessedEntity __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); + var __ret = __Internal.GetSpecializations_0((__Instance + __PointerAdjustment), i); + global::CppSharp.Parser.AST.VarTemplateSpecialization __result0; + if (__ret == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap.ContainsKey(__ret)) + __result0 = (global::CppSharp.Parser.AST.VarTemplateSpecialization) global::CppSharp.Parser.AST.VarTemplateSpecialization.NativeToManagedMap[__ret]; + else __result0 = global::CppSharp.Parser.AST.VarTemplateSpecialization.__CreateInstance(__ret); + return __result0; } - public global::CppSharp.Parser.AST.MacroLocation MacroLocation + public void AddSpecializations(global::CppSharp.Parser.AST.VarTemplateSpecialization s) { - get - { - return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation; - } - - set - { - ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->macroLocation = value; - } + if (ReferenceEquals(s, null)) + throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&)."); + var __arg0 = s.__Instance; + __Internal.AddSpecializations_0((__Instance + __PointerAdjustment), __arg0); } - public global::System.IntPtr OriginalPtr + public void ClearSpecializations() { - get - { - return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr; - } - - set - { - ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->originalPtr = (global::System.IntPtr) value; - } + __Internal.ClearSpecializations_0((__Instance + __PointerAdjustment)); } - public global::CppSharp.Parser.AST.DeclarationKind Kind + public uint SpecializationsCount { get { - return ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.PreprocessedEntity.__Internal*) __Instance)->kind = value; + var __ret = __Internal.GetSpecializationsCount_0((__Instance + __PointerAdjustment)); + return __ret; } } } @@ -12874,7 +13200,7 @@ namespace CppSharp public unsafe partial class TranslationUnit : global::CppSharp.Parser.AST.Namespace, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 504)] + [StructLayout(LayoutKind.Explicit, Size = 528)] public new partial struct __Internal { [FieldOffset(0)] @@ -12923,54 +13249,57 @@ namespace CppSharp internal global::Std.Vector.__Internal PreprocessedEntities; [FieldOffset(176)] + internal global::Std.Vector.__Internal Redeclarations; + + [FieldOffset(200)] public global::System.IntPtr originalPtr; - [FieldOffset(184)] + [FieldOffset(208)] public global::System.IntPtr comment; - [FieldOffset(192)] - internal global::Std.Vector.__Internal Namespaces; - [FieldOffset(216)] - internal global::Std.Vector.__Internal Enums; + internal global::Std.Vector.__Internal Namespaces; [FieldOffset(240)] - internal global::Std.Vector.__Internal Functions; + internal global::Std.Vector.__Internal Enums; [FieldOffset(264)] - internal global::Std.Vector.__Internal Classes; + internal global::Std.Vector.__Internal Functions; [FieldOffset(288)] - internal global::Std.Vector.__Internal Templates; + internal global::Std.Vector.__Internal Classes; [FieldOffset(312)] - internal global::Std.Vector.__Internal Typedefs; + internal global::Std.Vector.__Internal Templates; [FieldOffset(336)] - internal global::Std.Vector.__Internal TypeAliases; + internal global::Std.Vector.__Internal Typedefs; [FieldOffset(360)] - internal global::Std.Vector.__Internal Variables; + internal global::Std.Vector.__Internal TypeAliases; [FieldOffset(384)] - internal global::Std.Vector.__Internal Friends; + internal global::Std.Vector.__Internal Variables; [FieldOffset(408)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(432)] internal global::Std.Map.__Internal anonymous; - [FieldOffset(424)] + [FieldOffset(448)] public byte isAnonymous; - [FieldOffset(432)] + [FieldOffset(456)] public byte isInline; - [FieldOffset(440)] + [FieldOffset(464)] public global::Std.BasicString.__Internal FileName; - [FieldOffset(472)] + [FieldOffset(496)] public byte isSystemHeader; - [FieldOffset(480)] + [FieldOffset(504)] internal global::Std.Vector.__Internal Macros; [SuppressUnmanagedCodeSecurity] @@ -16094,192 +16423,6 @@ namespace CppSharp } } } - - public unsafe partial class RawComment : IDisposable - { - [StructLayout(LayoutKind.Explicit, Size = 80)] - public partial struct __Internal - { - [FieldOffset(0)] - public global::CppSharp.Parser.AST.RawCommentKind kind; - - [FieldOffset(8)] - public global::Std.BasicString.__Internal Text; - - [FieldOffset(40)] - public global::Std.BasicString.__Internal BriefText; - - [FieldOffset(72)] - public global::System.IntPtr fullCommentBlock; - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0RawComment@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??0RawComment@AST@CppParser@CppSharp@@QEAA@AEBV0123@@Z")] - internal static extern global::System.IntPtr cctor_1(global::System.IntPtr instance, global::System.IntPtr _0); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="??1RawComment@AST@CppParser@CppSharp@@QEAA@XZ")] - internal static extern void dtor_0(global::System.IntPtr instance, int delete); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getText@RawComment@AST@CppParser@CppSharp@@QEAAPEBDXZ")] - internal static extern global::System.IntPtr Text_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?setText@RawComment@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] - internal static extern void SetText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?getBriefText@RawComment@AST@CppParser@CppSharp@@QEAAPEBDXZ")] - internal static extern global::System.IntPtr BriefText_0(global::System.IntPtr instance); - - [SuppressUnmanagedCodeSecurity] - [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, - EntryPoint="?setBriefText@RawComment@AST@CppParser@CppSharp@@QEAAXPEBD@Z")] - internal static extern void SetBriefText_0(global::System.IntPtr instance, [MarshalAs(UnmanagedType.LPStr)] string s); - } - - 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 void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new RawComment(native.ToPointer(), skipVTables); - } - - internal static global::CppSharp.Parser.AST.RawComment __CreateInstance(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) - { - return new RawComment(native, skipVTables); - } - - private static void* __CopyValue(global::CppSharp.Parser.AST.RawComment.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); - global::CppSharp.Parser.AST.RawComment.__Internal.cctor_1(ret, new global::System.IntPtr(&native)); - return ret.ToPointer(); - } - - private RawComment(global::CppSharp.Parser.AST.RawComment.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected RawComment(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public RawComment() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - __Internal.ctor_0((__Instance + __PointerAdjustment)); - } - - public RawComment(global::CppSharp.Parser.AST.RawComment _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.AST.RawComment.__Internal)); - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - if (ReferenceEquals(_0, null)) - throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&)."); - var __arg0 = _0.__Instance; - __Internal.cctor_1((__Instance + __PointerAdjustment), __arg0); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - global::CppSharp.Parser.AST.RawComment __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (disposing) - __Internal.dtor_0((__Instance + __PointerAdjustment), 0); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - } - - public global::CppSharp.Parser.AST.RawCommentKind Kind - { - get - { - return ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind; - } - - set - { - ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->kind = value; - } - } - - public global::CppSharp.Parser.AST.FullComment FullCommentBlock - { - get - { - global::CppSharp.Parser.AST.FullComment __result0; - if (((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock == IntPtr.Zero) __result0 = null; - else if (global::CppSharp.Parser.AST.FullComment.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock)) - __result0 = (global::CppSharp.Parser.AST.FullComment) global::CppSharp.Parser.AST.FullComment.NativeToManagedMap[((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock]; - else __result0 = global::CppSharp.Parser.AST.FullComment.__CreateInstance(((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock); - return __result0; - } - - set - { - ((global::CppSharp.Parser.AST.RawComment.__Internal*) __Instance)->fullCommentBlock = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; - } - } - - public string Text - { - get - { - var __ret = __Internal.Text_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetText_0((__Instance + __PointerAdjustment), value); - } - } - - public string BriefText - { - get - { - var __ret = __Internal.BriefText_0((__Instance + __PointerAdjustment)); - return Marshal.PtrToStringAnsi(__ret); - } - - set - { - __Internal.SetBriefText_0((__Instance + __PointerAdjustment), value); - } - } - } } } } @@ -17173,6 +17316,53 @@ namespace CppSharp User = 4 } + public unsafe partial class Parser + { + [StructLayout(LayoutKind.Explicit, Size = 0)] + public partial struct __Internal + { + } + + 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 void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::CppSharp.Parser.Parser __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new Parser(native.ToPointer(), skipVTables); + } + + internal static global::CppSharp.Parser.Parser __CreateInstance(global::CppSharp.Parser.Parser.__Internal native, bool skipVTables = false) + { + return new Parser(native, skipVTables); + } + + private static void* __CopyValue(global::CppSharp.Parser.Parser.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.Parser.__Internal)); + *(global::CppSharp.Parser.Parser.__Internal*) ret = native; + return ret.ToPointer(); + } + + private Parser(global::CppSharp.Parser.Parser.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected Parser(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + } + public unsafe partial class CppParserOptions : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 272)] @@ -18207,6 +18397,24 @@ namespace CppSharp } } + public global::CppSharp.Parser.Parser CodeParser + { + get + { + global::CppSharp.Parser.Parser __result0; + if (((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser == IntPtr.Zero) __result0 = null; + else if (global::CppSharp.Parser.Parser.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser)) + __result0 = (global::CppSharp.Parser.Parser) global::CppSharp.Parser.Parser.NativeToManagedMap[((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser]; + else __result0 = global::CppSharp.Parser.Parser.__CreateInstance(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser); + return __result0; + } + + set + { + ((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->codeParser = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance; + } + } + public uint DiagnosticsCount { get diff --git a/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs b/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs index 7ed372c2..090c5344 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs @@ -202,21 +202,21 @@ namespace Std } [StructLayout(LayoutKind.Explicit, Size = 24)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_BlockContentComment___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 24)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Parameter___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_BlockContentComment___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 24)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Parameter___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; diff --git a/src/CppParser/Parser.cpp b/src/CppParser/Parser.cpp index 6e866aef..8a1be2d2 100644 --- a/src/CppParser/Parser.cpp +++ b/src/CppParser/Parser.cpp @@ -3489,7 +3489,7 @@ Declaration* Parser::WalkDeclarationDef(clang::Decl* D) } Declaration* Parser::WalkDeclaration(const clang::Decl* D, - bool CanBeDefinition) + bool CanBeDefinition, bool WalkRedecls) { using namespace clang; @@ -3541,6 +3541,10 @@ Declaration* Parser::WalkDeclaration(const clang::Decl* D, auto Class = WalkRecordCXX(RD); + if (WalkRedecls) + for (auto redecl : RD->redecls()) + Class->Redeclarations.push_back(WalkDeclaration(redecl, CanBeDefinition, false)); + // We store a definition order index into the declarations. // This is needed because declarations are added to their contexts as // soon as they are referenced and we need to know the original order diff --git a/src/CppParser/Parser.h b/src/CppParser/Parser.h index e6afd9ac..538e4eaf 100644 --- a/src/CppParser/Parser.h +++ b/src/CppParser/Parser.h @@ -61,7 +61,8 @@ public: private: // AST traversers void WalkAST(); - Declaration* WalkDeclaration(const clang::Decl* D, bool CanBeDefinition = false); + Declaration* WalkDeclaration(const clang::Decl* D, bool CanBeDefinition = false, + bool WalkDeclarations = true); Declaration* WalkDeclarationDef(clang::Decl* D); Enumeration* WalkEnum(const clang::EnumDecl* ED); Enumeration::Item* WalkEnumItem(clang::EnumConstantDecl* ECD); diff --git a/src/Generator/Passes/RenamePass.cs b/src/Generator/Passes/RenamePass.cs index 674f2dfb..b4acee4b 100644 --- a/src/Generator/Passes/RenamePass.cs +++ b/src/Generator/Passes/RenamePass.cs @@ -219,7 +219,8 @@ namespace CppSharp.Passes public override bool VisitClassDecl(Class @class) { - base.VisitClassDecl(@class); + if (!base.VisitClassDecl(@class)) + return false; foreach (var property in @class.Properties.OrderByDescending(p => p.Access)) VisitProperty(property); diff --git a/src/Generator/Passes/ResolveIncompleteDeclsPass.cs b/src/Generator/Passes/ResolveIncompleteDeclsPass.cs index 9ea05a29..3d801a0d 100644 --- a/src/Generator/Passes/ResolveIncompleteDeclsPass.cs +++ b/src/Generator/Passes/ResolveIncompleteDeclsPass.cs @@ -1,5 +1,6 @@ using System.Linq; using CppSharp.AST; +using System.Collections.Generic; namespace CppSharp.Passes { @@ -68,8 +69,16 @@ namespace CppSharp.Passes return; var @class = declaration as Class; - if (@class != null && @class.IsOpaque) return; - + var redecls = @class?.Redeclarations; + if (@class != null && @class.IsOpaque) + { + if (redecls.Count == 0 || + (redecls.Last() == @class && !redecls.Exists(decl => !decl.IsIncomplete))) + return; + duplicateClasses.Add(@class); + } + + declaration.CompleteDeclaration = ASTContext.FindCompleteClass(declaration.QualifiedName); @@ -80,5 +89,17 @@ namespace CppSharp.Passes declaration.Name); } } + + public override bool VisitASTContext(ASTContext c) + { + base.VisitASTContext(c); + + foreach (var duplicateClass in duplicateClasses) + duplicateClass.Namespace.Declarations.Remove(duplicateClass); + + return true; + } + + private HashSet duplicateClasses = new HashSet(); } } diff --git a/src/Parser/ASTConverter.cs b/src/Parser/ASTConverter.cs index b1079615..880169f8 100644 --- a/src/Parser/ASTConverter.cs +++ b/src/Parser/ASTConverter.cs @@ -955,6 +955,13 @@ namespace CppSharp _decl.OriginalPtr = originalPtr; NativeObjects.Add(decl); + + for (uint i = 0; i < decl.RedeclarationsCount; i++) + { + var redecl = decl.GetRedeclarations(i); + _decl.Redeclarations.Add(Visit(redecl)); + } + } public void VisitDeclContext(DeclarationContext ctx, AST.DeclarationContext _ctx) diff --git a/tests/CSharp/AnotherUnit.h b/tests/CSharp/AnotherUnit.h index d50e1982..62216fac 100644 --- a/tests/CSharp/AnotherUnit.h +++ b/tests/CSharp/AnotherUnit.h @@ -3,6 +3,10 @@ void DLL_API functionInAnotherUnit(); +struct DLL_API ForwardDeclaredStruct; + +struct DLL_API DuplicateDeclaredStruct; + template class TemplateInAnotherUnit { diff --git a/tests/CSharp/CSharp.Tests.cs b/tests/CSharp/CSharp.Tests.cs index 30fe88d8..0bb48076 100644 --- a/tests/CSharp/CSharp.Tests.cs +++ b/tests/CSharp/CSharp.Tests.cs @@ -706,4 +706,20 @@ public unsafe class CSharpTests : GeneratorTestFixture Assert.IsNotNull(incompleteStruct); Assert.DoesNotThrow(() => CSharp.CSharp.UseIncompleteStruct(incompleteStruct)); } + + [Test] + public void TestForwardDeclaredStruct() + { + var forwardDeclaredStruct = CSharp.CSharp.CreateForwardDeclaredStruct(10); + var i = CSharp.CSharp.UseForwardDeclaredStruct(forwardDeclaredStruct); + Assert.AreEqual(forwardDeclaredStruct.I, i); + } + + [Test] + public void TestDuplicateDeclaredIncompleteStruct() + { + var duplicateDeclaredIncompleteStruct = CSharp.CSharp.CreateDuplicateDeclaredStruct(10); + var i = CSharp.CSharp.UseDuplicateDeclaredStruct(duplicateDeclaredIncompleteStruct); + Assert.AreEqual(10, i); + } } \ No newline at end of file diff --git a/tests/CSharp/CSharp.cpp b/tests/CSharp/CSharp.cpp index ade97a8d..2ccf6d71 100644 --- a/tests/CSharp/CSharp.cpp +++ b/tests/CSharp/CSharp.cpp @@ -1322,3 +1322,31 @@ DLL_API void useIncompleteStruct(IncompleteStruct * a) { return; } + +struct DuplicateDeclaredStruct { + int i = 0; +}; + +DLL_API ForwardDeclaredStruct* createForwardDeclaredStruct(int i) +{ + auto ptr = new ForwardDeclaredStruct(); + ptr->i = i; + return ptr; +} + +DLL_API int useForwardDeclaredStruct(ForwardDeclaredStruct* s) +{ + return s->i; +} + +DLL_API DuplicateDeclaredStruct* createDuplicateDeclaredStruct(int i) +{ + auto ptr = new DuplicateDeclaredStruct(); + ptr->i = i; + return ptr; +} + +DLL_API int useDuplicateDeclaredStruct(DuplicateDeclaredStruct* s) +{ + return s->i; +} diff --git a/tests/CSharp/CSharp.h b/tests/CSharp/CSharp.h index 9f70b6d1..5b247d57 100644 --- a/tests/CSharp/CSharp.h +++ b/tests/CSharp/CSharp.h @@ -1157,4 +1157,16 @@ struct CompleteIncompleteStruct; typedef struct IncompleteStruct IncompleteStruct; DLL_API IncompleteStruct* createIncompleteStruct(); -DLL_API void useIncompleteStruct(IncompleteStruct* a); \ No newline at end of file +DLL_API void useIncompleteStruct(IncompleteStruct* a); + +struct DLL_API DuplicateDeclaredStruct; + +DLL_API DuplicateDeclaredStruct* createDuplicateDeclaredStruct(int i); +DLL_API int useDuplicateDeclaredStruct(DuplicateDeclaredStruct* s); + +struct DLL_API ForwardDeclaredStruct { + int i = 0; +}; + +DLL_API ForwardDeclaredStruct* createForwardDeclaredStruct(int i); +DLL_API int useForwardDeclaredStruct(ForwardDeclaredStruct* s); \ No newline at end of file