Browse Source

Add information about linkage to the AST

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/1398/head
Dimitar Dobrev 5 years ago
parent
commit
e061edde76
  1. 11
      src/AST/Class.cs
  2. 2
      src/AST/Declaration.cs
  3. 10
      src/CppParser/Bindings/CLI/Decl.cpp
  4. 18
      src/CppParser/Bindings/CLI/Decl.h
  5. 1779
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
  6. 1773
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
  7. 117
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
  8. 117
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
  9. 117
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
  10. 117
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
  11. 12
      src/CppParser/Decl.h
  12. 3
      src/CppParser/Parser.cpp
  13. 7
      src/Generator.Tests/AST/TestAST.cs
  14. 2
      src/Parser/ASTConverter.cs
  15. 2
      tests/Native/AST.h

11
src/AST/Class.cs

@ -5,6 +5,17 @@ using CppSharp.AST.Extensions;
namespace CppSharp.AST namespace CppSharp.AST
{ {
public enum Linkage
{
NoLinkage,
InternalLinkage,
UniqueExternalLinkage,
VisibleNoLinkage,
ModuleInternalLinkage,
ModuleLinkage,
ExternalLinkage
}
// A C++ access specifier. // A C++ access specifier.
public enum AccessSpecifier public enum AccessSpecifier
{ {

2
src/AST/Declaration.cs

@ -287,6 +287,8 @@ namespace CppSharp.AST
// Comment associated with declaration. // Comment associated with declaration.
public RawComment Comment; public RawComment Comment;
public Linkage Linkage { get; set; }
public AccessSpecifier Access { get; set; } public AccessSpecifier Access { get; set; }
// Contains debug text about the declaration. // Contains debug text about the declaration.

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

@ -144,6 +144,16 @@ void CppSharp::Parser::AST::Declaration::Access::set(CppSharp::Parser::AST::Acce
((::CppSharp::CppParser::AST::Declaration*)NativePtr)->access = (::CppSharp::CppParser::AST::AccessSpecifier)value; ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->access = (::CppSharp::CppParser::AST::AccessSpecifier)value;
} }
CppSharp::Parser::AST::Linkage CppSharp::Parser::AST::Declaration::Linkage::get()
{
return (CppSharp::Parser::AST::Linkage)((::CppSharp::CppParser::AST::Declaration*)NativePtr)->linkage;
}
void CppSharp::Parser::AST::Declaration::Linkage::set(CppSharp::Parser::AST::Linkage value)
{
((::CppSharp::CppParser::AST::Declaration*)NativePtr)->linkage = (::CppSharp::CppParser::AST::Linkage)value;
}
CppSharp::Parser::AST::DeclarationContext^ CppSharp::Parser::AST::Declaration::Namespace::get() CppSharp::Parser::AST::DeclarationContext^ CppSharp::Parser::AST::Declaration::Namespace::get()
{ {
return (((::CppSharp::CppParser::AST::Declaration*)NativePtr)->_namespace == nullptr) ? nullptr : gcnew ::CppSharp::Parser::AST::DeclarationContext((::CppSharp::CppParser::AST::DeclarationContext*)((::CppSharp::CppParser::AST::Declaration*)NativePtr)->_namespace); return (((::CppSharp::CppParser::AST::Declaration*)NativePtr)->_namespace == nullptr) ? nullptr : gcnew ::CppSharp::Parser::AST::DeclarationContext((::CppSharp::CppParser::AST::DeclarationContext*)((::CppSharp::CppParser::AST::Declaration*)NativePtr)->_namespace);

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

@ -23,6 +23,7 @@ namespace CppSharp
enum class CppAbi; enum class CppAbi;
enum class DeclarationKind; enum class DeclarationKind;
enum class FriendKind; enum class FriendKind;
enum class Linkage;
enum class MacroLocation; enum class MacroLocation;
enum class RecordArgABI; enum class RecordArgABI;
enum class RefQualifierKind; enum class RefQualifierKind;
@ -135,6 +136,17 @@ namespace CppSharp
Public = 2 Public = 2
}; };
public enum class Linkage
{
NoLinkage = 0,
InternalLinkage = 1,
UniqueExternalLinkage = 2,
VisibleNoLinkage = 3,
ModuleInternalLinkage = 4,
ModuleLinkage = 5,
ExternalLinkage = 6
};
public enum class MacroLocation public enum class MacroLocation
{ {
Unknown = 0, Unknown = 0,
@ -319,6 +331,12 @@ namespace CppSharp
void set(CppSharp::Parser::AST::AccessSpecifier); void set(CppSharp::Parser::AST::AccessSpecifier);
} }
property CppSharp::Parser::AST::Linkage Linkage
{
CppSharp::Parser::AST::Linkage get();
void set(CppSharp::Parser::AST::Linkage);
}
property CppSharp::Parser::AST::DeclarationContext^ Namespace property CppSharp::Parser::AST::DeclarationContext^ Namespace
{ {
CppSharp::Parser::AST::DeclarationContext^ get(); CppSharp::Parser::AST::DeclarationContext^ get();

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

@ -6113,6 +6113,17 @@ namespace CppSharp
Public = 2 Public = 2
} }
public enum Linkage
{
NoLinkage = 0,
InternalLinkage = 1,
UniqueExternalLinkage = 2,
VisibleNoLinkage = 3,
ModuleInternalLinkage = 4,
ModuleLinkage = 5,
ExternalLinkage = 6
}
public enum MacroLocation public enum MacroLocation
{ {
Unknown = 0, Unknown = 0,
@ -6272,6 +6283,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -6550,6 +6564,19 @@ namespace CppSharp
} }
} }
public global::CppSharp.Parser.AST.Linkage Linkage
{
get
{
return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->linkage;
}
set
{
((global::CppSharp.Parser.AST.Declaration.__Internal*)__Instance)->linkage = value;
}
}
public global::CppSharp.Parser.AST.DeclarationContext Namespace public global::CppSharp.Parser.AST.DeclarationContext Namespace
{ {
get get
@ -6809,6 +6836,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -7494,6 +7524,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -7665,6 +7698,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -7816,6 +7852,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -7988,6 +8027,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -8886,6 +8928,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -9142,6 +9187,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -9706,6 +9754,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -10166,6 +10217,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -10328,6 +10382,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -10671,6 +10728,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -11009,6 +11069,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -11228,6 +11291,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -12502,6 +12568,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13092,6 +13161,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13337,6 +13409,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13491,6 +13566,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13692,6 +13770,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13894,6 +13975,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -14069,6 +14153,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -14316,6 +14403,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -14567,6 +14657,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -14882,6 +14975,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -15117,6 +15213,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -15554,6 +15653,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -15805,6 +15907,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -16048,6 +16153,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -16211,6 +16319,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -16359,6 +16470,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -16999,6 +17113,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;

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

@ -6113,6 +6113,17 @@ namespace CppSharp
Public = 2 Public = 2
} }
public enum Linkage
{
NoLinkage = 0,
InternalLinkage = 1,
UniqueExternalLinkage = 2,
VisibleNoLinkage = 3,
ModuleInternalLinkage = 4,
ModuleLinkage = 5,
ExternalLinkage = 6
}
public enum MacroLocation public enum MacroLocation
{ {
Unknown = 0, Unknown = 0,
@ -6272,6 +6283,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -6550,6 +6564,19 @@ namespace CppSharp
} }
} }
public global::CppSharp.Parser.AST.Linkage Linkage
{
get
{
return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->linkage;
}
set
{
((global::CppSharp.Parser.AST.Declaration.__Internal*)__Instance)->linkage = value;
}
}
public global::CppSharp.Parser.AST.DeclarationContext Namespace public global::CppSharp.Parser.AST.DeclarationContext Namespace
{ {
get get
@ -6809,6 +6836,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -7494,6 +7524,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -7665,6 +7698,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -7816,6 +7852,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -7988,6 +8027,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -8886,6 +8928,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -9142,6 +9187,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -9706,6 +9754,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -10166,6 +10217,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -10328,6 +10382,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -10671,6 +10728,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -11009,6 +11069,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -11228,6 +11291,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -12502,6 +12568,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13092,6 +13161,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13337,6 +13409,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13491,6 +13566,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13692,6 +13770,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13894,6 +13975,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -14069,6 +14153,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -14316,6 +14403,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -14567,6 +14657,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -14882,6 +14975,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -15117,6 +15213,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -15554,6 +15653,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -15805,6 +15907,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -16048,6 +16153,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -16211,6 +16319,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -16359,6 +16470,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -16999,6 +17113,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;

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

@ -6113,6 +6113,17 @@ namespace CppSharp
Public = 2 Public = 2
} }
public enum Linkage
{
NoLinkage = 0,
InternalLinkage = 1,
UniqueExternalLinkage = 2,
VisibleNoLinkage = 3,
ModuleInternalLinkage = 4,
ModuleLinkage = 5,
ExternalLinkage = 6
}
public enum MacroLocation public enum MacroLocation
{ {
Unknown = 0, Unknown = 0,
@ -6272,6 +6283,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -6550,6 +6564,19 @@ namespace CppSharp
} }
} }
public global::CppSharp.Parser.AST.Linkage Linkage
{
get
{
return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->linkage;
}
set
{
((global::CppSharp.Parser.AST.Declaration.__Internal*)__Instance)->linkage = value;
}
}
public global::CppSharp.Parser.AST.DeclarationContext Namespace public global::CppSharp.Parser.AST.DeclarationContext Namespace
{ {
get get
@ -6809,6 +6836,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -7494,6 +7524,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -7665,6 +7698,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -7816,6 +7852,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -7988,6 +8027,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -8886,6 +8928,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -9142,6 +9187,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -9706,6 +9754,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -10166,6 +10217,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -10328,6 +10382,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -10671,6 +10728,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -11009,6 +11069,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -11228,6 +11291,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -12502,6 +12568,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13092,6 +13161,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13337,6 +13409,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13491,6 +13566,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13692,6 +13770,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13894,6 +13975,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -14069,6 +14153,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -14316,6 +14403,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -14567,6 +14657,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -14882,6 +14975,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -15117,6 +15213,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -15554,6 +15653,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -15805,6 +15907,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -16048,6 +16153,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -16211,6 +16319,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -16359,6 +16470,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -16999,6 +17113,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;

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

@ -6113,6 +6113,17 @@ namespace CppSharp
Public = 2 Public = 2
} }
public enum Linkage
{
NoLinkage = 0,
InternalLinkage = 1,
UniqueExternalLinkage = 2,
VisibleNoLinkage = 3,
ModuleInternalLinkage = 4,
ModuleLinkage = 5,
ExternalLinkage = 6
}
public enum MacroLocation public enum MacroLocation
{ {
Unknown = 0, Unknown = 0,
@ -6272,6 +6283,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -6550,6 +6564,19 @@ namespace CppSharp
} }
} }
public global::CppSharp.Parser.AST.Linkage Linkage
{
get
{
return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->linkage;
}
set
{
((global::CppSharp.Parser.AST.Declaration.__Internal*)__Instance)->linkage = value;
}
}
public global::CppSharp.Parser.AST.DeclarationContext Namespace public global::CppSharp.Parser.AST.DeclarationContext Namespace
{ {
get get
@ -6809,6 +6836,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -7494,6 +7524,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -7665,6 +7698,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -7816,6 +7852,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -7988,6 +8027,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -8886,6 +8928,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -9142,6 +9187,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -9706,6 +9754,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -10166,6 +10217,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -10328,6 +10382,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -10671,6 +10728,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -11009,6 +11069,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -11228,6 +11291,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -12503,6 +12569,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13093,6 +13162,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13338,6 +13410,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13492,6 +13567,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13693,6 +13771,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -13895,6 +13976,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -14070,6 +14154,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -14317,6 +14404,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -14568,6 +14658,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -14883,6 +14976,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -15118,6 +15214,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -15555,6 +15654,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -15806,6 +15908,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -16049,6 +16154,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -16212,6 +16320,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -16360,6 +16471,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;
@ -17000,6 +17114,9 @@ namespace CppSharp
[FieldOffset(8)] [FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)] [FieldOffset(16)]
internal global::System.IntPtr _namespace; internal global::System.IntPtr _namespace;

12
src/CppParser/Decl.h

@ -59,6 +59,17 @@ enum class AccessSpecifier
Public Public
}; };
enum class Linkage
{
NoLinkage,
InternalLinkage,
UniqueExternalLinkage,
VisibleNoLinkage,
ModuleInternalLinkage,
ModuleLinkage,
ExternalLinkage
};
class DeclarationContext; class DeclarationContext;
class RawComment; class RawComment;
class PreprocessedEntity; class PreprocessedEntity;
@ -73,6 +84,7 @@ public:
DeclarationKind kind; DeclarationKind kind;
int maxFieldAlignment; int maxFieldAlignment;
AccessSpecifier access; AccessSpecifier access;
Linkage linkage;
DeclarationContext* _namespace; DeclarationContext* _namespace;
SourceLocation location; SourceLocation location;
int lineNumberStart; int lineNumberStart;

