Browse Source

Wrapped the reference qualifier of functions.

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

9
src/AST/Method.cs

@ -69,6 +69,13 @@ namespace CppSharp.AST @@ -69,6 +69,13 @@ namespace CppSharp.AST
ExplicitConversion
}
public enum RefQualifier
{
None,
LValue,
RValue
}
/// <summary>
/// Represents a C++ record method declaration.
/// </summary>
@ -110,6 +117,8 @@ namespace CppSharp.AST @@ -110,6 +117,8 @@ namespace CppSharp.AST
public bool IsOverride { get; set; }
public bool IsProxy { get; set; }
public RefQualifier RefQualifier { get; set; }
private CXXMethodKind kind;
public CXXMethodKind Kind
{

1
src/CppParser/AST.cpp

@ -646,6 +646,7 @@ Method::Method() @@ -646,6 +646,7 @@ Method::Method()
, IsDefaultConstructor(false)
, IsCopyConstructor(false)
, IsMoveConstructor(false)
, RefQualifier(RefQualifierKind::None)
{
Kind = DeclarationKind::Method;
}

8
src/CppParser/AST.h

@ -714,6 +714,13 @@ public: @@ -714,6 +714,13 @@ public:
class AccessSpecifierDecl;
enum class RefQualifierKind
{
None,
LValue,
RValue
};
class CS_API Method : public Function
{
public:
@ -733,6 +740,7 @@ public: @@ -733,6 +740,7 @@ public:
bool IsMoveConstructor;
QualifiedType ConversionType;
RefQualifierKind RefQualifier;
};
class CS_API Enumeration : public DeclarationContext

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

@ -3215,6 +3215,16 @@ void CppSharp::Parser::AST::Method::ConversionType::set(CppSharp::Parser::AST::Q @@ -3215,6 +3215,16 @@ void CppSharp::Parser::AST::Method::ConversionType::set(CppSharp::Parser::AST::Q
((::CppSharp::CppParser::AST::Method*)NativePtr)->ConversionType = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr;
}
CppSharp::Parser::AST::RefQualifierKind CppSharp::Parser::AST::Method::RefQualifier::get()
{
return (CppSharp::Parser::AST::RefQualifierKind)((::CppSharp::CppParser::AST::Method*)NativePtr)->RefQualifier;
}
void CppSharp::Parser::AST::Method::RefQualifier::set(CppSharp::Parser::AST::RefQualifierKind value)
{
((::CppSharp::CppParser::AST::Method*)NativePtr)->RefQualifier = (::CppSharp::CppParser::AST::RefQualifierKind)value;
}
CppSharp::Parser::AST::Enumeration::Item::Item(::CppSharp::CppParser::AST::Enumeration::Item* native)
: CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native)
{

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

@ -21,6 +21,7 @@ namespace CppSharp @@ -21,6 +21,7 @@ namespace CppSharp
enum struct MacroLocation;
enum struct PrimitiveType;
enum struct RawCommentKind;
enum struct RefQualifierKind;
enum struct StatementClass;
enum struct TemplateSpecializationKind;
enum struct TypeKind;
@ -315,6 +316,13 @@ namespace CppSharp @@ -315,6 +316,13 @@ namespace CppSharp
UsingDirective = 5
};
public enum struct RefQualifierKind
{
None = 0,
LValue = 1,
RValue = 2
};
public enum struct CppAbi
{
Itanium = 0,
@ -1975,6 +1983,12 @@ namespace CppSharp @@ -1975,6 +1983,12 @@ namespace CppSharp
CppSharp::Parser::AST::QualifiedType^ get();
void set(CppSharp::Parser::AST::QualifiedType^);
}
property CppSharp::Parser::AST::RefQualifierKind RefQualifier
{
CppSharp::Parser::AST::RefQualifierKind get();
void set(CppSharp::Parser::AST::RefQualifierKind);
}
};
public ref class Enumeration : CppSharp::Parser::AST::DeclarationContext

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

12
src/CppParser/Parser.cpp

@ -1615,6 +1615,18 @@ Method* Parser::WalkMethodCXX(const clang::CXXMethodDecl* MD) @@ -1615,6 +1615,18 @@ Method* Parser::WalkMethodCXX(const clang::CXXMethodDecl* MD)
Method->IsVirtual = MD->isVirtual();
Method->IsConst = MD->isConst();
Method->IsOverride = MD->size_overridden_methods() > 0;
switch (MD->getRefQualifier())
{
case clang::RefQualifierKind::RQ_None:
Method->RefQualifier = RefQualifierKind::None;
break;
case clang::RefQualifierKind::RQ_LValue:
Method->RefQualifier = RefQualifierKind::LValue;
break;
case clang::RefQualifierKind::RQ_RValue:
Method->RefQualifier = RefQualifierKind::RValue;
break;
}
WalkFunction(MD, Method);

13
src/Parser/ASTConverter.cs

@ -1164,6 +1164,19 @@ namespace CppSharp @@ -1164,6 +1164,19 @@ namespace CppSharp
_method.IsExplicit = decl.IsExplicit;
_method.IsOverride = decl.IsOverride;
switch (decl.RefQualifier)
{
case RefQualifierKind.None:
_method.RefQualifier = AST.RefQualifier.None;
break;
case RefQualifierKind.LValue:
_method.RefQualifier = AST.RefQualifier.LValue;
break;
case RefQualifierKind.RValue:
_method.RefQualifier = AST.RefQualifier.RValue;
break;
}
_method.Kind = VisitCXXMethodKind(decl.MethodKind);
_method.IsDefaultConstructor = decl.IsDefaultConstructor;

Loading…
Cancel
Save