Browse Source

Extended the AST with the template parameters being substituted.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/719/head
Dimitar Dobrev 9 years ago
parent
commit
5af5b2093f
  1. 2
      src/AST/Type.cs
  2. 2
      src/CppParser/AST.cpp
  3. 1
      src/CppParser/AST.h
  4. 10
      src/CppParser/Bindings/CLI/AST.cpp
  5. 6
      src/CppParser/Bindings/CLI/AST.h
  6. 29
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
  7. 19
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs
  8. 29
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
  9. 14
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs
  10. 29
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
  11. 19
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs
  12. 29
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
  13. 56
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs
  14. 29
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
  15. 56
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs
  16. 1067
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
  17. 14
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs
  18. 6
      src/CppParser/Parser.cpp
  19. 1
      src/Parser/ASTConverter.cs

2
src/AST/Type.cs

@ -825,6 +825,8 @@ namespace CppSharp.AST
{ {
public QualifiedType Replacement; public QualifiedType Replacement;
public TemplateParameterType ReplacedParameter { get; set; }
public TemplateParameterSubstitutionType() public TemplateParameterSubstitutionType()
{ {
} }

2
src/CppParser/AST.cpp

@ -170,7 +170,7 @@ TemplateParameterType::TemplateParameterType() : Type(TypeKind::TemplateParamete
TemplateParameterType::~TemplateParameterType() {} TemplateParameterType::~TemplateParameterType() {}
TemplateParameterSubstitutionType::TemplateParameterSubstitutionType() TemplateParameterSubstitutionType::TemplateParameterSubstitutionType()
: Type(TypeKind::TemplateParameterSubstitution) {} : Type(TypeKind::TemplateParameterSubstitution), ReplacedParameter(0) {}
InjectedClassNameType::InjectedClassNameType() InjectedClassNameType::InjectedClassNameType()
: Type(TypeKind::InjectedClassName) : Type(TypeKind::InjectedClassName)

1
src/CppParser/AST.h

@ -227,6 +227,7 @@ class CS_API TemplateParameterSubstitutionType : public Type
public: public:
DECLARE_TYPE_KIND(TemplateParameterSubstitution) DECLARE_TYPE_KIND(TemplateParameterSubstitution)
QualifiedType Replacement; QualifiedType Replacement;
TemplateParameterType* ReplacedParameter;
}; };
class Class; class Class;

10
src/CppParser/Bindings/CLI/AST.cpp

@ -1000,6 +1000,16 @@ void CppSharp::Parser::AST::TemplateParameterSubstitutionType::Replacement::set(
((::CppSharp::CppParser::AST::TemplateParameterSubstitutionType*)NativePtr)->Replacement = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; ((::CppSharp::CppParser::AST::TemplateParameterSubstitutionType*)NativePtr)->Replacement = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr;
} }
CppSharp::Parser::AST::TemplateParameterType^ CppSharp::Parser::AST::TemplateParameterSubstitutionType::ReplacedParameter::get()
{
return (((::CppSharp::CppParser::AST::TemplateParameterSubstitutionType*)NativePtr)->ReplacedParameter == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TemplateParameterType((::CppSharp::CppParser::AST::TemplateParameterType*)((::CppSharp::CppParser::AST::TemplateParameterSubstitutionType*)NativePtr)->ReplacedParameter);
}
void CppSharp::Parser::AST::TemplateParameterSubstitutionType::ReplacedParameter::set(CppSharp::Parser::AST::TemplateParameterType^ value)
{
((::CppSharp::CppParser::AST::TemplateParameterSubstitutionType*)NativePtr)->ReplacedParameter = (::CppSharp::CppParser::AST::TemplateParameterType*)value->NativePtr;
}
CppSharp::Parser::AST::InjectedClassNameType::InjectedClassNameType(::CppSharp::CppParser::AST::InjectedClassNameType* native) CppSharp::Parser::AST::InjectedClassNameType::InjectedClassNameType(::CppSharp::CppParser::AST::InjectedClassNameType* native)
: CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native)
{ {

6
src/CppParser/Bindings/CLI/AST.h

@ -898,6 +898,12 @@ namespace CppSharp
CppSharp::Parser::AST::QualifiedType^ get(); CppSharp::Parser::AST::QualifiedType^ get();
void set(CppSharp::Parser::AST::QualifiedType^); void set(CppSharp::Parser::AST::QualifiedType^);
} }
property CppSharp::Parser::AST::TemplateParameterType^ ReplacedParameter
{
CppSharp::Parser::AST::TemplateParameterType^ get();
void set(CppSharp::Parser::AST::TemplateParameterType^);
}
}; };
public ref class InjectedClassNameType : CppSharp::Parser::AST::Type public ref class InjectedClassNameType : CppSharp::Parser::AST::Type