3
src/CppParser/Parser.cpp

@ -3769,6 +3769,9 @@ void Parser::HandleDeclaration(const clang::Decl* D, Declaration* Decl)
} }
} }
if (auto ND = llvm::dyn_cast<clang::NamedDecl>(D))
Decl->linkage = (Linkage) ND->getLinkageAndVisibility().getLinkage();
if (IsDeclExplicit) if (IsDeclExplicit)
HandleOriginalText(D, Decl); HandleOriginalText(D, Decl);
HandleComments(D, Decl); HandleComments(D, Decl);

7
src/Generator.Tests/AST/TestAST.cs

@ -651,5 +651,12 @@ namespace CppSharp.Generator.Tests.AST
Assert.NotNull(macro); Assert.NotNull(macro);
Assert.AreEqual("(x, y, z) x##y##z", macro.Expression); Assert.AreEqual("(x, y, z) x##y##z", macro.Expression);
} }
[Test]
public void TestLinkage()
{
var externConst = AstContext.FindDecl<Variable>("externConst").First();
Assert.That(externConst.Linkage, Is.EqualTo(Linkage.ExternalLinkage));
}
} }
} }

2
src/Parser/ASTConverter.cs

@ -971,6 +971,7 @@ namespace CppSharp
// already handled it and return the declaration. // already handled it and return the declaration.
Declarations[originalPtr] = _decl; Declarations[originalPtr] = _decl;
_decl.Linkage = (AST.Linkage) decl.Linkage;
_decl.Access = VisitAccessSpecifier(decl.Access); _decl.Access = VisitAccessSpecifier(decl.Access);
_decl.Name = decl.Name; _decl.Name = decl.Name;
_decl.USR = decl.USR; _decl.USR = decl.USR;
@ -1528,7 +1529,6 @@ namespace CppSharp
_field.QualifiedType = typeConverter.VisitQualified( _field.QualifiedType = typeConverter.VisitQualified(
decl.QualifiedType); decl.QualifiedType);
_field.Access = VisitAccessSpecifier(decl.Access);
_field.Class = Visit(decl.Class) as AST.Class; _field.Class = Visit(decl.Class) as AST.Class;
_field.IsBitField = decl.IsBitField; _field.IsBitField = decl.IsBitField;
_field.BitWidth = decl.BitWidth; _field.BitWidth = decl.BitWidth;

2
tests/Native/AST.h

@ -253,3 +253,5 @@ int non_deprecated_func(int num);
TestTemplateClass<double> returnIncompleteTemplateSpecialization(); TestTemplateClass<double> returnIncompleteTemplateSpecialization();
#define MACRO(x, y, z) x##y##z #define MACRO(x, y, z) x##y##z
extern const int externConst = 1;

Loading…
Cancel
Save