Browse Source

Bind the tag kind (struct, class, enum) of a type

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/1625/head
Dimitar Dobrev 4 years ago
parent
commit
8d8c67d3a4
  1. 11
      src/AST/Class.cs
  2. 1
      src/CppParser/AST.cpp
  3. 10
      src/CppParser/Bindings/CLI/Decl.cpp
  4. 16
      src/CppParser/Bindings/CLI/Decl.h
  5. 3
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser-symbols.cpp
  6. 31
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
  7. 3
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser-symbols.cpp
  8. 31
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
  9. 3
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser-symbols.cpp
  10. 25
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
  11. 3
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser-symbols.cpp
  12. 25
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
  13. 3
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser-symbols.cpp
  14. 25
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
  15. 3
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser-symbols.cpp
  16. 25
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
  17. 10
      src/CppParser/Decl.h
  18. 20
      src/CppParser/Parser.cpp
  19. 22
      src/Parser/ASTConverter.cs

11
src/AST/Class.cs

@ -14,6 +14,15 @@ namespace CppSharp.AST @@ -14,6 +14,15 @@ namespace CppSharp.AST
Internal
}
public enum TagKind
{
Struct,
Interface,
Union,
Class,
Enum
}
// A C++ access specifier declaration.
public class AccessSpecifierDecl : Declaration
{
@ -86,6 +95,8 @@ namespace CppSharp.AST @@ -86,6 +95,8 @@ namespace CppSharp.AST
// True if the type is to be treated as a union.
public bool IsUnion;
public TagKind TagKind { get; set; }
// True if the class is final / sealed.
public bool IsFinal { get; set; }

1
src/CppParser/AST.cpp

@ -740,6 +740,7 @@ Class::Class() @@ -740,6 +740,7 @@ Class::Class()
, isExternCContext(false)
, isInjected(false)
, layout(0)
, tagKind(TagKind::Struct)
{
}

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

@ -3692,6 +3692,16 @@ void CppSharp::Parser::AST::Class::IsInjected::set(bool value) @@ -3692,6 +3692,16 @@ void CppSharp::Parser::AST::Class::IsInjected::set(bool value)
((struct ::CppSharp::CppParser::AST::Class*)NativePtr)->isInjected = value;
}
CppSharp::Parser::AST::TagKind CppSharp::Parser::AST::Class::TagKind::get()
{
return (CppSharp::Parser::AST::TagKind)((struct ::CppSharp::CppParser::AST::Class*)NativePtr)->tagKind;
}
void CppSharp::Parser::AST::Class::TagKind::set(CppSharp::Parser::AST::TagKind value)
{
((struct ::CppSharp::CppParser::AST::Class*)NativePtr)->tagKind = (enum ::CppSharp::CppParser::AST::TagKind)value;
}
CppSharp::Parser::AST::ClassLayout^ CppSharp::Parser::AST::Class::Layout::get()
{
return (((struct ::CppSharp::CppParser::AST::Class*)NativePtr)->layout == nullptr) ? nullptr : gcnew ::CppSharp::Parser::AST::ClassLayout((struct ::CppSharp::CppParser::AST::ClassLayout*)((struct ::CppSharp::CppParser::AST::Class*)NativePtr)->layout);

16
src/CppParser/Bindings/CLI/Decl.h

@ -28,6 +28,7 @@ namespace CppSharp @@ -28,6 +28,7 @@ namespace CppSharp
enum class RecordArgABI;
enum class RefQualifierKind;
enum class StatementClassObsolete;
enum class TagKind;
enum class TemplateSpecializationKind;
enum class VTableComponentKind;
ref class ASTContext;
@ -240,6 +241,15 @@ namespace CppSharp @@ -240,6 +241,15 @@ namespace CppSharp
RValue = 2
};
public enum class TagKind
{
Struct = 0,
Interface = 1,
Union = 2,
Class = 3,
Enum = 4
};
public enum class CppAbi
{
Itanium = 0,
@ -1841,6 +1851,12 @@ namespace CppSharp @@ -1841,6 +1851,12 @@ namespace CppSharp
void set(bool);
}
property CppSharp::Parser::AST::TagKind TagKind
{
CppSharp::Parser::AST::TagKind get();
void set(CppSharp::Parser::AST::TagKind);
}
property CppSharp::Parser::AST::ClassLayout^ Layout
{
CppSharp::Parser::AST::ClassLayout^ get();

3
src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser-symbols.cpp

@ -13,7 +13,6 @@ CppSharp::CppParser::AST::InlineContentComment& (CppSharp::CppParser::AST::Inlin @@ -13,7 +13,6 @@ CppSharp::CppParser::AST::InlineContentComment& (CppSharp::CppParser::AST::Inlin
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_ParagraphComment_ParagraphComment___1__N_CppSharp_N_CppParser_N_AST_S_ParagraphComment(void* __instance, const CppSharp::CppParser::AST::ParagraphComment& _0) { ::new (__instance) CppSharp::CppParser::AST::ParagraphComment(_0); }
CppSharp::CppParser::AST::ParagraphComment& (CppSharp::CppParser::AST::ParagraphComment::*_5)(const CppSharp::CppParser::AST::ParagraphComment&) = &CppSharp::CppParser::AST::ParagraphComment::operator=;
CppSharp::CppParser::AST::BlockCommandComment::Argument& (CppSharp::CppParser::AST::BlockCommandComment::Argument::*_6)(const CppSharp::CppParser::AST::BlockCommandComment::Argument&) = &CppSharp::CppParser::AST::BlockCommandComment::Argument::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_S_Argument__Argument(CppSharp::CppParser::AST::BlockCommandComment::Argument*__instance) { __instance->~Argument(); }
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_BlockCommandComment___1__N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment(void* __instance, const CppSharp::CppParser::AST::BlockCommandComment& _0) { ::new (__instance) CppSharp::CppParser::AST::BlockCommandComment(_0); }
CppSharp::CppParser::AST::BlockCommandComment& (CppSharp::CppParser::AST::BlockCommandComment::*_7)(const CppSharp::CppParser::AST::BlockCommandComment&) = &CppSharp::CppParser::AST::BlockCommandComment::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_ParamCommandComment_ParamCommandComment___1__N_CppSharp_N_CppParser_N_AST_S_ParamCommandComment(void* __instance, const CppSharp::CppParser::AST::ParamCommandComment& _0) { ::new (__instance) CppSharp::CppParser::AST::ParamCommandComment(_0); }
@ -31,7 +30,6 @@ extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_VerbatimLineComment_VerbatimLi @@ -31,7 +30,6 @@ extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_VerbatimLineComment_VerbatimLi
CppSharp::CppParser::AST::VerbatimLineComment& (CppSharp::CppParser::AST::VerbatimLineComment::*_12)(CppSharp::CppParser::AST::VerbatimLineComment&&) = &CppSharp::CppParser::AST::VerbatimLineComment::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_VerbatimLineComment__VerbatimLineComment(CppSharp::CppParser::AST::VerbatimLineComment*__instance) { __instance->~VerbatimLineComment(); }
CppSharp::CppParser::AST::InlineCommandComment::Argument& (CppSharp::CppParser::AST::InlineCommandComment::Argument::*_13)(const CppSharp::CppParser::AST::InlineCommandComment::Argument&) = &CppSharp::CppParser::AST::InlineCommandComment::Argument::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_S_Argument__Argument(CppSharp::CppParser::AST::InlineCommandComment::Argument*__instance) { __instance->~Argument(); }
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_InlineCommandComment___1__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment(void* __instance, const CppSharp::CppParser::AST::InlineCommandComment& _0) { ::new (__instance) CppSharp::CppParser::AST::InlineCommandComment(_0); }
CppSharp::CppParser::AST::InlineCommandComment& (CppSharp::CppParser::AST::InlineCommandComment::*_14)(CppSharp::CppParser::AST::InlineCommandComment&&) = &CppSharp::CppParser::AST::InlineCommandComment::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment__InlineCommandComment(CppSharp::CppParser::AST::InlineCommandComment*__instance) { __instance->~InlineCommandComment(); }
@ -377,6 +375,5 @@ CppSharp::CppParser::CppParserOptions& (CppSharp::CppParser::CppParserOptions::* @@ -377,6 +375,5 @@ CppSharp::CppParser::CppParserOptions& (CppSharp::CppParser::CppParserOptions::*
extern "C" void c__N_CppSharp_N_CppParser_S_LinkerOptions_LinkerOptions___1__N_CppSharp_N_CppParser_S_LinkerOptions(void* __instance, const CppSharp::CppParser::LinkerOptions& _0) { ::new (__instance) CppSharp::CppParser::LinkerOptions(_0); }
CppSharp::CppParser::LinkerOptions& (CppSharp::CppParser::LinkerOptions::*_241)(const CppSharp::CppParser::LinkerOptions&) = &CppSharp::CppParser::LinkerOptions::operator=;
CppSharp::CppParser::ParserDiagnostic& (CppSharp::CppParser::ParserDiagnostic::*_242)(const CppSharp::CppParser::ParserDiagnostic&) = &CppSharp::CppParser::ParserDiagnostic::operator=;
extern "C" void c__N_CppSharp_N_CppParser_S_ParserDiagnostic__ParserDiagnostic(CppSharp::CppParser::ParserDiagnostic*__instance) { __instance->~ParserDiagnostic(); }
CppSharp::CppParser::ParserResult& (CppSharp::CppParser::ParserResult::*_243)(const CppSharp::CppParser::ParserResult&) = &CppSharp::CppParser::ParserResult::operator=;
CppSharp::CppParser::ClangParser& (CppSharp::CppParser::ClangParser::*_244)(CppSharp::CppParser::ClangParser&&) = &CppSharp::CppParser::ClangParser::operator=;

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

@ -6154,6 +6154,15 @@ namespace CppSharp @@ -6154,6 +6154,15 @@ namespace CppSharp
RValue = 2
}
public enum TagKind
{
Struct = 0,
Interface = 1,
Union = 2,
Class = 3,
Enum = 4
}
public enum CppAbi
{
Itanium = 0,
@ -11499,7 +11508,7 @@ namespace CppSharp @@ -11499,7 +11508,7 @@ namespace CppSharp
public unsafe partial class Class : global::CppSharp.Parser.AST.DeclarationContext, IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 304)]
[StructLayout(LayoutKind.Sequential, Size = 308)]
public new partial struct __Internal
{
internal global::CppSharp.Parser.AST.DeclarationKind kind;
@ -11549,6 +11558,7 @@ namespace CppSharp @@ -11549,6 +11558,7 @@ namespace CppSharp
internal byte hasNonTrivialDestructor;
internal byte isExternCContext;
internal byte isInjected;
internal global::CppSharp.Parser.AST.TagKind tagKind;
internal __IntPtr layout;
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST5ClassC2Ev", CallingConvention = __CallingConvention.Cdecl)]
@ -11900,6 +11910,19 @@ namespace CppSharp @@ -11900,6 +11910,19 @@ namespace CppSharp
}
}
public global::CppSharp.Parser.AST.TagKind TagKind
{
get
{
return ((__Internal*)__Instance)->tagKind;
}
set
{
((__Internal*)__Instance)->tagKind = value;
}
}
public global::CppSharp.Parser.AST.ClassLayout Layout
{
get
@ -13100,7 +13123,7 @@ namespace CppSharp @@ -13100,7 +13123,7 @@ namespace CppSharp
public unsafe partial class ClassTemplateSpecialization : global::CppSharp.Parser.AST.Class, IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 324)]
[StructLayout(LayoutKind.Sequential, Size = 328)]
public new partial struct __Internal
{
internal global::CppSharp.Parser.AST.DeclarationKind kind;
@ -13150,6 +13173,7 @@ namespace CppSharp @@ -13150,6 +13173,7 @@ namespace CppSharp
internal byte hasNonTrivialDestructor;
internal byte isExternCContext;
internal byte isInjected;
internal global::CppSharp.Parser.AST.TagKind tagKind;
internal __IntPtr layout;
internal __IntPtr templatedDecl;
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_N___1_S_allocator__S0_ Arguments;
@ -13313,7 +13337,7 @@ namespace CppSharp @@ -13313,7 +13337,7 @@ namespace CppSharp
public unsafe partial class ClassTemplatePartialSpecialization : global::CppSharp.Parser.AST.ClassTemplateSpecialization, IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 324)]
[StructLayout(LayoutKind.Sequential, Size = 328)]
public new partial struct __Internal
{
internal global::CppSharp.Parser.AST.DeclarationKind kind;
@ -13363,6 +13387,7 @@ namespace CppSharp @@ -13363,6 +13387,7 @@ namespace CppSharp
internal byte hasNonTrivialDestructor;
internal byte isExternCContext;
internal byte isInjected;
internal global::CppSharp.Parser.AST.TagKind tagKind;
internal __IntPtr layout;
internal __IntPtr templatedDecl;
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_N___1_S_allocator__S0_ Arguments;

3
src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser-symbols.cpp

@ -13,7 +13,6 @@ CppSharp::CppParser::AST::InlineContentComment& (CppSharp::CppParser::AST::Inlin @@ -13,7 +13,6 @@ CppSharp::CppParser::AST::InlineContentComment& (CppSharp::CppParser::AST::Inlin
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_ParagraphComment_ParagraphComment___1__N_CppSharp_N_CppParser_N_AST_S_ParagraphComment(void* __instance, const CppSharp::CppParser::AST::ParagraphComment& _0) { ::new (__instance) CppSharp::CppParser::AST::ParagraphComment(_0); }
CppSharp::CppParser::AST::ParagraphComment& (CppSharp::CppParser::AST::ParagraphComment::*_5)(const CppSharp::CppParser::AST::ParagraphComment&) = &CppSharp::CppParser::AST::ParagraphComment::operator=;
CppSharp::CppParser::AST::BlockCommandComment::Argument& (CppSharp::CppParser::AST::BlockCommandComment::Argument::*_6)(const CppSharp::CppParser::AST::BlockCommandComment::Argument&) = &CppSharp::CppParser::AST::BlockCommandComment::Argument::operator=;
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_S_Argument__Argument(CppSharp::CppParser::AST::BlockCommandComment::Argument*__instance) { __instance->~Argument(); }
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_BlockCommandComment___1__N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment(void* __instance, const CppSharp::CppParser::AST::BlockCommandComment& _0) { ::new (__instance) CppSharp::CppParser::AST::BlockCommandComment(_0); }
CppSharp::CppParser::AST::BlockCommandComment& (CppSharp::CppParser::AST::BlockCommandComment::*_7)(const CppSharp::CppParser::AST::BlockCommandComment&) = &CppSharp::CppParser::AST::BlockCommandComment::operator=;
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_ParamCommandComment_ParamCommandComment___1__N_CppSharp_N_CppParser_N_AST_S_ParamCommandComment(void* __instance, const CppSharp::CppParser::AST::ParamCommandComment& _0) { ::new (__instance) CppSharp::CppParser::AST::ParamCommandComment(_0); }
@ -31,7 +30,6 @@ extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_Verbatim @@ -31,7 +30,6 @@ extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_Verbatim
CppSharp::CppParser::AST::VerbatimLineComment& (CppSharp::CppParser::AST::VerbatimLineComment::*_12)(CppSharp::CppParser::AST::VerbatimLineComment&&) = &CppSharp::CppParser::AST::VerbatimLineComment::operator=;
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_VerbatimLineComment__VerbatimLineComment(CppSharp::CppParser::AST::VerbatimLineComment*__instance) { __instance->~VerbatimLineComment(); }
CppSharp::CppParser::AST::InlineCommandComment::Argument& (CppSharp::CppParser::AST::InlineCommandComment::Argument::*_13)(const CppSharp::CppParser::AST::InlineCommandComment::Argument&) = &CppSharp::CppParser::AST::InlineCommandComment::Argument::operator=;
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_S_Argument__Argument(CppSharp::CppParser::AST::InlineCommandComment::Argument*__instance) { __instance->~Argument(); }
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_InlineCommandComment___1__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment(void* __instance, const CppSharp::CppParser::AST::InlineCommandComment& _0) { ::new (__instance) CppSharp::CppParser::AST::InlineCommandComment(_0); }
CppSharp::CppParser::AST::InlineCommandComment& (CppSharp::CppParser::AST::InlineCommandComment::*_14)(CppSharp::CppParser::AST::InlineCommandComment&&) = &CppSharp::CppParser::AST::InlineCommandComment::operator=;
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment__InlineCommandComment(CppSharp::CppParser::AST::InlineCommandComment*__instance) { __instance->~InlineCommandComment(); }
@ -377,6 +375,5 @@ CppSharp::CppParser::CppParserOptions& (CppSharp::CppParser::CppParserOptions::* @@ -377,6 +375,5 @@ CppSharp::CppParser::CppParserOptions& (CppSharp::CppParser::CppParserOptions::*
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_S_LinkerOptions_LinkerOptions___1__N_CppSharp_N_CppParser_S_LinkerOptions(void* __instance, const CppSharp::CppParser::LinkerOptions& _0) { ::new (__instance) CppSharp::CppParser::LinkerOptions(_0); }
CppSharp::CppParser::LinkerOptions& (CppSharp::CppParser::LinkerOptions::*_241)(const CppSharp::CppParser::LinkerOptions&) = &CppSharp::CppParser::LinkerOptions::operator=;
CppSharp::CppParser::ParserDiagnostic& (CppSharp::CppParser::ParserDiagnostic::*_242)(const CppSharp::CppParser::ParserDiagnostic&) = &CppSharp::CppParser::ParserDiagnostic::operator=;
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_S_ParserDiagnostic__ParserDiagnostic(CppSharp::CppParser::ParserDiagnostic*__instance) { __instance->~ParserDiagnostic(); }
CppSharp::CppParser::ParserResult& (CppSharp::CppParser::ParserResult::*_243)(const CppSharp::CppParser::ParserResult&) = &CppSharp::CppParser::ParserResult::operator=;
CppSharp::CppParser::ClangParser& (CppSharp::CppParser::ClangParser::*_244)(CppSharp::CppParser::ClangParser&&) = &CppSharp::CppParser::ClangParser::operator=;

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

@ -6154,6 +6154,15 @@ namespace CppSharp @@ -6154,6 +6154,15 @@ namespace CppSharp
RValue = 2
}
public enum TagKind
{
Struct = 0,
Interface = 1,
Union = 2,
Class = 3,
Enum = 4
}
public enum CppAbi
{
Itanium = 0,
@ -11499,7 +11508,7 @@ namespace CppSharp @@ -11499,7 +11508,7 @@ namespace CppSharp
public unsafe partial class Class : global::CppSharp.Parser.AST.DeclarationContext, IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 336)]
[StructLayout(LayoutKind.Sequential, Size = 340)]
public new partial struct __Internal
{
internal global::CppSharp.Parser.AST.DeclarationKind kind;
@ -11549,6 +11558,7 @@ namespace CppSharp @@ -11549,6 +11558,7 @@ namespace CppSharp
internal byte hasNonTrivialDestructor;
internal byte isExternCContext;
internal byte isInjected;
internal global::CppSharp.Parser.AST.TagKind tagKind;
internal __IntPtr layout;
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "??0Class@AST@CppParser@CppSharp@@QAE@XZ", CallingConvention = __CallingConvention.ThisCall)]
@ -11900,6 +11910,19 @@ namespace CppSharp @@ -11900,6 +11910,19 @@ namespace CppSharp
}
}
public global::CppSharp.Parser.AST.TagKind TagKind
{
get
{
return ((__Internal*)__Instance)->tagKind;
}
set
{
((__Internal*)__Instance)->tagKind = value;
}
}
public global::CppSharp.Parser.AST.ClassLayout Layout
{
get
@ -13100,7 +13123,7 @@ namespace CppSharp @@ -13100,7 +13123,7 @@ namespace CppSharp
public unsafe partial class ClassTemplateSpecialization : global::CppSharp.Parser.AST.Class, IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 356)]
[StructLayout(LayoutKind.Sequential, Size = 360)]
public new partial struct __Internal
{
internal global::CppSharp.Parser.AST.DeclarationKind kind;
@ -13150,6 +13173,7 @@ namespace CppSharp @@ -13150,6 +13173,7 @@ namespace CppSharp
internal byte hasNonTrivialDestructor;
internal byte isExternCContext;
internal byte isInjected;
internal global::CppSharp.Parser.AST.TagKind tagKind;
internal __IntPtr layout;
internal __IntPtr templatedDecl;
internal global::Std.Vector.__Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_S_allocator__S0_ Arguments;
@ -13313,7 +13337,7 @@ namespace CppSharp @@ -13313,7 +13337,7 @@ namespace CppSharp
public unsafe partial class ClassTemplatePartialSpecialization : global::CppSharp.Parser.AST.ClassTemplateSpecialization, IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 356)]
[StructLayout(LayoutKind.Sequential, Size = 360)]
public new partial struct __Internal
{
internal global::CppSharp.Parser.AST.DeclarationKind kind;
@ -13363,6 +13387,7 @@ namespace CppSharp @@ -13363,6 +13387,7 @@ namespace CppSharp
internal byte hasNonTrivialDestructor;
internal byte isExternCContext;
internal byte isInjected;
internal global::CppSharp.Parser.AST.TagKind tagKind;
internal __IntPtr layout;
internal __IntPtr templatedDecl;
internal global::Std.Vector.__Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_S_allocator__S0_ Arguments;

3
src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser-symbols.cpp

@ -13,7 +13,6 @@ CppSharp::CppParser::AST::InlineContentComment& (CppSharp::CppParser::AST::Inlin @@ -13,7 +13,6 @@ CppSharp::CppParser::AST::InlineContentComment& (CppSharp::CppParser::AST::Inlin
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_ParagraphComment_ParagraphComment___1__N_CppSharp_N_CppParser_N_AST_S_ParagraphComment(void* __instance, const CppSharp::CppParser::AST::ParagraphComment& _0) { ::new (__instance) CppSharp::CppParser::AST::ParagraphComment(_0); }
CppSharp::CppParser::AST::ParagraphComment& (CppSharp::CppParser::AST::ParagraphComment::*_5)(const CppSharp::CppParser::AST::ParagraphComment&) = &CppSharp::CppParser::AST::ParagraphComment::operator=;
CppSharp::CppParser::AST::BlockCommandComment::Argument& (CppSharp::CppParser::AST::BlockCommandComment::Argument::*_6)(const CppSharp::CppParser::AST::BlockCommandComment::Argument&) = &CppSharp::CppParser::AST::BlockCommandComment::Argument::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_S_Argument__Argument(CppSharp::CppParser::AST::BlockCommandComment::Argument*__instance) { __instance->~Argument(); }
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_BlockCommandComment___1__N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment(void* __instance, const CppSharp::CppParser::AST::BlockCommandComment& _0) { ::new (__instance) CppSharp::CppParser::AST::BlockCommandComment(_0); }
CppSharp::CppParser::AST::BlockCommandComment& (CppSharp::CppParser::AST::BlockCommandComment::*_7)(const CppSharp::CppParser::AST::BlockCommandComment&) = &CppSharp::CppParser::AST::BlockCommandComment::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_ParamCommandComment_ParamCommandComment___1__N_CppSharp_N_CppParser_N_AST_S_ParamCommandComment(void* __instance, const CppSharp::CppParser::AST::ParamCommandComment& _0) { ::new (__instance) CppSharp::CppParser::AST::ParamCommandComment(_0); }
@ -31,7 +30,6 @@ extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_VerbatimLineComment_VerbatimLi @@ -31,7 +30,6 @@ extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_VerbatimLineComment_VerbatimLi
CppSharp::CppParser::AST::VerbatimLineComment& (CppSharp::CppParser::AST::VerbatimLineComment::*_12)(CppSharp::CppParser::AST::VerbatimLineComment&&) = &CppSharp::CppParser::AST::VerbatimLineComment::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_VerbatimLineComment__VerbatimLineComment(CppSharp::CppParser::AST::VerbatimLineComment*__instance) { __instance->~VerbatimLineComment(); }
CppSharp::CppParser::AST::InlineCommandComment::Argument& (CppSharp::CppParser::AST::InlineCommandComment::Argument::*_13)(const CppSharp::CppParser::AST::InlineCommandComment::Argument&) = &CppSharp::CppParser::AST::InlineCommandComment::Argument::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_S_Argument__Argument(CppSharp::CppParser::AST::InlineCommandComment::Argument*__instance) { __instance->~Argument(); }
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_InlineCommandComment___1__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment(void* __instance, const CppSharp::CppParser::AST::InlineCommandComment& _0) { ::new (__instance) CppSharp::CppParser::AST::InlineCommandComment(_0); }
CppSharp::CppParser::AST::InlineCommandComment& (CppSharp::CppParser::AST::InlineCommandComment::*_14)(CppSharp::CppParser::AST::InlineCommandComment&&) = &CppSharp::CppParser::AST::InlineCommandComment::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment__InlineCommandComment(CppSharp::CppParser::AST::InlineCommandComment*__instance) { __instance->~InlineCommandComment(); }
@ -377,6 +375,5 @@ CppSharp::CppParser::CppParserOptions& (CppSharp::CppParser::CppParserOptions::* @@ -377,6 +375,5 @@ CppSharp::CppParser::CppParserOptions& (CppSharp::CppParser::CppParserOptions::*
extern "C" void c__N_CppSharp_N_CppParser_S_LinkerOptions_LinkerOptions___1__N_CppSharp_N_CppParser_S_LinkerOptions(void* __instance, const CppSharp::CppParser::LinkerOptions& _0) { ::new (__instance) CppSharp::CppParser::LinkerOptions(_0); }
CppSharp::CppParser::LinkerOptions& (CppSharp::CppParser::LinkerOptions::*_241)(const CppSharp::CppParser::LinkerOptions&) = &CppSharp::CppParser::LinkerOptions::operator=;
CppSharp::CppParser::ParserDiagnostic& (CppSharp::CppParser::ParserDiagnostic::*_242)(const CppSharp::CppParser::ParserDiagnostic&) = &CppSharp::CppParser::ParserDiagnostic::operator=;
extern "C" void c__N_CppSharp_N_CppParser_S_ParserDiagnostic__ParserDiagnostic(CppSharp::CppParser::ParserDiagnostic*__instance) { __instance->~ParserDiagnostic(); }
CppSharp::CppParser::ParserResult& (CppSharp::CppParser::ParserResult::*_243)(const CppSharp::CppParser::ParserResult&) = &CppSharp::CppParser::ParserResult::operator=;
CppSharp::CppParser::ClangParser& (CppSharp::CppParser::ClangParser::*_244)(CppSharp::CppParser::ClangParser&&) = &CppSharp::CppParser::ClangParser::operator=;

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

@ -6154,6 +6154,15 @@ namespace CppSharp @@ -6154,6 +6154,15 @@ namespace CppSharp
RValue = 2
}
public enum TagKind
{
Struct = 0,
Interface = 1,
Union = 2,
Class = 3,
Enum = 4
}
public enum CppAbi
{
Itanium = 0,
@ -11548,6 +11557,7 @@ namespace CppSharp @@ -11548,6 +11557,7 @@ namespace CppSharp
internal byte hasNonTrivialDestructor;
internal byte isExternCContext;
internal byte isInjected;
internal global::CppSharp.Parser.AST.TagKind tagKind;
internal __IntPtr layout;
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST5ClassC2Ev", CallingConvention = __CallingConvention.Cdecl)]
@ -11899,6 +11909,19 @@ namespace CppSharp @@ -11899,6 +11909,19 @@ namespace CppSharp
}
}
public global::CppSharp.Parser.AST.TagKind TagKind
{
get
{
return ((__Internal*)__Instance)->tagKind;
}
set
{
((__Internal*)__Instance)->tagKind = value;
}
}
public global::CppSharp.Parser.AST.ClassLayout Layout
{
get
@ -13149,6 +13172,7 @@ namespace CppSharp @@ -13149,6 +13172,7 @@ namespace CppSharp
internal byte hasNonTrivialDestructor;
internal byte isExternCContext;
internal byte isInjected;
internal global::CppSharp.Parser.AST.TagKind tagKind;
internal __IntPtr layout;
internal __IntPtr templatedDecl;
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_N___1_S_allocator__S0_ Arguments;
@ -13362,6 +13386,7 @@ namespace CppSharp @@ -13362,6 +13386,7 @@ namespace CppSharp
internal byte hasNonTrivialDestructor;
internal byte isExternCContext;
internal byte isInjected;
internal global::CppSharp.Parser.AST.TagKind tagKind;
internal __IntPtr layout;
internal __IntPtr templatedDecl;
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_N___1_S_allocator__S0_ Arguments;

3
src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser-symbols.cpp

@ -13,7 +13,6 @@ CppSharp::CppParser::AST::InlineContentComment& (CppSharp::CppParser::AST::Inlin @@ -13,7 +13,6 @@ CppSharp::CppParser::AST::InlineContentComment& (CppSharp::CppParser::AST::Inlin
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_ParagraphComment_ParagraphComment___1__N_CppSharp_N_CppParser_N_AST_S_ParagraphComment(void* __instance, const CppSharp::CppParser::AST::ParagraphComment& _0) { ::new (__instance) CppSharp::CppParser::AST::ParagraphComment(_0); }
CppSharp::CppParser::AST::ParagraphComment& (CppSharp::CppParser::AST::ParagraphComment::*_5)(const CppSharp::CppParser::AST::ParagraphComment&) = &CppSharp::CppParser::AST::ParagraphComment::operator=;
CppSharp::CppParser::AST::BlockCommandComment::Argument& (CppSharp::CppParser::AST::BlockCommandComment::Argument::*_6)(const CppSharp::CppParser::AST::BlockCommandComment::Argument&) = &CppSharp::CppParser::AST::BlockCommandComment::Argument::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_S_Argument__Argument(CppSharp::CppParser::AST::BlockCommandComment::Argument*__instance) { __instance->~Argument(); }
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_BlockCommandComment___1__N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment(void* __instance, const CppSharp::CppParser::AST::BlockCommandComment& _0) { ::new (__instance) CppSharp::CppParser::AST::BlockCommandComment(_0); }
CppSharp::CppParser::AST::BlockCommandComment& (CppSharp::CppParser::AST::BlockCommandComment::*_7)(const CppSharp::CppParser::AST::BlockCommandComment&) = &CppSharp::CppParser::AST::BlockCommandComment::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_ParamCommandComment_ParamCommandComment___1__N_CppSharp_N_CppParser_N_AST_S_ParamCommandComment(void* __instance, const CppSharp::CppParser::AST::ParamCommandComment& _0) { ::new (__instance) CppSharp::CppParser::AST::ParamCommandComment(_0); }
@ -31,7 +30,6 @@ extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_VerbatimLineComment_VerbatimLi @@ -31,7 +30,6 @@ extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_VerbatimLineComment_VerbatimLi
CppSharp::CppParser::AST::VerbatimLineComment& (CppSharp::CppParser::AST::VerbatimLineComment::*_12)(CppSharp::CppParser::AST::VerbatimLineComment&&) = &CppSharp::CppParser::AST::VerbatimLineComment::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_VerbatimLineComment__VerbatimLineComment(CppSharp::CppParser::AST::VerbatimLineComment*__instance) { __instance->~VerbatimLineComment(); }
CppSharp::CppParser::AST::InlineCommandComment::Argument& (CppSharp::CppParser::AST::InlineCommandComment::Argument::*_13)(const CppSharp::CppParser::AST::InlineCommandComment::Argument&) = &CppSharp::CppParser::AST::InlineCommandComment::Argument::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_S_Argument__Argument(CppSharp::CppParser::AST::InlineCommandComment::Argument*__instance) { __instance->~Argument(); }
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_InlineCommandComment___1__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment(void* __instance, const CppSharp::CppParser::AST::InlineCommandComment& _0) { ::new (__instance) CppSharp::CppParser::AST::InlineCommandComment(_0); }
CppSharp::CppParser::AST::InlineCommandComment& (CppSharp::CppParser::AST::InlineCommandComment::*_14)(CppSharp::CppParser::AST::InlineCommandComment&&) = &CppSharp::CppParser::AST::InlineCommandComment::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment__InlineCommandComment(CppSharp::CppParser::AST::InlineCommandComment*__instance) { __instance->~InlineCommandComment(); }
@ -377,6 +375,5 @@ CppSharp::CppParser::CppParserOptions& (CppSharp::CppParser::CppParserOptions::* @@ -377,6 +375,5 @@ CppSharp::CppParser::CppParserOptions& (CppSharp::CppParser::CppParserOptions::*
extern "C" void c__N_CppSharp_N_CppParser_S_LinkerOptions_LinkerOptions___1__N_CppSharp_N_CppParser_S_LinkerOptions(void* __instance, const CppSharp::CppParser::LinkerOptions& _0) { ::new (__instance) CppSharp::CppParser::LinkerOptions(_0); }
CppSharp::CppParser::LinkerOptions& (CppSharp::CppParser::LinkerOptions::*_241)(const CppSharp::CppParser::LinkerOptions&) = &CppSharp::CppParser::LinkerOptions::operator=;
CppSharp::CppParser::ParserDiagnostic& (CppSharp::CppParser::ParserDiagnostic::*_242)(const CppSharp::CppParser::ParserDiagnostic&) = &CppSharp::CppParser::ParserDiagnostic::operator=;
extern "C" void c__N_CppSharp_N_CppParser_S_ParserDiagnostic__ParserDiagnostic(CppSharp::CppParser::ParserDiagnostic*__instance) { __instance->~ParserDiagnostic(); }
CppSharp::CppParser::ParserResult& (CppSharp::CppParser::ParserResult::*_243)(const CppSharp::CppParser::ParserResult&) = &CppSharp::CppParser::ParserResult::operator=;
CppSharp::CppParser::ClangParser& (CppSharp::CppParser::ClangParser::*_244)(CppSharp::CppParser::ClangParser&&) = &CppSharp::CppParser::ClangParser::operator=;

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

@ -6154,6 +6154,15 @@ namespace CppSharp @@ -6154,6 +6154,15 @@ namespace CppSharp
RValue = 2
}
public enum TagKind
{
Struct = 0,
Interface = 1,
Union = 2,
Class = 3,
Enum = 4
}
public enum CppAbi
{
Itanium = 0,
@ -11548,6 +11557,7 @@ namespace CppSharp @@ -11548,6 +11557,7 @@ namespace CppSharp
internal byte hasNonTrivialDestructor;
internal byte isExternCContext;
internal byte isInjected;
internal global::CppSharp.Parser.AST.TagKind tagKind;
internal __IntPtr layout;
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST5ClassC2Ev", CallingConvention = __CallingConvention.Cdecl)]
@ -11899,6 +11909,19 @@ namespace CppSharp @@ -11899,6 +11909,19 @@ namespace CppSharp
}
}
public global::CppSharp.Parser.AST.TagKind TagKind
{
get
{
return ((__Internal*)__Instance)->tagKind;
}
set
{
((__Internal*)__Instance)->tagKind = value;
}
}
public global::CppSharp.Parser.AST.ClassLayout Layout
{
get
@ -13149,6 +13172,7 @@ namespace CppSharp @@ -13149,6 +13172,7 @@ namespace CppSharp
internal byte hasNonTrivialDestructor;
internal byte isExternCContext;
internal byte isInjected;
internal global::CppSharp.Parser.AST.TagKind tagKind;
internal __IntPtr layout;
internal __IntPtr templatedDecl;
internal global::Std.Vector.__Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_S_allocator__S0_ Arguments;
@ -13362,6 +13386,7 @@ namespace CppSharp @@ -13362,6 +13386,7 @@ namespace CppSharp
internal byte hasNonTrivialDestructor;
internal byte isExternCContext;
internal byte isInjected;
internal global::CppSharp.Parser.AST.TagKind tagKind;
internal __IntPtr layout;
internal __IntPtr templatedDecl;
internal global::Std.Vector.__Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_S_allocator__S0_ Arguments;

3
src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser-symbols.cpp

@ -13,7 +13,6 @@ CppSharp::CppParser::AST::InlineContentComment& (CppSharp::CppParser::AST::Inlin @@ -13,7 +13,6 @@ CppSharp::CppParser::AST::InlineContentComment& (CppSharp::CppParser::AST::Inlin
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_ParagraphComment_ParagraphComment___1__N_CppSharp_N_CppParser_N_AST_S_ParagraphComment(void* __instance, const CppSharp::CppParser::AST::ParagraphComment& _0) { ::new (__instance) CppSharp::CppParser::AST::ParagraphComment(_0); }
CppSharp::CppParser::AST::ParagraphComment& (CppSharp::CppParser::AST::ParagraphComment::*_5)(const CppSharp::CppParser::AST::ParagraphComment&) = &CppSharp::CppParser::AST::ParagraphComment::operator=;
CppSharp::CppParser::AST::BlockCommandComment::Argument& (CppSharp::CppParser::AST::BlockCommandComment::Argument::*_6)(const CppSharp::CppParser::AST::BlockCommandComment::Argument&) = &CppSharp::CppParser::AST::BlockCommandComment::Argument::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_S_Argument__Argument(CppSharp::CppParser::AST::BlockCommandComment::Argument*__instance) { __instance->~Argument(); }
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_BlockCommandComment___1__N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment(void* __instance, const CppSharp::CppParser::AST::BlockCommandComment& _0) { ::new (__instance) CppSharp::CppParser::AST::BlockCommandComment(_0); }
CppSharp::CppParser::AST::BlockCommandComment& (CppSharp::CppParser::AST::BlockCommandComment::*_7)(const CppSharp::CppParser::AST::BlockCommandComment&) = &CppSharp::CppParser::AST::BlockCommandComment::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_ParamCommandComment_ParamCommandComment___1__N_CppSharp_N_CppParser_N_AST_S_ParamCommandComment(void* __instance, const CppSharp::CppParser::AST::ParamCommandComment& _0) { ::new (__instance) CppSharp::CppParser::AST::ParamCommandComment(_0); }
@ -31,7 +30,6 @@ extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_VerbatimLineComment_VerbatimLi @@ -31,7 +30,6 @@ extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_VerbatimLineComment_VerbatimLi
CppSharp::CppParser::AST::VerbatimLineComment& (CppSharp::CppParser::AST::VerbatimLineComment::*_12)(CppSharp::CppParser::AST::VerbatimLineComment&&) = &CppSharp::CppParser::AST::VerbatimLineComment::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_VerbatimLineComment__VerbatimLineComment(CppSharp::CppParser::AST::VerbatimLineComment*__instance) { __instance->~VerbatimLineComment(); }
CppSharp::CppParser::AST::InlineCommandComment::Argument& (CppSharp::CppParser::AST::InlineCommandComment::Argument::*_13)(const CppSharp::CppParser::AST::InlineCommandComment::Argument&) = &CppSharp::CppParser::AST::InlineCommandComment::Argument::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_S_Argument__Argument(CppSharp::CppParser::AST::InlineCommandComment::Argument*__instance) { __instance->~Argument(); }
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_InlineCommandComment___1__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment(void* __instance, const CppSharp::CppParser::AST::InlineCommandComment& _0) { ::new (__instance) CppSharp::CppParser::AST::InlineCommandComment(_0); }
CppSharp::CppParser::AST::InlineCommandComment& (CppSharp::CppParser::AST::InlineCommandComment::*_14)(CppSharp::CppParser::AST::InlineCommandComment&&) = &CppSharp::CppParser::AST::InlineCommandComment::operator=;
extern "C" void c__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment__InlineCommandComment(CppSharp::CppParser::AST::InlineCommandComment*__instance) { __instance->~InlineCommandComment(); }
@ -377,6 +375,5 @@ CppSharp::CppParser::CppParserOptions& (CppSharp::CppParser::CppParserOptions::* @@ -377,6 +375,5 @@ CppSharp::CppParser::CppParserOptions& (CppSharp::CppParser::CppParserOptions::*
extern "C" void c__N_CppSharp_N_CppParser_S_LinkerOptions_LinkerOptions___1__N_CppSharp_N_CppParser_S_LinkerOptions(void* __instance, const CppSharp::CppParser::LinkerOptions& _0) { ::new (__instance) CppSharp::CppParser::LinkerOptions(_0); }
CppSharp::CppParser::LinkerOptions& (CppSharp::CppParser::LinkerOptions::*_241)(const CppSharp::CppParser::LinkerOptions&) = &CppSharp::CppParser::LinkerOptions::operator=;
CppSharp::CppParser::ParserDiagnostic& (CppSharp::CppParser::ParserDiagnostic::*_242)(const CppSharp::CppParser::ParserDiagnostic&) = &CppSharp::CppParser::ParserDiagnostic::operator=;
extern "C" void c__N_CppSharp_N_CppParser_S_ParserDiagnostic__ParserDiagnostic(CppSharp::CppParser::ParserDiagnostic*__instance) { __instance->~ParserDiagnostic(); }
CppSharp::CppParser::ParserResult& (CppSharp::CppParser::ParserResult::*_243)(const CppSharp::CppParser::ParserResult&) = &CppSharp::CppParser::ParserResult::operator=;
CppSharp::CppParser::ClangParser& (CppSharp::CppParser::ClangParser::*_244)(CppSharp::CppParser::ClangParser&&) = &CppSharp::CppParser::ClangParser::operator=;

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

@ -6154,6 +6154,15 @@ namespace CppSharp @@ -6154,6 +6154,15 @@ namespace CppSharp
RValue = 2
}
public enum TagKind
{
Struct = 0,
Interface = 1,
Union = 2,
Class = 3,
Enum = 4
}
public enum CppAbi
{
Itanium = 0,
@ -11548,6 +11557,7 @@ namespace CppSharp @@ -11548,6 +11557,7 @@ namespace CppSharp
internal byte hasNonTrivialDestructor;
internal byte isExternCContext;
internal byte isInjected;
internal global::CppSharp.Parser.AST.TagKind tagKind;
internal __IntPtr layout;
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST5ClassC2Ev", CallingConvention = __CallingConvention.Cdecl)]
@ -11899,6 +11909,19 @@ namespace CppSharp @@ -11899,6 +11909,19 @@ namespace CppSharp
}
}
public global::CppSharp.Parser.AST.TagKind TagKind
{
get
{
return ((__Internal*)__Instance)->tagKind;
}
set
{
((__Internal*)__Instance)->tagKind = value;
}
}
public global::CppSharp.Parser.AST.ClassLayout Layout
{
get
@ -13149,6 +13172,7 @@ namespace CppSharp @@ -13149,6 +13172,7 @@ namespace CppSharp
internal byte hasNonTrivialDestructor;
internal byte isExternCContext;
internal byte isInjected;
internal global::CppSharp.Parser.AST.TagKind tagKind;
internal __IntPtr layout;
internal __IntPtr templatedDecl;
internal global::Std.Vector.__Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_S_allocator__S0_ Arguments;
@ -13362,6 +13386,7 @@ namespace CppSharp @@ -13362,6 +13386,7 @@ namespace CppSharp
internal byte hasNonTrivialDestructor;
internal byte isExternCContext;
internal byte isInjected;
internal global::CppSharp.Parser.AST.TagKind tagKind;
internal __IntPtr layout;
internal __IntPtr templatedDecl;
internal global::Std.Vector.__Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_S_allocator__S0_ Arguments;

3
src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser-symbols.cpp

@ -13,7 +13,6 @@ CppSharp::CppParser::AST::InlineContentComment& (CppSharp::CppParser::AST::Inlin @@ -13,7 +13,6 @@ CppSharp::CppParser::AST::InlineContentComment& (CppSharp::CppParser::AST::Inlin
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_ParagraphComment_ParagraphComment___1__N_CppSharp_N_CppParser_N_AST_S_ParagraphComment(void* __instance, const CppSharp::CppParser::AST::ParagraphComment& _0) { ::new (__instance) CppSharp::CppParser::AST::ParagraphComment(_0); }
CppSharp::CppParser::AST::ParagraphComment& (CppSharp::CppParser::AST::ParagraphComment::*_5)(const CppSharp::CppParser::AST::ParagraphComment&) = &CppSharp::CppParser::AST::ParagraphComment::operator=;
CppSharp::CppParser::AST::BlockCommandComment::Argument& (CppSharp::CppParser::AST::BlockCommandComment::Argument::*_6)(const CppSharp::CppParser::AST::BlockCommandComment::Argument&) = &CppSharp::CppParser::AST::BlockCommandComment::Argument::operator=;
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_S_Argument__Argument(CppSharp::CppParser::AST::BlockCommandComment::Argument*__instance) { __instance->~Argument(); }
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_BlockCommandComment___1__N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment(void* __instance, const CppSharp::CppParser::AST::BlockCommandComment& _0) { ::new (__instance) CppSharp::CppParser::AST::BlockCommandComment(_0); }
CppSharp::CppParser::AST::BlockCommandComment& (CppSharp::CppParser::AST::BlockCommandComment::*_7)(const CppSharp::CppParser::AST::BlockCommandComment&) = &CppSharp::CppParser::AST::BlockCommandComment::operator=;
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_ParamCommandComment_ParamCommandComment___1__N_CppSharp_N_CppParser_N_AST_S_ParamCommandComment(void* __instance, const CppSharp::CppParser::AST::ParamCommandComment& _0) { ::new (__instance) CppSharp::CppParser::AST::ParamCommandComment(_0); }
@ -31,7 +30,6 @@ extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_Verbatim @@ -31,7 +30,6 @@ extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_Verbatim
CppSharp::CppParser::AST::VerbatimLineComment& (CppSharp::CppParser::AST::VerbatimLineComment::*_12)(CppSharp::CppParser::AST::VerbatimLineComment&&) = &CppSharp::CppParser::AST::VerbatimLineComment::operator=;
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_VerbatimLineComment__VerbatimLineComment(CppSharp::CppParser::AST::VerbatimLineComment*__instance) { __instance->~VerbatimLineComment(); }
CppSharp::CppParser::AST::InlineCommandComment::Argument& (CppSharp::CppParser::AST::InlineCommandComment::Argument::*_13)(const CppSharp::CppParser::AST::InlineCommandComment::Argument&) = &CppSharp::CppParser::AST::InlineCommandComment::Argument::operator=;
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_S_Argument__Argument(CppSharp::CppParser::AST::InlineCommandComment::Argument*__instance) { __instance->~Argument(); }
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_InlineCommandComment___1__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment(void* __instance, const CppSharp::CppParser::AST::InlineCommandComment& _0) { ::new (__instance) CppSharp::CppParser::AST::InlineCommandComment(_0); }
CppSharp::CppParser::AST::InlineCommandComment& (CppSharp::CppParser::AST::InlineCommandComment::*_14)(CppSharp::CppParser::AST::InlineCommandComment&&) = &CppSharp::CppParser::AST::InlineCommandComment::operator=;
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment__InlineCommandComment(CppSharp::CppParser::AST::InlineCommandComment*__instance) { __instance->~InlineCommandComment(); }
@ -377,6 +375,5 @@ CppSharp::CppParser::CppParserOptions& (CppSharp::CppParser::CppParserOptions::* @@ -377,6 +375,5 @@ CppSharp::CppParser::CppParserOptions& (CppSharp::CppParser::CppParserOptions::*
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_S_LinkerOptions_LinkerOptions___1__N_CppSharp_N_CppParser_S_LinkerOptions(void* __instance, const CppSharp::CppParser::LinkerOptions& _0) { ::new (__instance) CppSharp::CppParser::LinkerOptions(_0); }
CppSharp::CppParser::LinkerOptions& (CppSharp::CppParser::LinkerOptions::*_241)(const CppSharp::CppParser::LinkerOptions&) = &CppSharp::CppParser::LinkerOptions::operator=;
CppSharp::CppParser::ParserDiagnostic& (CppSharp::CppParser::ParserDiagnostic::*_242)(const CppSharp::CppParser::ParserDiagnostic&) = &CppSharp::CppParser::ParserDiagnostic::operator=;
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_S_ParserDiagnostic__ParserDiagnostic(CppSharp::CppParser::ParserDiagnostic*__instance) { __instance->~ParserDiagnostic(); }
CppSharp::CppParser::ParserResult& (CppSharp::CppParser::ParserResult::*_243)(const CppSharp::CppParser::ParserResult&) = &CppSharp::CppParser::ParserResult::operator=;
CppSharp::CppParser::ClangParser& (CppSharp::CppParser::ClangParser::*_244)(CppSharp::CppParser::ClangParser&&) = &CppSharp::CppParser::ClangParser::operator=;

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

@ -6154,6 +6154,15 @@ namespace CppSharp @@ -6154,6 +6154,15 @@ namespace CppSharp
RValue = 2
}
public enum TagKind
{
Struct = 0,
Interface = 1,
Union = 2,
Class = 3,
Enum = 4
}
public enum CppAbi
{
Itanium = 0,
@ -11550,6 +11559,7 @@ namespace CppSharp @@ -11550,6 +11559,7 @@ namespace CppSharp
internal byte hasNonTrivialDestructor;
internal byte isExternCContext;
internal byte isInjected;
internal global::CppSharp.Parser.AST.TagKind tagKind;
internal __IntPtr layout;
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "??0Class@AST@CppParser@CppSharp@@QEAA@XZ", CallingConvention = __CallingConvention.Cdecl)]
@ -11901,6 +11911,19 @@ namespace CppSharp @@ -11901,6 +11911,19 @@ namespace CppSharp
}
}
public global::CppSharp.Parser.AST.TagKind TagKind
{
get
{
return ((__Internal*)__Instance)->tagKind;
}
set
{
((__Internal*)__Instance)->tagKind = value;
}
}
public global::CppSharp.Parser.AST.ClassLayout Layout
{
get
@ -13151,6 +13174,7 @@ namespace CppSharp @@ -13151,6 +13174,7 @@ namespace CppSharp
internal byte hasNonTrivialDestructor;
internal byte isExternCContext;
internal byte isInjected;
internal global::CppSharp.Parser.AST.TagKind tagKind;
internal __IntPtr layout;
internal __IntPtr templatedDecl;
internal global::Std.Vector.__Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_S_allocator__S0_ Arguments;
@ -13364,6 +13388,7 @@ namespace CppSharp @@ -13364,6 +13388,7 @@ namespace CppSharp
internal byte hasNonTrivialDestructor;
internal byte isExternCContext;
internal byte isInjected;
internal global::CppSharp.Parser.AST.TagKind tagKind;
internal __IntPtr layout;
internal __IntPtr templatedDecl;
internal global::Std.Vector.__Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_S_allocator__S0_ Arguments;

10
src/CppParser/Decl.h

@ -561,6 +561,15 @@ struct CS_API ClassLayout @@ -561,6 +561,15 @@ struct CS_API ClassLayout
VECTOR(LayoutBase, Bases)
};
enum class TagKind
{
Struct,
Interface,
Union,
Class,
Enum
};
class CS_API Class : public DeclarationContext
{
public:
@ -582,6 +591,7 @@ public: @@ -582,6 +591,7 @@ public:
bool hasNonTrivialDestructor;
bool isExternCContext;
bool isInjected;
TagKind tagKind;
ClassLayout* layout;
};

20
src/CppParser/Parser.cpp

@ -931,6 +931,25 @@ static RecordArgABI GetRecordArgABI( @@ -931,6 +931,25 @@ static RecordArgABI GetRecordArgABI(
}
}
static TagKind ConvertToTagKind(clang::TagTypeKind AS)
{
switch (AS)
{
case clang::TagTypeKind::TTK_Struct:
return TagKind::Struct;
case clang::TagTypeKind::TTK_Interface:
return TagKind::Interface;
case clang::TagTypeKind::TTK_Union:
return TagKind::Union;
case clang::TagTypeKind::TTK_Class:
return TagKind::Class;
case clang::TagTypeKind::TTK_Enum:
return TagKind::Enum;
}
llvm_unreachable("Unknown TagKind");
}
void Parser::WalkRecord(const clang::RecordDecl* Record, Class* RC)
{
using namespace clang;
@ -956,6 +975,7 @@ void Parser::WalkRecord(const clang::RecordDecl* Record, Class* RC) @@ -956,6 +975,7 @@ void Parser::WalkRecord(const clang::RecordDecl* Record, Class* RC)
RC->isUnion = Record->isUnion();
RC->isDependent = Record->isDependentType();
RC->isExternCContext = Record->isExternCContext();
RC->tagKind = ConvertToTagKind(Record->getTagKind());
bool hasLayout = HasLayout(Record);

22
src/Parser/ASTConverter.cs

@ -882,7 +882,7 @@ namespace CppSharp @@ -882,7 +882,7 @@ namespace CppSharp
return base.Visit(decl);
}
AST.AccessSpecifier VisitAccessSpecifier(AccessSpecifier access)
private AST.AccessSpecifier VisitAccessSpecifier(AccessSpecifier access)
{
switch (access)
{
@ -897,6 +897,25 @@ namespace CppSharp @@ -897,6 +897,25 @@ namespace CppSharp
throw new ArgumentOutOfRangeException();
}
private AST.TagKind VisitTagKind(TagKind tagKind)
{
switch (tagKind)
{
case TagKind.Struct:
return AST.TagKind.Struct;
case TagKind.Interface:
return AST.TagKind.Interface;
case TagKind.Union:
return AST.TagKind.Union;
case TagKind.Class:
return AST.TagKind.Class;
case TagKind.Enum:
return AST.TagKind.Enum;
default:
throw new ArgumentOutOfRangeException();
}
}
AST.BaseClassSpecifier VisitBaseClassSpecifier(BaseClassSpecifier @base)
{
var _base = new AST.BaseClassSpecifier
@ -1594,6 +1613,7 @@ namespace CppSharp @@ -1594,6 +1613,7 @@ namespace CppSharp
_class.IsPOD = @class.IsPOD;
_class.IsAbstract = @class.IsAbstract;
_class.IsUnion = @class.IsUnion;
_class.TagKind = VisitTagKind(@class.TagKind);
_class.IsDynamic = @class.IsDynamic;
_class.IsPolymorphic = @class.IsPolymorphic;
_class.HasNonTrivialDefaultConstructor = @class.HasNonTrivialDefaultConstructor;

Loading…
Cancel
Save