29
src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs

@ -2285,7 +2285,7 @@ namespace CppSharp
public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable
{ {
[StructLayout(LayoutKind.Explicit, Size = 16)] [StructLayout(LayoutKind.Explicit, Size = 20)]
public new partial struct __Internal public new partial struct __Internal
{ {
[FieldOffset(0)] [FieldOffset(0)]
@ -2297,6 +2297,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
public global::CppSharp.Parser.AST.QualifiedType.__Internal Replacement; public global::CppSharp.Parser.AST.QualifiedType.__Internal Replacement;
[FieldOffset(16)]
public global::System.IntPtr ReplacedParameter;
[SuppressUnmanagedCodeSecurity] [SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")] EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")]
@ -2320,7 +2323,7 @@ namespace CppSharp
private static void* __CopyValue(TemplateParameterSubstitutionType.__Internal native) private static void* __CopyValue(TemplateParameterSubstitutionType.__Internal native)
{ {
var ret = Marshal.AllocHGlobal(16); var ret = Marshal.AllocHGlobal(20);
global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native));
return ret.ToPointer(); return ret.ToPointer();
} }
@ -2344,7 +2347,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType() public TemplateParameterSubstitutionType()
: this((void*) null) : this((void*) null)
{ {
__Instance = Marshal.AllocHGlobal(16); __Instance = Marshal.AllocHGlobal(20);
__ownsNativeInstance = true; __ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this; NativeToManagedMap[__Instance] = this;
__Internal.ctor_0((__Instance + __PointerAdjustment)); __Internal.ctor_0((__Instance + __PointerAdjustment));
@ -2353,7 +2356,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0) public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0)
: this((void*) null) : this((void*) null)
{ {
__Instance = Marshal.AllocHGlobal(16); __Instance = Marshal.AllocHGlobal(20);
__ownsNativeInstance = true; __ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this; NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null)) if (ReferenceEquals(_0, null))
@ -2374,6 +2377,24 @@ namespace CppSharp
((__Internal*) __Instance)->Replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; ((__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.TemplateParameterType ReplacedParameter
{
get
{
global::CppSharp.Parser.AST.TemplateParameterType __result0;
if (((__Internal*) __Instance)->ReplacedParameter == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((__Internal*) __Instance)->ReplacedParameter))
__result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((__Internal*) __Instance)->ReplacedParameter];
else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((__Internal*) __Instance)->ReplacedParameter);
return __result0;
}
set
{
((__Internal*) __Instance)->ReplacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
}
}
} }
public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable

19
src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs

@ -3584,6 +3584,16 @@ namespace Std
internal global::Std.__1.CompressedPair.__Internal __pair3_; internal global::Std.__1.CompressedPair.__Internal __pair3_;
} }
} }
namespace TreeEndNode
{
[StructLayout(LayoutKind.Explicit, Size = 4)]
public unsafe partial struct __Internal_Ptr
{
[FieldOffset(0)]
public global::System.IntPtr __left_;
}
}
} }
} }
@ -3853,10 +3863,13 @@ namespace Std
Marshal.FreeHGlobal(__Instance); Marshal.FreeHGlobal(__Instance);
} }
public string CStr() public string CStr
{ {
var __ret = __Internal.CStr_0((__Instance + __PointerAdjustment)); get
return Marshal.PtrToStringAnsi(__ret); {
var __ret = __Internal.CStr_0((__Instance + __PointerAdjustment));
return Marshal.PtrToStringAnsi(__ret);
}
} }
} }

29
src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs

@ -2285,7 +2285,7 @@ namespace CppSharp
public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable
{ {
[StructLayout(LayoutKind.Explicit, Size = 16)] [StructLayout(LayoutKind.Explicit, Size = 20)]
public new partial struct __Internal public new partial struct __Internal
{ {
[FieldOffset(0)] [FieldOffset(0)]
@ -2297,6 +2297,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
public global::CppSharp.Parser.AST.QualifiedType.__Internal Replacement; public global::CppSharp.Parser.AST.QualifiedType.__Internal Replacement;
[FieldOffset(16)]
public global::System.IntPtr ReplacedParameter;
[SuppressUnmanagedCodeSecurity] [SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="??0TemplateParameterSubstitutionType@AST@CppParser@CppSharp@@QAE@XZ")] EntryPoint="??0TemplateParameterSubstitutionType@AST@CppParser@CppSharp@@QAE@XZ")]
@ -2320,7 +2323,7 @@ namespace CppSharp
private static void* __CopyValue(TemplateParameterSubstitutionType.__Internal native) private static void* __CopyValue(TemplateParameterSubstitutionType.__Internal native)
{ {
var ret = Marshal.AllocHGlobal(16); var ret = Marshal.AllocHGlobal(20);
global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native));
return ret.ToPointer(); return ret.ToPointer();
} }
@ -2344,7 +2347,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType() public TemplateParameterSubstitutionType()
: this((void*) null) : this((void*) null)
{ {
__Instance = Marshal.AllocHGlobal(16); __Instance = Marshal.AllocHGlobal(20);
__ownsNativeInstance = true; __ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this; NativeToManagedMap[__Instance] = this;
__Internal.ctor_0((__Instance + __PointerAdjustment)); __Internal.ctor_0((__Instance + __PointerAdjustment));
@ -2353,7 +2356,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0) public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0)
: this((void*) null) : this((void*) null)
{ {
__Instance = Marshal.AllocHGlobal(16); __Instance = Marshal.AllocHGlobal(20);
__ownsNativeInstance = true; __ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this; NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null)) if (ReferenceEquals(_0, null))
@ -2374,6 +2377,24 @@ namespace CppSharp
((__Internal*) __Instance)->Replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; ((__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.TemplateParameterType ReplacedParameter
{
get
{
global::CppSharp.Parser.AST.TemplateParameterType __result0;
if (((__Internal*) __Instance)->ReplacedParameter == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((__Internal*) __Instance)->ReplacedParameter))
__result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((__Internal*) __Instance)->ReplacedParameter];
else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((__Internal*) __Instance)->ReplacedParameter);
return __result0;
}
set
{
((__Internal*) __Instance)->ReplacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
}
}
} }
public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable

14
src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs

@ -609,6 +609,10 @@ namespace Std
} }
} }
namespace Std
{
}
namespace Std namespace Std
{ {
namespace TreeVal namespace TreeVal
@ -782,6 +786,16 @@ public unsafe partial class Cvtvec
} }
} }
namespace Std
{
[Flags]
public enum CodecvtMode
{
_Consume_header = 4,
_Generate_header = 2
}
}
namespace Std namespace Std
{ {
public unsafe partial class ErrorCode public unsafe partial class ErrorCode

29
src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs

@ -2285,7 +2285,7 @@ namespace CppSharp
public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable
{ {
[StructLayout(LayoutKind.Explicit, Size = 24)] [StructLayout(LayoutKind.Explicit, Size = 32)]
public new partial struct __Internal public new partial struct __Internal
{ {
[FieldOffset(0)] [FieldOffset(0)]
@ -2297,6 +2297,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
public global::CppSharp.Parser.AST.QualifiedType.__Internal Replacement; public global::CppSharp.Parser.AST.QualifiedType.__Internal Replacement;
[FieldOffset(24)]
public global::System.IntPtr ReplacedParameter;
[SuppressUnmanagedCodeSecurity] [SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")] EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")]
@ -2320,7 +2323,7 @@ namespace CppSharp
private static void* __CopyValue(TemplateParameterSubstitutionType.__Internal native) private static void* __CopyValue(TemplateParameterSubstitutionType.__Internal native)
{ {
var ret = Marshal.AllocHGlobal(24); var ret = Marshal.AllocHGlobal(32);
global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native));
return ret.ToPointer(); return ret.ToPointer();
} }
@ -2344,7 +2347,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType() public TemplateParameterSubstitutionType()
: this((void*) null) : this((void*) null)
{ {
__Instance = Marshal.AllocHGlobal(24); __Instance = Marshal.AllocHGlobal(32);
__ownsNativeInstance = true; __ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this; NativeToManagedMap[__Instance] = this;
__Internal.ctor_0((__Instance + __PointerAdjustment)); __Internal.ctor_0((__Instance + __PointerAdjustment));
@ -2353,7 +2356,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0) public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0)
: this((void*) null) : this((void*) null)
{ {
__Instance = Marshal.AllocHGlobal(24); __Instance = Marshal.AllocHGlobal(32);
__ownsNativeInstance = true; __ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this; NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null)) if (ReferenceEquals(_0, null))
@ -2374,6 +2377,24 @@ namespace CppSharp
((__Internal*) __Instance)->Replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; ((__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.TemplateParameterType ReplacedParameter
{
get
{
global::CppSharp.Parser.AST.TemplateParameterType __result0;
if (((__Internal*) __Instance)->ReplacedParameter == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((__Internal*) __Instance)->ReplacedParameter))
__result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((__Internal*) __Instance)->ReplacedParameter];
else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((__Internal*) __Instance)->ReplacedParameter);
return __result0;
}
set
{
((__Internal*) __Instance)->ReplacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
}
}
} }
public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable

19
src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs

@ -3584,6 +3584,16 @@ namespace Std
internal global::Std.__1.CompressedPair.__Internal __pair3_; internal global::Std.__1.CompressedPair.__Internal __pair3_;
} }
} }
namespace TreeEndNode
{
[StructLayout(LayoutKind.Explicit, Size = 8)]
public unsafe partial struct __Internal_Ptr
{
[FieldOffset(0)]
public global::System.IntPtr __left_;
}
}
} }
} }
@ -3889,10 +3899,13 @@ namespace Std
Marshal.FreeHGlobal(__Instance); Marshal.FreeHGlobal(__Instance);
} }
public string CStr() public string CStr
{ {
var __ret = __Internal.CStr_0((__Instance + __PointerAdjustment)); get
return Marshal.PtrToStringAnsi(__ret); {
var __ret = __Internal.CStr_0((__Instance + __PointerAdjustment));
return Marshal.PtrToStringAnsi(__ret);
}
} }
} }

29
src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs

@ -2285,7 +2285,7 @@ namespace CppSharp
public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable
{ {
[StructLayout(LayoutKind.Explicit, Size = 24)] [StructLayout(LayoutKind.Explicit, Size = 32)]
public new partial struct __Internal public new partial struct __Internal
{ {
[FieldOffset(0)] [FieldOffset(0)]
@ -2297,6 +2297,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
public global::CppSharp.Parser.AST.QualifiedType.__Internal Replacement; public global::CppSharp.Parser.AST.QualifiedType.__Internal Replacement;
[FieldOffset(24)]
public global::System.IntPtr ReplacedParameter;
[SuppressUnmanagedCodeSecurity] [SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")] EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")]
@ -2320,7 +2323,7 @@ namespace CppSharp
private static void* __CopyValue(TemplateParameterSubstitutionType.__Internal native) private static void* __CopyValue(TemplateParameterSubstitutionType.__Internal native)
{ {
var ret = Marshal.AllocHGlobal(24); var ret = Marshal.AllocHGlobal(32);
global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native));
return ret.ToPointer(); return ret.ToPointer();
} }
@ -2344,7 +2347,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType() public TemplateParameterSubstitutionType()
: this((void*) null) : this((void*) null)
{ {
__Instance = Marshal.AllocHGlobal(24); __Instance = Marshal.AllocHGlobal(32);
__ownsNativeInstance = true; __ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this; NativeToManagedMap[__Instance] = this;
__Internal.ctor_0((__Instance + __PointerAdjustment)); __Internal.ctor_0((__Instance + __PointerAdjustment));
@ -2353,7 +2356,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0) public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0)
: this((void*) null) : this((void*) null)
{ {
__Instance = Marshal.AllocHGlobal(24); __Instance = Marshal.AllocHGlobal(32);
__ownsNativeInstance = true; __ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this; NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null)) if (ReferenceEquals(_0, null))
@ -2374,6 +2377,24 @@ namespace CppSharp
((__Internal*) __Instance)->Replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; ((__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.TemplateParameterType ReplacedParameter
{
get
{
global::CppSharp.Parser.AST.TemplateParameterType __result0;
if (((__Internal*) __Instance)->ReplacedParameter == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((__Internal*) __Instance)->ReplacedParameter))
__result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((__Internal*) __Instance)->ReplacedParameter];
else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((__Internal*) __Instance)->ReplacedParameter);
return __result0;
}
set
{
((__Internal*) __Instance)->ReplacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
}
}
} }
public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable

56
src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs

@ -964,6 +964,62 @@ public unsafe partial struct PthreadRwlockT
} }
} }
public unsafe partial class PthreadUnwindBufT
{
[StructLayout(LayoutKind.Explicit, Size = 104)]
public partial struct __Internal
{
[FieldOffset(0)]
public fixed byte __cancel_jmp_buf[72];
[FieldOffset(72)]
public void* __pad;
[FieldOffset(80)]
public global::System.IntPtr __dummy___pad_1;
[FieldOffset(88)]
public global::System.IntPtr __dummy___pad_2;
[FieldOffset(96)]
public global::System.IntPtr __dummy___pad_3;
}
public unsafe partial class _
{
[StructLayout(LayoutKind.Explicit, Size = 72)]
public partial struct __Internal
{
[FieldOffset(0)]
public fixed long __cancel_jmp_buf[8];
[FieldOffset(8)]
public long __dummy___cancel_jmp_buf_1;
[FieldOffset(16)]
public long __dummy___cancel_jmp_buf_2;
[FieldOffset(24)]
public long __dummy___cancel_jmp_buf_3;
[FieldOffset(32)]
public long __dummy___cancel_jmp_buf_4;
[FieldOffset(40)]
public long __dummy___cancel_jmp_buf_5;
[FieldOffset(48)]
public long __dummy___cancel_jmp_buf_6;
[FieldOffset(56)]
public long __dummy___cancel_jmp_buf_7;
[FieldOffset(64)]
public int __mask_was_saved;
}
}
}
namespace Std namespace Std
{ {
namespace Cxx11 namespace Cxx11

29
src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs

@ -2285,7 +2285,7 @@ namespace CppSharp
public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable
{ {
[StructLayout(LayoutKind.Explicit, Size = 24)] [StructLayout(LayoutKind.Explicit, Size = 32)]
public new partial struct __Internal public new partial struct __Internal
{ {
[FieldOffset(0)] [FieldOffset(0)]
@ -2297,6 +2297,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
public global::CppSharp.Parser.AST.QualifiedType.__Internal Replacement; public global::CppSharp.Parser.AST.QualifiedType.__Internal Replacement;
[FieldOffset(24)]
public global::System.IntPtr ReplacedParameter;
[SuppressUnmanagedCodeSecurity] [SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")] EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")]
@ -2320,7 +2323,7 @@ namespace CppSharp
private static void* __CopyValue(TemplateParameterSubstitutionType.__Internal native) private static void* __CopyValue(TemplateParameterSubstitutionType.__Internal native)
{ {
var ret = Marshal.AllocHGlobal(24); var ret = Marshal.AllocHGlobal(32);
global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native)); global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native));
return ret.ToPointer(); return ret.ToPointer();
} }
@ -2344,7 +2347,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType() public TemplateParameterSubstitutionType()
: this((void*) null) : this((void*) null)
{ {
__Instance = Marshal.AllocHGlobal(24); __Instance = Marshal.AllocHGlobal(32);
__ownsNativeInstance = true; __ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this; NativeToManagedMap[__Instance] = this;
__Internal.ctor_0((__Instance + __PointerAdjustment)); __Internal.ctor_0((__Instance + __PointerAdjustment));
@ -2353,7 +2356,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0) public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0)
: this((void*) null) : this((void*) null)
{ {
__Instance = Marshal.AllocHGlobal(24); __Instance = Marshal.AllocHGlobal(32);
__ownsNativeInstance = true; __ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this; NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null)) if (ReferenceEquals(_0, null))
@ -2374,6 +2377,24 @@ namespace CppSharp
((__Internal*) __Instance)->Replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance; ((__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.TemplateParameterType ReplacedParameter
{
get
{
global::CppSharp.Parser.AST.TemplateParameterType __result0;
if (((__Internal*) __Instance)->ReplacedParameter == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((__Internal*) __Instance)->ReplacedParameter))
__result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((__Internal*) __Instance)->ReplacedParameter];
else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((__Internal*) __Instance)->ReplacedParameter);
return __result0;
}
set
{
((__Internal*) __Instance)->ReplacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
}
}
} }
public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable

56
src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs

@ -949,6 +949,62 @@ public unsafe partial struct PthreadRwlockT
} }
} }
public unsafe partial class PthreadUnwindBufT
{
[StructLayout(LayoutKind.Explicit, Size = 104)]
public partial struct __Internal
{
[FieldOffset(0)]
public fixed byte __cancel_jmp_buf[72];
[FieldOffset(72)]
public void* __pad;
[FieldOffset(80)]
public global::System.IntPtr __dummy___pad_1;
[FieldOffset(88)]
public global::System.IntPtr __dummy___pad_2;
[FieldOffset(96)]
public global::System.IntPtr __dummy___pad_3;
}
public unsafe partial class _
{
[StructLayout(LayoutKind.Explicit, Size = 72)]
public partial struct __Internal
{
[FieldOffset(0)]
public fixed long __cancel_jmp_buf[8];
[FieldOffset(8)]
public long __dummy___cancel_jmp_buf_1;
[FieldOffset(16)]
public long __dummy___cancel_jmp_buf_2;
[FieldOffset(24)]
public long __dummy___cancel_jmp_buf_3;
[FieldOffset(32)]
public long __dummy___cancel_jmp_buf_4;
[FieldOffset(40)]
public long __dummy___cancel_jmp_buf_5;
[FieldOffset(48)]
public long __dummy___cancel_jmp_buf_6;
[FieldOffset(56)]
public long __dummy___cancel_jmp_buf_7;
[FieldOffset(64)]
public int __mask_was_saved;
}
}
}
namespace Std namespace Std
{ {
public unsafe partial class BasicString : IDisposable public unsafe partial class BasicString : IDisposable

1067
src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs

File diff suppressed because it is too large Load Diff

14
src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs

@ -622,6 +622,10 @@ namespace Std
} }
} }
namespace Std
{
}
namespace Std namespace Std
{ {
namespace TreeVal namespace TreeVal
@ -795,6 +799,16 @@ public unsafe partial class Cvtvec
} }
} }
namespace Std
{
[Flags]
public enum CodecvtMode
{
_Consume_header = 4,
_Generate_header = 2
}
}
namespace Std namespace Std
{ {
public unsafe partial class ErrorCode public unsafe partial class ErrorCode

6
src/CppParser/Parser.cpp

@ -2491,6 +2491,10 @@ Type* Parser::WalkType(clang::QualType QualType, clang::TypeLoc* TL,
auto RepTy = TP->getReplacementType(); auto RepTy = TP->getReplacementType();
TPT->Replacement = GetQualifiedType(RepTy, &Next); TPT->Replacement = GetQualifiedType(RepTy, &Next);
TPT->ReplacedParameter = (TemplateParameterType*)
WalkType(clang::QualType(TP->getReplacedParameter(), 0), 0);
TPT->ReplacedParameter->Parameter = WalkTypeTemplateParameter(
TP->getReplacedParameter()->getDecl());
Ty = TPT; Ty = TPT;
break; break;
@ -2765,7 +2769,7 @@ void Parser::WalkFunction(const clang::FunctionDecl* FD, Function* F,
F->IsDependent = FD->isDependentContext(); F->IsDependent = FD->isDependentContext();
F->IsPure = FD->isPure(); F->IsPure = FD->isPure();
F->IsDeleted = FD->isDeleted(); F->IsDeleted = FD->isDeleted();
if (auto InstantiatedFrom = FD->getInstantiatedFromMemberFunction()) if (auto InstantiatedFrom = FD->getTemplateInstantiationPattern())
F->InstantiatedFrom = static_cast<Function*>(WalkDeclaration(InstantiatedFrom)); F->InstantiatedFrom = static_cast<Function*>(WalkDeclaration(InstantiatedFrom));
auto CC = FT->getCallConv(); auto CC = FT->getCallConv();

1
src/Parser/ASTConverter.cs

@ -655,6 +655,7 @@ namespace CppSharp
{ {
var _type = new AST.TemplateParameterSubstitutionType(); var _type = new AST.TemplateParameterSubstitutionType();
_type.Replacement = VisitQualified(type.Replacement); _type.Replacement = VisitQualified(type.Replacement);
_type.ReplacedParameter = (AST.TemplateParameterType) Visit(type.ReplacedParameter);
VisitType(type, _type); VisitType(type, _type);
return _type; return _type;
} }

Loading…
Cancel
Save