From 4e185973e5a44057896b241d467f1ddae43c17f1 Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Mon, 12 May 2014 10:21:14 +0300 Subject: [PATCH] Normalize all the line endings Normalized all the line endings with: git rm --cached -r . git reset --hard git add . git commit -m "Normalize all the line endings" Signed-off-by: Tomi Valkeinen --- src/AST/Class.cs | 42 +- src/AST/Field.cs | 16 +- src/AST/TranslationUnit.cs | 36 +- src/CppParser/Bindings/CLI/AST.cpp | 5688 ++++++++--------- src/CppParser/Bindings/CLI/AST.h | 3750 +++++------ src/CppParser/Bindings/CLI/CppParser.cpp | 878 +-- src/CppParser/Bindings/CLI/CppParser.h | 566 +- src/Generator/AST/Utils.cs | 54 +- src/Generator/Driver.cs | 72 +- src/Generator/Generator.lua | 34 +- src/Generator/Generators/CLI/CLIMarshal.cs | 88 +- .../Generators/CLI/CLISourcesTemplate.cs | 6 +- .../Generators/CLI/CLITypePrinter.cs | 796 +-- .../Generators/CLI/CLITypeReferences.cs | 60 +- .../Generators/CSharp/CSharpTextTemplate.cs | 404 +- .../Generators/CSharp/CSharpTypePrinter.cs | 1172 ++-- src/Generator/Generators/ExtensionMethods.cs | 54 +- src/Generator/Generators/Template.cs | 42 +- src/Generator/Options.cs | 72 +- .../Passes/CheckOperatorsOverloads.cs | 448 +- .../ConstructorToConversionOperatorPass.cs | 116 +- .../GenerateAbstractImplementationsPass.cs | 12 +- .../Passes/GetterSetterToPropertyPass.cs | 18 +- .../Passes/MultipleInheritancePass.cs | 10 +- src/Generator/Types/CppTypePrinter.cs | 660 +- src/Generator/Types/Types.cs | 48 +- src/Generator/Utils/Utils.cs | 30 +- tests/Basic/Basic.Tests.cs | 104 +- tests/Basic/Basic.cs | 2 +- tests/Basic/Basic.h | 214 +- tests/CSharpTemp/CSharpTemp.cs | 6 +- 31 files changed, 7749 insertions(+), 7749 deletions(-) diff --git a/src/AST/Class.cs b/src/AST/Class.cs index 60a9cdf0..8d25dff2 100644 --- a/src/AST/Class.cs +++ b/src/AST/Class.cs @@ -33,7 +33,7 @@ namespace CppSharp.AST { get { - Class @class; + Class @class; Type.TryGetClass(out @class); return @class; } @@ -115,26 +115,26 @@ namespace CppSharp.AST Layout = new ClassLayout(); } - public Class(Class @class) - : base(@class) - { - Bases = new List(@class.Bases); - Fields = new List(@class.Fields); - Properties = new List(@class.Properties); - Methods = new List(@class.Methods); - Specifiers = new List(@class.Specifiers); - IsPOD = @class.IsPOD; - Type = @class.Type; - Layout = new ClassLayout(@class.Layout); - IsAbstract = @class.IsAbstract; - IsUnion = @class.IsUnion; - IsOpaque = @class.IsOpaque; - IsDynamic = @class.IsDynamic; - IsPolymorphic = @class.IsPolymorphic; - HasNonTrivialDefaultConstructor = @class.HasNonTrivialDefaultConstructor; - HasNonTrivialCopyConstructor = @class.HasNonTrivialCopyConstructor; - HasNonTrivialDestructor = @class.HasNonTrivialDestructor; - IsStatic = @class.IsStatic; + public Class(Class @class) + : base(@class) + { + Bases = new List(@class.Bases); + Fields = new List(@class.Fields); + Properties = new List(@class.Properties); + Methods = new List(@class.Methods); + Specifiers = new List(@class.Specifiers); + IsPOD = @class.IsPOD; + Type = @class.Type; + Layout = new ClassLayout(@class.Layout); + IsAbstract = @class.IsAbstract; + IsUnion = @class.IsUnion; + IsOpaque = @class.IsOpaque; + IsDynamic = @class.IsDynamic; + IsPolymorphic = @class.IsPolymorphic; + HasNonTrivialDefaultConstructor = @class.HasNonTrivialDefaultConstructor; + HasNonTrivialCopyConstructor = @class.HasNonTrivialCopyConstructor; + HasNonTrivialDestructor = @class.HasNonTrivialDestructor; + IsStatic = @class.IsStatic; } public bool HasBase diff --git a/src/AST/Field.cs b/src/AST/Field.cs index a472aa94..0ff2b4aa 100644 --- a/src/AST/Field.cs +++ b/src/AST/Field.cs @@ -29,14 +29,14 @@ namespace CppSharp.AST QualifiedType = type; Access = access; Offset = 0; - } - - public Field(Field field): base(field) - { - QualifiedType = field.QualifiedType; - Offset = field.Offset; - Class = field.Class; - Expression = field.Expression; + } + + public Field(Field field): base(field) + { + QualifiedType = field.QualifiedType; + Offset = field.Offset; + Class = field.Class; + Expression = field.Expression; } public override T Visit(IDeclVisitor visitor) diff --git a/src/AST/TranslationUnit.cs b/src/AST/TranslationUnit.cs index 9acff994..b1f8896c 100644 --- a/src/AST/TranslationUnit.cs +++ b/src/AST/TranslationUnit.cs @@ -45,23 +45,23 @@ namespace CppSharp.AST /// Contains the include path. public string IncludePath; - - public string FileRelativeDirectory - { - get - { - var path = IncludePath.Replace('\\', '/'); - var index = path.LastIndexOf('/'); - return path.Substring(0, index); - } - } - - public string FileRelativePath - { - get - { - return Path.Combine(FileRelativeDirectory, FileName); - } - } + + public string FileRelativeDirectory + { + get + { + var path = IncludePath.Replace('\\', '/'); + var index = path.LastIndexOf('/'); + return path.Substring(0, index); + } + } + + public string FileRelativePath + { + get + { + return Path.Combine(FileRelativeDirectory, FileName); + } + } } } \ No newline at end of file diff --git a/src/CppParser/Bindings/CLI/AST.cpp b/src/CppParser/Bindings/CLI/AST.cpp index c5381c34..12c5cbf3 100644 --- a/src/CppParser/Bindings/CLI/AST.cpp +++ b/src/CppParser/Bindings/CLI/AST.cpp @@ -1,2844 +1,2844 @@ -#include "AST.h" - -using namespace System; -using namespace System::Runtime::InteropServices; - -CppSharp::Parser::AST::Type::Type(::CppSharp::CppParser::AST::Type* native) -{ - NativePtr = native; -} - -CppSharp::Parser::AST::Type::Type(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::AST::Type*)native.ToPointer(); - NativePtr = __native; -} - -CppSharp::Parser::AST::Type::Type(CppSharp::Parser::AST::TypeKind kind) -{ - auto arg0 = (::CppSharp::CppParser::AST::TypeKind)kind; - NativePtr = new ::CppSharp::CppParser::AST::Type(arg0); -} - -System::IntPtr CppSharp::Parser::AST::Type::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::AST::Type::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::AST::Type*)object.ToPointer(); -} - -CppSharp::Parser::AST::TypeKind CppSharp::Parser::AST::Type::Kind::get() -{ - return (CppSharp::Parser::AST::TypeKind)((::CppSharp::CppParser::AST::Type*)NativePtr)->Kind; -} - -void CppSharp::Parser::AST::Type::Kind::set(CppSharp::Parser::AST::TypeKind value) -{ - ((::CppSharp::CppParser::AST::Type*)NativePtr)->Kind = (::CppSharp::CppParser::AST::TypeKind)value; -} - -bool CppSharp::Parser::AST::Type::IsDependent::get() -{ - return ((::CppSharp::CppParser::AST::Type*)NativePtr)->IsDependent; -} - -void CppSharp::Parser::AST::Type::IsDependent::set(bool value) -{ - ((::CppSharp::CppParser::AST::Type*)NativePtr)->IsDependent = value; -} - -CppSharp::Parser::AST::TypeQualifiers::TypeQualifiers(::CppSharp::CppParser::AST::TypeQualifiers* native) -{ - NativePtr = native; -} - -CppSharp::Parser::AST::TypeQualifiers::TypeQualifiers(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::AST::TypeQualifiers*)native.ToPointer(); - NativePtr = __native; -} - -CppSharp::Parser::AST::TypeQualifiers::TypeQualifiers() -{ - NativePtr = new ::CppSharp::CppParser::AST::TypeQualifiers(); -} - -System::IntPtr CppSharp::Parser::AST::TypeQualifiers::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::AST::TypeQualifiers::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::AST::TypeQualifiers*)object.ToPointer(); -} - -bool CppSharp::Parser::AST::TypeQualifiers::IsConst::get() -{ - return ((::CppSharp::CppParser::AST::TypeQualifiers*)NativePtr)->IsConst; -} - -void CppSharp::Parser::AST::TypeQualifiers::IsConst::set(bool value) -{ - ((::CppSharp::CppParser::AST::TypeQualifiers*)NativePtr)->IsConst = value; -} - -bool CppSharp::Parser::AST::TypeQualifiers::IsVolatile::get() -{ - return ((::CppSharp::CppParser::AST::TypeQualifiers*)NativePtr)->IsVolatile; -} - -void CppSharp::Parser::AST::TypeQualifiers::IsVolatile::set(bool value) -{ - ((::CppSharp::CppParser::AST::TypeQualifiers*)NativePtr)->IsVolatile = value; -} - -bool CppSharp::Parser::AST::TypeQualifiers::IsRestrict::get() -{ - return ((::CppSharp::CppParser::AST::TypeQualifiers*)NativePtr)->IsRestrict; -} - -void CppSharp::Parser::AST::TypeQualifiers::IsRestrict::set(bool value) -{ - ((::CppSharp::CppParser::AST::TypeQualifiers*)NativePtr)->IsRestrict = value; -} - -CppSharp::Parser::AST::QualifiedType::QualifiedType(::CppSharp::CppParser::AST::QualifiedType* native) -{ - NativePtr = native; -} - -CppSharp::Parser::AST::QualifiedType::QualifiedType(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::AST::QualifiedType*)native.ToPointer(); - NativePtr = __native; -} - -CppSharp::Parser::AST::QualifiedType::QualifiedType() -{ - NativePtr = new ::CppSharp::CppParser::AST::QualifiedType(); -} - -System::IntPtr CppSharp::Parser::AST::QualifiedType::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::AST::QualifiedType::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::AST::QualifiedType*)object.ToPointer(); -} - -CppSharp::Parser::AST::Type^ CppSharp::Parser::AST::QualifiedType::Type::get() -{ - return (((::CppSharp::CppParser::AST::QualifiedType*)NativePtr)->Type == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)((::CppSharp::CppParser::AST::QualifiedType*)NativePtr)->Type); -} - -void CppSharp::Parser::AST::QualifiedType::Type::set(CppSharp::Parser::AST::Type^ value) -{ - ((::CppSharp::CppParser::AST::QualifiedType*)NativePtr)->Type = (::CppSharp::CppParser::AST::Type*)value->NativePtr; -} - -CppSharp::Parser::AST::TypeQualifiers^ CppSharp::Parser::AST::QualifiedType::Qualifiers::get() -{ - return (&((::CppSharp::CppParser::AST::QualifiedType*)NativePtr)->Qualifiers == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TypeQualifiers((::CppSharp::CppParser::AST::TypeQualifiers*)&((::CppSharp::CppParser::AST::QualifiedType*)NativePtr)->Qualifiers); -} - -void CppSharp::Parser::AST::QualifiedType::Qualifiers::set(CppSharp::Parser::AST::TypeQualifiers^ value) -{ - ((::CppSharp::CppParser::AST::QualifiedType*)NativePtr)->Qualifiers = *(::CppSharp::CppParser::AST::TypeQualifiers*)value->NativePtr; -} - -CppSharp::Parser::AST::TagType::TagType(::CppSharp::CppParser::AST::TagType* native) - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) -{ -} - -CppSharp::Parser::AST::TagType::TagType(System::IntPtr native) - : CppSharp::Parser::AST::Type(native) -{ - auto __native = (::CppSharp::CppParser::AST::TagType*)native.ToPointer(); -} - -CppSharp::Parser::AST::TagType::TagType() - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::TagType(); -} - -CppSharp::Parser::AST::Declaration^ CppSharp::Parser::AST::TagType::Declaration::get() -{ - return (((::CppSharp::CppParser::AST::TagType*)NativePtr)->Declaration == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)((::CppSharp::CppParser::AST::TagType*)NativePtr)->Declaration); -} - -void CppSharp::Parser::AST::TagType::Declaration::set(CppSharp::Parser::AST::Declaration^ value) -{ - ((::CppSharp::CppParser::AST::TagType*)NativePtr)->Declaration = (::CppSharp::CppParser::AST::Declaration*)value->NativePtr; -} - -CppSharp::Parser::AST::ArrayType::ArrayType(::CppSharp::CppParser::AST::ArrayType* native) - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) -{ -} - -CppSharp::Parser::AST::ArrayType::ArrayType(System::IntPtr native) - : CppSharp::Parser::AST::Type(native) -{ - auto __native = (::CppSharp::CppParser::AST::ArrayType*)native.ToPointer(); -} - -CppSharp::Parser::AST::ArrayType::ArrayType() - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::ArrayType(); -} - -CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::ArrayType::QualifiedType::get() -{ - return (&((::CppSharp::CppParser::AST::ArrayType*)NativePtr)->QualifiedType == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::ArrayType*)NativePtr)->QualifiedType); -} - -void CppSharp::Parser::AST::ArrayType::QualifiedType::set(CppSharp::Parser::AST::QualifiedType^ value) -{ - ((::CppSharp::CppParser::AST::ArrayType*)NativePtr)->QualifiedType = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; -} - -CppSharp::Parser::AST::ArrayType::ArraySize CppSharp::Parser::AST::ArrayType::SizeType::get() -{ - return (CppSharp::Parser::AST::ArrayType::ArraySize)((::CppSharp::CppParser::AST::ArrayType*)NativePtr)->SizeType; -} - -void CppSharp::Parser::AST::ArrayType::SizeType::set(CppSharp::Parser::AST::ArrayType::ArraySize value) -{ - ((::CppSharp::CppParser::AST::ArrayType*)NativePtr)->SizeType = (::CppSharp::CppParser::AST::ArrayType::ArraySize)value; -} - -int CppSharp::Parser::AST::ArrayType::Size::get() -{ - return ((::CppSharp::CppParser::AST::ArrayType*)NativePtr)->Size; -} - -void CppSharp::Parser::AST::ArrayType::Size::set(int value) -{ - ((::CppSharp::CppParser::AST::ArrayType*)NativePtr)->Size = value; -} - -CppSharp::Parser::AST::FunctionType::FunctionType(::CppSharp::CppParser::AST::FunctionType* native) - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) -{ -} - -CppSharp::Parser::AST::FunctionType::FunctionType(System::IntPtr native) - : CppSharp::Parser::AST::Type(native) -{ - auto __native = (::CppSharp::CppParser::AST::FunctionType*)native.ToPointer(); -} - -CppSharp::Parser::AST::FunctionType::FunctionType() - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::FunctionType(); -} - -CppSharp::Parser::AST::Parameter^ CppSharp::Parser::AST::FunctionType::getParameters(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::FunctionType*)NativePtr)->getParameters(i); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Parameter((::CppSharp::CppParser::AST::Parameter*)__ret); -} - -void CppSharp::Parser::AST::FunctionType::addParameters(CppSharp::Parser::AST::Parameter^ s) -{ - auto arg0 = (::CppSharp::CppParser::AST::Parameter*)s->NativePtr; - ((::CppSharp::CppParser::AST::FunctionType*)NativePtr)->addParameters(arg0); -} - -unsigned int CppSharp::Parser::AST::FunctionType::ParametersCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::FunctionType*)NativePtr)->getParametersCount(); - return __ret; -} - -CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::FunctionType::ReturnType::get() -{ - return (&((::CppSharp::CppParser::AST::FunctionType*)NativePtr)->ReturnType == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::FunctionType*)NativePtr)->ReturnType); -} - -void CppSharp::Parser::AST::FunctionType::ReturnType::set(CppSharp::Parser::AST::QualifiedType^ value) -{ - ((::CppSharp::CppParser::AST::FunctionType*)NativePtr)->ReturnType = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; -} - -CppSharp::Parser::AST::CallingConvention CppSharp::Parser::AST::FunctionType::CallingConvention::get() -{ - return (CppSharp::Parser::AST::CallingConvention)((::CppSharp::CppParser::AST::FunctionType*)NativePtr)->CallingConvention; -} - -void CppSharp::Parser::AST::FunctionType::CallingConvention::set(CppSharp::Parser::AST::CallingConvention value) -{ - ((::CppSharp::CppParser::AST::FunctionType*)NativePtr)->CallingConvention = (::CppSharp::CppParser::AST::CallingConvention)value; -} - -CppSharp::Parser::AST::PointerType::PointerType(::CppSharp::CppParser::AST::PointerType* native) - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) -{ -} - -CppSharp::Parser::AST::PointerType::PointerType(System::IntPtr native) - : CppSharp::Parser::AST::Type(native) -{ - auto __native = (::CppSharp::CppParser::AST::PointerType*)native.ToPointer(); -} - -CppSharp::Parser::AST::PointerType::PointerType() - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::PointerType(); -} - -CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::PointerType::QualifiedPointee::get() -{ - return (&((::CppSharp::CppParser::AST::PointerType*)NativePtr)->QualifiedPointee == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::PointerType*)NativePtr)->QualifiedPointee); -} - -void CppSharp::Parser::AST::PointerType::QualifiedPointee::set(CppSharp::Parser::AST::QualifiedType^ value) -{ - ((::CppSharp::CppParser::AST::PointerType*)NativePtr)->QualifiedPointee = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; -} - -CppSharp::Parser::AST::PointerType::TypeModifier CppSharp::Parser::AST::PointerType::Modifier::get() -{ - return (CppSharp::Parser::AST::PointerType::TypeModifier)((::CppSharp::CppParser::AST::PointerType*)NativePtr)->Modifier; -} - -void CppSharp::Parser::AST::PointerType::Modifier::set(CppSharp::Parser::AST::PointerType::TypeModifier value) -{ - ((::CppSharp::CppParser::AST::PointerType*)NativePtr)->Modifier = (::CppSharp::CppParser::AST::PointerType::TypeModifier)value; -} - -CppSharp::Parser::AST::MemberPointerType::MemberPointerType(::CppSharp::CppParser::AST::MemberPointerType* native) - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) -{ -} - -CppSharp::Parser::AST::MemberPointerType::MemberPointerType(System::IntPtr native) - : CppSharp::Parser::AST::Type(native) -{ - auto __native = (::CppSharp::CppParser::AST::MemberPointerType*)native.ToPointer(); -} - -CppSharp::Parser::AST::MemberPointerType::MemberPointerType() - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::MemberPointerType(); -} - -CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::MemberPointerType::Pointee::get() -{ - return (&((::CppSharp::CppParser::AST::MemberPointerType*)NativePtr)->Pointee == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::MemberPointerType*)NativePtr)->Pointee); -} - -void CppSharp::Parser::AST::MemberPointerType::Pointee::set(CppSharp::Parser::AST::QualifiedType^ value) -{ - ((::CppSharp::CppParser::AST::MemberPointerType*)NativePtr)->Pointee = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; -} - -CppSharp::Parser::AST::TypedefType::TypedefType(::CppSharp::CppParser::AST::TypedefType* native) - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) -{ -} - -CppSharp::Parser::AST::TypedefType::TypedefType(System::IntPtr native) - : CppSharp::Parser::AST::Type(native) -{ - auto __native = (::CppSharp::CppParser::AST::TypedefType*)native.ToPointer(); -} - -CppSharp::Parser::AST::TypedefType::TypedefType() - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::TypedefType(); -} - -CppSharp::Parser::AST::TypedefDecl^ CppSharp::Parser::AST::TypedefType::Declaration::get() -{ - return (((::CppSharp::CppParser::AST::TypedefType*)NativePtr)->Declaration == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TypedefDecl((::CppSharp::CppParser::AST::TypedefDecl*)((::CppSharp::CppParser::AST::TypedefType*)NativePtr)->Declaration); -} - -void CppSharp::Parser::AST::TypedefType::Declaration::set(CppSharp::Parser::AST::TypedefDecl^ value) -{ - ((::CppSharp::CppParser::AST::TypedefType*)NativePtr)->Declaration = (::CppSharp::CppParser::AST::TypedefDecl*)value->NativePtr; -} - -CppSharp::Parser::AST::AttributedType::AttributedType(::CppSharp::CppParser::AST::AttributedType* native) - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) -{ -} - -CppSharp::Parser::AST::AttributedType::AttributedType(System::IntPtr native) - : CppSharp::Parser::AST::Type(native) -{ - auto __native = (::CppSharp::CppParser::AST::AttributedType*)native.ToPointer(); -} - -CppSharp::Parser::AST::AttributedType::AttributedType() - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::AttributedType(); -} - -CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::AttributedType::Modified::get() -{ - return (&((::CppSharp::CppParser::AST::AttributedType*)NativePtr)->Modified == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::AttributedType*)NativePtr)->Modified); -} - -void CppSharp::Parser::AST::AttributedType::Modified::set(CppSharp::Parser::AST::QualifiedType^ value) -{ - ((::CppSharp::CppParser::AST::AttributedType*)NativePtr)->Modified = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; -} - -CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::AttributedType::Equivalent::get() -{ - return (&((::CppSharp::CppParser::AST::AttributedType*)NativePtr)->Equivalent == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::AttributedType*)NativePtr)->Equivalent); -} - -void CppSharp::Parser::AST::AttributedType::Equivalent::set(CppSharp::Parser::AST::QualifiedType^ value) -{ - ((::CppSharp::CppParser::AST::AttributedType*)NativePtr)->Equivalent = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; -} - -CppSharp::Parser::AST::DecayedType::DecayedType(::CppSharp::CppParser::AST::DecayedType* native) - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) -{ -} - -CppSharp::Parser::AST::DecayedType::DecayedType(System::IntPtr native) - : CppSharp::Parser::AST::Type(native) -{ - auto __native = (::CppSharp::CppParser::AST::DecayedType*)native.ToPointer(); -} - -CppSharp::Parser::AST::DecayedType::DecayedType() - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::DecayedType(); -} - -CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::DecayedType::Decayed::get() -{ - return (&((::CppSharp::CppParser::AST::DecayedType*)NativePtr)->Decayed == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::DecayedType*)NativePtr)->Decayed); -} - -void CppSharp::Parser::AST::DecayedType::Decayed::set(CppSharp::Parser::AST::QualifiedType^ value) -{ - ((::CppSharp::CppParser::AST::DecayedType*)NativePtr)->Decayed = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; -} - -CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::DecayedType::Original::get() -{ - return (&((::CppSharp::CppParser::AST::DecayedType*)NativePtr)->Original == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::DecayedType*)NativePtr)->Original); -} - -void CppSharp::Parser::AST::DecayedType::Original::set(CppSharp::Parser::AST::QualifiedType^ value) -{ - ((::CppSharp::CppParser::AST::DecayedType*)NativePtr)->Original = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; -} - -CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::DecayedType::Pointee::get() -{ - return (&((::CppSharp::CppParser::AST::DecayedType*)NativePtr)->Pointee == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::DecayedType*)NativePtr)->Pointee); -} - -void CppSharp::Parser::AST::DecayedType::Pointee::set(CppSharp::Parser::AST::QualifiedType^ value) -{ - ((::CppSharp::CppParser::AST::DecayedType*)NativePtr)->Pointee = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; -} - -CppSharp::Parser::AST::TemplateArgument::TemplateArgument(::CppSharp::CppParser::AST::TemplateArgument* native) -{ - NativePtr = native; -} - -CppSharp::Parser::AST::TemplateArgument::TemplateArgument(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::AST::TemplateArgument*)native.ToPointer(); - NativePtr = __native; -} - -CppSharp::Parser::AST::TemplateArgument::TemplateArgument() -{ - NativePtr = new ::CppSharp::CppParser::AST::TemplateArgument(); -} - -System::IntPtr CppSharp::Parser::AST::TemplateArgument::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::AST::TemplateArgument::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::AST::TemplateArgument*)object.ToPointer(); -} - -CppSharp::Parser::AST::TemplateArgument::ArgumentKind CppSharp::Parser::AST::TemplateArgument::Kind::get() -{ - return (CppSharp::Parser::AST::TemplateArgument::ArgumentKind)((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Kind; -} - -void CppSharp::Parser::AST::TemplateArgument::Kind::set(CppSharp::Parser::AST::TemplateArgument::ArgumentKind value) -{ - ((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Kind = (::CppSharp::CppParser::AST::TemplateArgument::ArgumentKind)value; -} - -CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::TemplateArgument::Type::get() -{ - return (&((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Type == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Type); -} - -void CppSharp::Parser::AST::TemplateArgument::Type::set(CppSharp::Parser::AST::QualifiedType^ value) -{ - ((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Type = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; -} - -CppSharp::Parser::AST::Declaration^ CppSharp::Parser::AST::TemplateArgument::Declaration::get() -{ - return (((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Declaration == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Declaration); -} - -void CppSharp::Parser::AST::TemplateArgument::Declaration::set(CppSharp::Parser::AST::Declaration^ value) -{ - ((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Declaration = (::CppSharp::CppParser::AST::Declaration*)value->NativePtr; -} - -int CppSharp::Parser::AST::TemplateArgument::Integral::get() -{ - return ((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Integral; -} - -void CppSharp::Parser::AST::TemplateArgument::Integral::set(int value) -{ - ((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Integral = value; -} - -CppSharp::Parser::AST::TemplateSpecializationType::TemplateSpecializationType(::CppSharp::CppParser::AST::TemplateSpecializationType* native) - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) -{ -} - -CppSharp::Parser::AST::TemplateSpecializationType::TemplateSpecializationType(System::IntPtr native) - : CppSharp::Parser::AST::Type(native) -{ - auto __native = (::CppSharp::CppParser::AST::TemplateSpecializationType*)native.ToPointer(); -} - -CppSharp::Parser::AST::TemplateSpecializationType::TemplateSpecializationType() - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::TemplateSpecializationType(); -} - -CppSharp::Parser::AST::TemplateArgument^ CppSharp::Parser::AST::TemplateSpecializationType::getArguments(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::TemplateSpecializationType*)NativePtr)->getArguments(i); - auto ____ret = new ::CppSharp::CppParser::AST::TemplateArgument(__ret); - return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TemplateArgument((::CppSharp::CppParser::AST::TemplateArgument*)____ret); -} - -void CppSharp::Parser::AST::TemplateSpecializationType::addArguments(CppSharp::Parser::AST::TemplateArgument^ s) -{ - auto &arg0 = *(::CppSharp::CppParser::AST::TemplateArgument*)s->NativePtr; - ((::CppSharp::CppParser::AST::TemplateSpecializationType*)NativePtr)->addArguments(arg0); -} - -unsigned int CppSharp::Parser::AST::TemplateSpecializationType::ArgumentsCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::TemplateSpecializationType*)NativePtr)->getArgumentsCount(); - return __ret; -} - -CppSharp::Parser::AST::Template^ CppSharp::Parser::AST::TemplateSpecializationType::Template::get() -{ - return (((::CppSharp::CppParser::AST::TemplateSpecializationType*)NativePtr)->Template == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Template((::CppSharp::CppParser::AST::Template*)((::CppSharp::CppParser::AST::TemplateSpecializationType*)NativePtr)->Template); -} - -void CppSharp::Parser::AST::TemplateSpecializationType::Template::set(CppSharp::Parser::AST::Template^ value) -{ - ((::CppSharp::CppParser::AST::TemplateSpecializationType*)NativePtr)->Template = (::CppSharp::CppParser::AST::Template*)value->NativePtr; -} - -CppSharp::Parser::AST::Type^ CppSharp::Parser::AST::TemplateSpecializationType::Desugared::get() -{ - return (((::CppSharp::CppParser::AST::TemplateSpecializationType*)NativePtr)->Desugared == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)((::CppSharp::CppParser::AST::TemplateSpecializationType*)NativePtr)->Desugared); -} - -void CppSharp::Parser::AST::TemplateSpecializationType::Desugared::set(CppSharp::Parser::AST::Type^ value) -{ - ((::CppSharp::CppParser::AST::TemplateSpecializationType*)NativePtr)->Desugared = (::CppSharp::CppParser::AST::Type*)value->NativePtr; -} - -CppSharp::Parser::AST::TemplateParameter::TemplateParameter(::CppSharp::CppParser::AST::TemplateParameter* native) -{ - NativePtr = native; -} - -CppSharp::Parser::AST::TemplateParameter::TemplateParameter(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::AST::TemplateParameter*)native.ToPointer(); - NativePtr = __native; -} - -CppSharp::Parser::AST::TemplateParameter::TemplateParameter() -{ - NativePtr = new ::CppSharp::CppParser::AST::TemplateParameter(); -} - -bool CppSharp::Parser::AST::TemplateParameter::operator==(CppSharp::Parser::AST::TemplateParameter^ __op, CppSharp::Parser::AST::TemplateParameter^ param) -{ - auto &arg0 = *(::CppSharp::CppParser::AST::TemplateParameter*)__op->NativePtr; - auto &arg1 = *(::CppSharp::CppParser::AST::TemplateParameter*)param->NativePtr; - auto __ret = arg0 == arg1; - return __ret; -} - -System::IntPtr CppSharp::Parser::AST::TemplateParameter::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::AST::TemplateParameter::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::AST::TemplateParameter*)object.ToPointer(); -} - -System::String^ CppSharp::Parser::AST::TemplateParameter::Name::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::TemplateParameter*)NativePtr)->getName(); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::AST::TemplateParameter::Name::set(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::AST::TemplateParameter*)NativePtr)->setName(arg0); -} - -CppSharp::Parser::AST::TemplateParameterType::TemplateParameterType(::CppSharp::CppParser::AST::TemplateParameterType* native) - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) -{ -} - -CppSharp::Parser::AST::TemplateParameterType::TemplateParameterType(System::IntPtr native) - : CppSharp::Parser::AST::Type(native) -{ - auto __native = (::CppSharp::CppParser::AST::TemplateParameterType*)native.ToPointer(); -} - -CppSharp::Parser::AST::TemplateParameterType::TemplateParameterType() - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::TemplateParameterType(); -} - -CppSharp::Parser::AST::TemplateParameter^ CppSharp::Parser::AST::TemplateParameterType::Parameter::get() -{ - return (&((::CppSharp::CppParser::AST::TemplateParameterType*)NativePtr)->Parameter == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TemplateParameter((::CppSharp::CppParser::AST::TemplateParameter*)&((::CppSharp::CppParser::AST::TemplateParameterType*)NativePtr)->Parameter); -} - -void CppSharp::Parser::AST::TemplateParameterType::Parameter::set(CppSharp::Parser::AST::TemplateParameter^ value) -{ - ((::CppSharp::CppParser::AST::TemplateParameterType*)NativePtr)->Parameter = *(::CppSharp::CppParser::AST::TemplateParameter*)value->NativePtr; -} - -CppSharp::Parser::AST::TemplateParameterSubstitutionType::TemplateParameterSubstitutionType(::CppSharp::CppParser::AST::TemplateParameterSubstitutionType* native) - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) -{ -} - -CppSharp::Parser::AST::TemplateParameterSubstitutionType::TemplateParameterSubstitutionType(System::IntPtr native) - : CppSharp::Parser::AST::Type(native) -{ - auto __native = (::CppSharp::CppParser::AST::TemplateParameterSubstitutionType*)native.ToPointer(); -} - -CppSharp::Parser::AST::TemplateParameterSubstitutionType::TemplateParameterSubstitutionType() - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::TemplateParameterSubstitutionType(); -} - -CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::TemplateParameterSubstitutionType::Replacement::get() -{ - return (&((::CppSharp::CppParser::AST::TemplateParameterSubstitutionType*)NativePtr)->Replacement == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::TemplateParameterSubstitutionType*)NativePtr)->Replacement); -} - -void CppSharp::Parser::AST::TemplateParameterSubstitutionType::Replacement::set(CppSharp::Parser::AST::QualifiedType^ value) -{ - ((::CppSharp::CppParser::AST::TemplateParameterSubstitutionType*)NativePtr)->Replacement = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; -} - -CppSharp::Parser::AST::InjectedClassNameType::InjectedClassNameType(::CppSharp::CppParser::AST::InjectedClassNameType* native) - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) -{ -} - -CppSharp::Parser::AST::InjectedClassNameType::InjectedClassNameType(System::IntPtr native) - : CppSharp::Parser::AST::Type(native) -{ - auto __native = (::CppSharp::CppParser::AST::InjectedClassNameType*)native.ToPointer(); -} - -CppSharp::Parser::AST::InjectedClassNameType::InjectedClassNameType() - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::InjectedClassNameType(); -} - -CppSharp::Parser::AST::TemplateSpecializationType^ CppSharp::Parser::AST::InjectedClassNameType::TemplateSpecialization::get() -{ - return (&((::CppSharp::CppParser::AST::InjectedClassNameType*)NativePtr)->TemplateSpecialization == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TemplateSpecializationType((::CppSharp::CppParser::AST::TemplateSpecializationType*)&((::CppSharp::CppParser::AST::InjectedClassNameType*)NativePtr)->TemplateSpecialization); -} - -void CppSharp::Parser::AST::InjectedClassNameType::TemplateSpecialization::set(CppSharp::Parser::AST::TemplateSpecializationType^ value) -{ - ((::CppSharp::CppParser::AST::InjectedClassNameType*)NativePtr)->TemplateSpecialization = *(::CppSharp::CppParser::AST::TemplateSpecializationType*)value->NativePtr; -} - -CppSharp::Parser::AST::Class^ CppSharp::Parser::AST::InjectedClassNameType::Class::get() -{ - return (((::CppSharp::CppParser::AST::InjectedClassNameType*)NativePtr)->Class == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Class((::CppSharp::CppParser::AST::Class*)((::CppSharp::CppParser::AST::InjectedClassNameType*)NativePtr)->Class); -} - -void CppSharp::Parser::AST::InjectedClassNameType::Class::set(CppSharp::Parser::AST::Class^ value) -{ - ((::CppSharp::CppParser::AST::InjectedClassNameType*)NativePtr)->Class = (::CppSharp::CppParser::AST::Class*)value->NativePtr; -} - -CppSharp::Parser::AST::DependentNameType::DependentNameType(::CppSharp::CppParser::AST::DependentNameType* native) - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) -{ -} - -CppSharp::Parser::AST::DependentNameType::DependentNameType(System::IntPtr native) - : CppSharp::Parser::AST::Type(native) -{ - auto __native = (::CppSharp::CppParser::AST::DependentNameType*)native.ToPointer(); -} - -CppSharp::Parser::AST::DependentNameType::DependentNameType() - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::DependentNameType(); -} - -CppSharp::Parser::AST::PackExpansionType::PackExpansionType(::CppSharp::CppParser::AST::PackExpansionType* native) - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) -{ -} - -CppSharp::Parser::AST::PackExpansionType::PackExpansionType(System::IntPtr native) - : CppSharp::Parser::AST::Type(native) -{ - auto __native = (::CppSharp::CppParser::AST::PackExpansionType*)native.ToPointer(); -} - -CppSharp::Parser::AST::PackExpansionType::PackExpansionType() - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::PackExpansionType(); -} - -CppSharp::Parser::AST::BuiltinType::BuiltinType(::CppSharp::CppParser::AST::BuiltinType* native) - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) -{ -} - -CppSharp::Parser::AST::BuiltinType::BuiltinType(System::IntPtr native) - : CppSharp::Parser::AST::Type(native) -{ - auto __native = (::CppSharp::CppParser::AST::BuiltinType*)native.ToPointer(); -} - -CppSharp::Parser::AST::BuiltinType::BuiltinType() - : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::BuiltinType(); -} - -CppSharp::Parser::AST::PrimitiveType CppSharp::Parser::AST::BuiltinType::Type::get() -{ - return (CppSharp::Parser::AST::PrimitiveType)((::CppSharp::CppParser::AST::BuiltinType*)NativePtr)->Type; -} - -void CppSharp::Parser::AST::BuiltinType::Type::set(CppSharp::Parser::AST::PrimitiveType value) -{ - ((::CppSharp::CppParser::AST::BuiltinType*)NativePtr)->Type = (::CppSharp::CppParser::AST::PrimitiveType)value; -} - -CppSharp::Parser::AST::VTableComponent::VTableComponent(::CppSharp::CppParser::AST::VTableComponent* native) -{ - NativePtr = native; -} - -CppSharp::Parser::AST::VTableComponent::VTableComponent(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::AST::VTableComponent*)native.ToPointer(); - NativePtr = __native; -} - -CppSharp::Parser::AST::VTableComponent::VTableComponent() -{ - NativePtr = new ::CppSharp::CppParser::AST::VTableComponent(); -} - -System::IntPtr CppSharp::Parser::AST::VTableComponent::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::AST::VTableComponent::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::AST::VTableComponent*)object.ToPointer(); -} - -CppSharp::Parser::AST::VTableComponentKind CppSharp::Parser::AST::VTableComponent::Kind::get() -{ - return (CppSharp::Parser::AST::VTableComponentKind)((::CppSharp::CppParser::AST::VTableComponent*)NativePtr)->Kind; -} - -void CppSharp::Parser::AST::VTableComponent::Kind::set(CppSharp::Parser::AST::VTableComponentKind value) -{ - ((::CppSharp::CppParser::AST::VTableComponent*)NativePtr)->Kind = (::CppSharp::CppParser::AST::VTableComponentKind)value; -} - -unsigned int CppSharp::Parser::AST::VTableComponent::Offset::get() -{ - return ((::CppSharp::CppParser::AST::VTableComponent*)NativePtr)->Offset; -} - -void CppSharp::Parser::AST::VTableComponent::Offset::set(unsigned int value) -{ - ((::CppSharp::CppParser::AST::VTableComponent*)NativePtr)->Offset = value; -} - -CppSharp::Parser::AST::Declaration^ CppSharp::Parser::AST::VTableComponent::Declaration::get() -{ - return (((::CppSharp::CppParser::AST::VTableComponent*)NativePtr)->Declaration == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)((::CppSharp::CppParser::AST::VTableComponent*)NativePtr)->Declaration); -} - -void CppSharp::Parser::AST::VTableComponent::Declaration::set(CppSharp::Parser::AST::Declaration^ value) -{ - ((::CppSharp::CppParser::AST::VTableComponent*)NativePtr)->Declaration = (::CppSharp::CppParser::AST::Declaration*)value->NativePtr; -} - -CppSharp::Parser::AST::VTableLayout::VTableLayout(::CppSharp::CppParser::AST::VTableLayout* native) -{ - NativePtr = native; -} - -CppSharp::Parser::AST::VTableLayout::VTableLayout(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::AST::VTableLayout*)native.ToPointer(); - NativePtr = __native; -} - -CppSharp::Parser::AST::VTableLayout::VTableLayout() -{ - NativePtr = new ::CppSharp::CppParser::AST::VTableLayout(); -} - -CppSharp::Parser::AST::VTableComponent^ CppSharp::Parser::AST::VTableLayout::getComponents(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::VTableLayout*)NativePtr)->getComponents(i); - auto ____ret = new ::CppSharp::CppParser::AST::VTableComponent(__ret); - return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::VTableComponent((::CppSharp::CppParser::AST::VTableComponent*)____ret); -} - -void CppSharp::Parser::AST::VTableLayout::addComponents(CppSharp::Parser::AST::VTableComponent^ s) -{ - auto &arg0 = *(::CppSharp::CppParser::AST::VTableComponent*)s->NativePtr; - ((::CppSharp::CppParser::AST::VTableLayout*)NativePtr)->addComponents(arg0); -} - -System::IntPtr CppSharp::Parser::AST::VTableLayout::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::AST::VTableLayout::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::AST::VTableLayout*)object.ToPointer(); -} - -unsigned int CppSharp::Parser::AST::VTableLayout::ComponentsCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::VTableLayout*)NativePtr)->getComponentsCount(); - return __ret; -} - -CppSharp::Parser::AST::VFTableInfo::VFTableInfo(::CppSharp::CppParser::AST::VFTableInfo* native) -{ - NativePtr = native; -} - -CppSharp::Parser::AST::VFTableInfo::VFTableInfo(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::AST::VFTableInfo*)native.ToPointer(); - NativePtr = __native; -} - -CppSharp::Parser::AST::VFTableInfo::VFTableInfo() -{ - NativePtr = new ::CppSharp::CppParser::AST::VFTableInfo(); -} - -System::IntPtr CppSharp::Parser::AST::VFTableInfo::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::AST::VFTableInfo::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::AST::VFTableInfo*)object.ToPointer(); -} - -unsigned long long CppSharp::Parser::AST::VFTableInfo::VBTableIndex::get() -{ - return ((::CppSharp::CppParser::AST::VFTableInfo*)NativePtr)->VBTableIndex; -} - -void CppSharp::Parser::AST::VFTableInfo::VBTableIndex::set(unsigned long long value) -{ - ((::CppSharp::CppParser::AST::VFTableInfo*)NativePtr)->VBTableIndex = (::uint64_t)value; -} - -unsigned int CppSharp::Parser::AST::VFTableInfo::VFPtrOffset::get() -{ - return ((::CppSharp::CppParser::AST::VFTableInfo*)NativePtr)->VFPtrOffset; -} - -void CppSharp::Parser::AST::VFTableInfo::VFPtrOffset::set(unsigned int value) -{ - ((::CppSharp::CppParser::AST::VFTableInfo*)NativePtr)->VFPtrOffset = (::uint32_t)value; -} - -unsigned int CppSharp::Parser::AST::VFTableInfo::VFPtrFullOffset::get() -{ - return ((::CppSharp::CppParser::AST::VFTableInfo*)NativePtr)->VFPtrFullOffset; -} - -void CppSharp::Parser::AST::VFTableInfo::VFPtrFullOffset::set(unsigned int value) -{ - ((::CppSharp::CppParser::AST::VFTableInfo*)NativePtr)->VFPtrFullOffset = (::uint32_t)value; -} - -CppSharp::Parser::AST::VTableLayout^ CppSharp::Parser::AST::VFTableInfo::Layout::get() -{ - return (&((::CppSharp::CppParser::AST::VFTableInfo*)NativePtr)->Layout == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::VTableLayout((::CppSharp::CppParser::AST::VTableLayout*)&((::CppSharp::CppParser::AST::VFTableInfo*)NativePtr)->Layout); -} - -void CppSharp::Parser::AST::VFTableInfo::Layout::set(CppSharp::Parser::AST::VTableLayout^ value) -{ - ((::CppSharp::CppParser::AST::VFTableInfo*)NativePtr)->Layout = *(::CppSharp::CppParser::AST::VTableLayout*)value->NativePtr; -} - -CppSharp::Parser::AST::ClassLayout::ClassLayout(::CppSharp::CppParser::AST::ClassLayout* native) -{ - NativePtr = native; -} - -CppSharp::Parser::AST::ClassLayout::ClassLayout(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::AST::ClassLayout*)native.ToPointer(); - NativePtr = __native; -} - -CppSharp::Parser::AST::ClassLayout::ClassLayout() -{ - NativePtr = new ::CppSharp::CppParser::AST::ClassLayout(); -} - -CppSharp::Parser::AST::VFTableInfo^ CppSharp::Parser::AST::ClassLayout::getVFTables(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->getVFTables(i); - auto ____ret = new ::CppSharp::CppParser::AST::VFTableInfo(__ret); - return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::VFTableInfo((::CppSharp::CppParser::AST::VFTableInfo*)____ret); -} - -void CppSharp::Parser::AST::ClassLayout::addVFTables(CppSharp::Parser::AST::VFTableInfo^ s) -{ - auto &arg0 = *(::CppSharp::CppParser::AST::VFTableInfo*)s->NativePtr; - ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->addVFTables(arg0); -} - -System::IntPtr CppSharp::Parser::AST::ClassLayout::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::AST::ClassLayout::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::AST::ClassLayout*)object.ToPointer(); -} - -unsigned int CppSharp::Parser::AST::ClassLayout::VFTablesCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->getVFTablesCount(); - return __ret; -} - -CppSharp::Parser::AST::CppAbi CppSharp::Parser::AST::ClassLayout::ABI::get() -{ - return (CppSharp::Parser::AST::CppAbi)((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->ABI; -} - -void CppSharp::Parser::AST::ClassLayout::ABI::set(CppSharp::Parser::AST::CppAbi value) -{ - ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->ABI = (::CppSharp::CppParser::AST::CppAbi)value; -} - -CppSharp::Parser::AST::VTableLayout^ CppSharp::Parser::AST::ClassLayout::Layout::get() -{ - return (&((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->Layout == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::VTableLayout((::CppSharp::CppParser::AST::VTableLayout*)&((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->Layout); -} - -void CppSharp::Parser::AST::ClassLayout::Layout::set(CppSharp::Parser::AST::VTableLayout^ value) -{ - ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->Layout = *(::CppSharp::CppParser::AST::VTableLayout*)value->NativePtr; -} - -bool CppSharp::Parser::AST::ClassLayout::HasOwnVFPtr::get() -{ - return ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->HasOwnVFPtr; -} - -void CppSharp::Parser::AST::ClassLayout::HasOwnVFPtr::set(bool value) -{ - ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->HasOwnVFPtr = value; -} - -int CppSharp::Parser::AST::ClassLayout::VBPtrOffset::get() -{ - return ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->VBPtrOffset; -} - -void CppSharp::Parser::AST::ClassLayout::VBPtrOffset::set(int value) -{ - ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->VBPtrOffset = value; -} - -int CppSharp::Parser::AST::ClassLayout::Alignment::get() -{ - return ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->Alignment; -} - -void CppSharp::Parser::AST::ClassLayout::Alignment::set(int value) -{ - ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->Alignment = value; -} - -int CppSharp::Parser::AST::ClassLayout::Size::get() -{ - return ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->Size; -} - -void CppSharp::Parser::AST::ClassLayout::Size::set(int value) -{ - ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->Size = value; -} - -int CppSharp::Parser::AST::ClassLayout::DataSize::get() -{ - return ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->DataSize; -} - -void CppSharp::Parser::AST::ClassLayout::DataSize::set(int value) -{ - ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->DataSize = value; -} - -CppSharp::Parser::AST::Declaration::Declaration(::CppSharp::CppParser::AST::Declaration* native) -{ - NativePtr = native; -} - -CppSharp::Parser::AST::Declaration::Declaration(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::AST::Declaration*)native.ToPointer(); - NativePtr = __native; -} - -CppSharp::Parser::AST::Declaration::Declaration(CppSharp::Parser::AST::DeclarationKind kind) -{ - auto arg0 = (::CppSharp::CppParser::AST::DeclarationKind)kind; - NativePtr = new ::CppSharp::CppParser::AST::Declaration(arg0); -} - -CppSharp::Parser::AST::PreprocessedEntity^ CppSharp::Parser::AST::Declaration::getPreprocessedEntities(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->getPreprocessedEntities(i); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::PreprocessedEntity((::CppSharp::CppParser::AST::PreprocessedEntity*)__ret); -} - -void CppSharp::Parser::AST::Declaration::addPreprocessedEntities(CppSharp::Parser::AST::PreprocessedEntity^ s) -{ - auto arg0 = (::CppSharp::CppParser::AST::PreprocessedEntity*)s->NativePtr; - ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->addPreprocessedEntities(arg0); -} - -System::IntPtr CppSharp::Parser::AST::Declaration::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::AST::Declaration::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::AST::Declaration*)object.ToPointer(); -} - -System::String^ CppSharp::Parser::AST::Declaration::Name::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->getName(); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::AST::Declaration::Name::set(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->setName(arg0); -} - -System::String^ CppSharp::Parser::AST::Declaration::DebugText::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->getDebugText(); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::AST::Declaration::DebugText::set(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->setDebugText(arg0); -} - -unsigned int CppSharp::Parser::AST::Declaration::PreprocessedEntitiesCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->getPreprocessedEntitiesCount(); - return __ret; -} - -CppSharp::Parser::AST::DeclarationKind CppSharp::Parser::AST::Declaration::Kind::get() -{ - return (CppSharp::Parser::AST::DeclarationKind)((::CppSharp::CppParser::AST::Declaration*)NativePtr)->Kind; -} - -void CppSharp::Parser::AST::Declaration::Kind::set(CppSharp::Parser::AST::DeclarationKind value) -{ - ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->Kind = (::CppSharp::CppParser::AST::DeclarationKind)value; -} - -CppSharp::Parser::AST::AccessSpecifier CppSharp::Parser::AST::Declaration::Access::get() -{ - return (CppSharp::Parser::AST::AccessSpecifier)((::CppSharp::CppParser::AST::Declaration*)NativePtr)->Access; -} - -void CppSharp::Parser::AST::Declaration::Access::set(CppSharp::Parser::AST::AccessSpecifier value) -{ - ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->Access = (::CppSharp::CppParser::AST::AccessSpecifier)value; -} - -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); -} - -void CppSharp::Parser::AST::Declaration::_Namespace::set(CppSharp::Parser::AST::DeclarationContext^ value) -{ - ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->_Namespace = (::CppSharp::CppParser::AST::DeclarationContext*)value->NativePtr; -} - -CppSharp::Parser::AST::RawComment^ CppSharp::Parser::AST::Declaration::Comment::get() -{ - return (((::CppSharp::CppParser::AST::Declaration*)NativePtr)->Comment == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::RawComment((::CppSharp::CppParser::AST::RawComment*)((::CppSharp::CppParser::AST::Declaration*)NativePtr)->Comment); -} - -void CppSharp::Parser::AST::Declaration::Comment::set(CppSharp::Parser::AST::RawComment^ value) -{ - ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->Comment = (::CppSharp::CppParser::AST::RawComment*)value->NativePtr; -} - -bool CppSharp::Parser::AST::Declaration::IsIncomplete::get() -{ - return ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->IsIncomplete; -} - -void CppSharp::Parser::AST::Declaration::IsIncomplete::set(bool value) -{ - ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->IsIncomplete = value; -} - -bool CppSharp::Parser::AST::Declaration::IsDependent::get() -{ - return ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->IsDependent; -} - -void CppSharp::Parser::AST::Declaration::IsDependent::set(bool value) -{ - ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->IsDependent = value; -} - -CppSharp::Parser::AST::Declaration^ CppSharp::Parser::AST::Declaration::CompleteDeclaration::get() -{ - return (((::CppSharp::CppParser::AST::Declaration*)NativePtr)->CompleteDeclaration == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)((::CppSharp::CppParser::AST::Declaration*)NativePtr)->CompleteDeclaration); -} - -void CppSharp::Parser::AST::Declaration::CompleteDeclaration::set(CppSharp::Parser::AST::Declaration^ value) -{ - ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->CompleteDeclaration = (::CppSharp::CppParser::AST::Declaration*)value->NativePtr; -} - -unsigned int CppSharp::Parser::AST::Declaration::DefinitionOrder::get() -{ - return ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->DefinitionOrder; -} - -void CppSharp::Parser::AST::Declaration::DefinitionOrder::set(unsigned int value) -{ - ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->DefinitionOrder = value; -} - -void* CppSharp::Parser::AST::Declaration::OriginalPtr::get() -{ - return ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->OriginalPtr; -} - -void CppSharp::Parser::AST::Declaration::OriginalPtr::set(void* value) -{ - ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->OriginalPtr = (void*)value; -} - -CppSharp::Parser::AST::DeclarationContext::DeclarationContext(::CppSharp::CppParser::AST::DeclarationContext* native) - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) -{ -} - -CppSharp::Parser::AST::DeclarationContext::DeclarationContext(System::IntPtr native) - : CppSharp::Parser::AST::Declaration(native) -{ - auto __native = (::CppSharp::CppParser::AST::DeclarationContext*)native.ToPointer(); -} - -CppSharp::Parser::AST::DeclarationContext::DeclarationContext(CppSharp::Parser::AST::DeclarationKind kind) - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) -{ - auto arg0 = (::CppSharp::CppParser::AST::DeclarationKind)kind; - NativePtr = new ::CppSharp::CppParser::AST::DeclarationContext(arg0); -} - -CppSharp::Parser::AST::Namespace^ CppSharp::Parser::AST::DeclarationContext::getNamespaces(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getNamespaces(i); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Namespace((::CppSharp::CppParser::AST::Namespace*)__ret); -} - -void CppSharp::Parser::AST::DeclarationContext::addNamespaces(CppSharp::Parser::AST::Namespace^ s) -{ - auto arg0 = (::CppSharp::CppParser::AST::Namespace*)s->NativePtr; - ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->addNamespaces(arg0); -} - -CppSharp::Parser::AST::Enumeration^ CppSharp::Parser::AST::DeclarationContext::getEnums(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getEnums(i); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Enumeration((::CppSharp::CppParser::AST::Enumeration*)__ret); -} - -void CppSharp::Parser::AST::DeclarationContext::addEnums(CppSharp::Parser::AST::Enumeration^ s) -{ - auto arg0 = (::CppSharp::CppParser::AST::Enumeration*)s->NativePtr; - ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->addEnums(arg0); -} - -CppSharp::Parser::AST::Function^ CppSharp::Parser::AST::DeclarationContext::getFunctions(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getFunctions(i); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Function((::CppSharp::CppParser::AST::Function*)__ret); -} - -void CppSharp::Parser::AST::DeclarationContext::addFunctions(CppSharp::Parser::AST::Function^ s) -{ - auto arg0 = (::CppSharp::CppParser::AST::Function*)s->NativePtr; - ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->addFunctions(arg0); -} - -CppSharp::Parser::AST::Class^ CppSharp::Parser::AST::DeclarationContext::getClasses(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getClasses(i); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Class((::CppSharp::CppParser::AST::Class*)__ret); -} - -void CppSharp::Parser::AST::DeclarationContext::addClasses(CppSharp::Parser::AST::Class^ s) -{ - auto arg0 = (::CppSharp::CppParser::AST::Class*)s->NativePtr; - ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->addClasses(arg0); -} - -CppSharp::Parser::AST::Template^ CppSharp::Parser::AST::DeclarationContext::getTemplates(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getTemplates(i); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Template((::CppSharp::CppParser::AST::Template*)__ret); -} - -void CppSharp::Parser::AST::DeclarationContext::addTemplates(CppSharp::Parser::AST::Template^ s) -{ - auto arg0 = (::CppSharp::CppParser::AST::Template*)s->NativePtr; - ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->addTemplates(arg0); -} - -CppSharp::Parser::AST::TypedefDecl^ CppSharp::Parser::AST::DeclarationContext::getTypedefs(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getTypedefs(i); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TypedefDecl((::CppSharp::CppParser::AST::TypedefDecl*)__ret); -} - -void CppSharp::Parser::AST::DeclarationContext::addTypedefs(CppSharp::Parser::AST::TypedefDecl^ s) -{ - auto arg0 = (::CppSharp::CppParser::AST::TypedefDecl*)s->NativePtr; - ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->addTypedefs(arg0); -} - -CppSharp::Parser::AST::Variable^ CppSharp::Parser::AST::DeclarationContext::getVariables(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getVariables(i); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Variable((::CppSharp::CppParser::AST::Variable*)__ret); -} - -void CppSharp::Parser::AST::DeclarationContext::addVariables(CppSharp::Parser::AST::Variable^ s) -{ - auto arg0 = (::CppSharp::CppParser::AST::Variable*)s->NativePtr; - ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->addVariables(arg0); -} - -unsigned int CppSharp::Parser::AST::DeclarationContext::NamespacesCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getNamespacesCount(); - return __ret; -} - -unsigned int CppSharp::Parser::AST::DeclarationContext::EnumsCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getEnumsCount(); - return __ret; -} - -unsigned int CppSharp::Parser::AST::DeclarationContext::FunctionsCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getFunctionsCount(); - return __ret; -} - -unsigned int CppSharp::Parser::AST::DeclarationContext::ClassesCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getClassesCount(); - return __ret; -} - -unsigned int CppSharp::Parser::AST::DeclarationContext::TemplatesCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getTemplatesCount(); - return __ret; -} - -unsigned int CppSharp::Parser::AST::DeclarationContext::TypedefsCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getTypedefsCount(); - return __ret; -} - -unsigned int CppSharp::Parser::AST::DeclarationContext::VariablesCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getVariablesCount(); - return __ret; -} - -bool CppSharp::Parser::AST::DeclarationContext::IsAnonymous::get() -{ - return ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->IsAnonymous; -} - -void CppSharp::Parser::AST::DeclarationContext::IsAnonymous::set(bool value) -{ - ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->IsAnonymous = value; -} - -CppSharp::Parser::AST::TypedefDecl::TypedefDecl(::CppSharp::CppParser::AST::TypedefDecl* native) - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) -{ -} - -CppSharp::Parser::AST::TypedefDecl::TypedefDecl(System::IntPtr native) - : CppSharp::Parser::AST::Declaration(native) -{ - auto __native = (::CppSharp::CppParser::AST::TypedefDecl*)native.ToPointer(); -} - -CppSharp::Parser::AST::TypedefDecl::TypedefDecl() - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::TypedefDecl(); -} - -CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::TypedefDecl::QualifiedType::get() -{ - return (&((::CppSharp::CppParser::AST::TypedefDecl*)NativePtr)->QualifiedType == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::TypedefDecl*)NativePtr)->QualifiedType); -} - -void CppSharp::Parser::AST::TypedefDecl::QualifiedType::set(CppSharp::Parser::AST::QualifiedType^ value) -{ - ((::CppSharp::CppParser::AST::TypedefDecl*)NativePtr)->QualifiedType = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; -} - -CppSharp::Parser::AST::Parameter::Parameter(::CppSharp::CppParser::AST::Parameter* native) - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) -{ -} - -CppSharp::Parser::AST::Parameter::Parameter(System::IntPtr native) - : CppSharp::Parser::AST::Declaration(native) -{ - auto __native = (::CppSharp::CppParser::AST::Parameter*)native.ToPointer(); -} - -CppSharp::Parser::AST::Parameter::Parameter() - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::Parameter(); -} - -CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::Parameter::QualifiedType::get() -{ - return (&((::CppSharp::CppParser::AST::Parameter*)NativePtr)->QualifiedType == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::Parameter*)NativePtr)->QualifiedType); -} - -void CppSharp::Parser::AST::Parameter::QualifiedType::set(CppSharp::Parser::AST::QualifiedType^ value) -{ - ((::CppSharp::CppParser::AST::Parameter*)NativePtr)->QualifiedType = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; -} - -bool CppSharp::Parser::AST::Parameter::IsIndirect::get() -{ - return ((::CppSharp::CppParser::AST::Parameter*)NativePtr)->IsIndirect; -} - -void CppSharp::Parser::AST::Parameter::IsIndirect::set(bool value) -{ - ((::CppSharp::CppParser::AST::Parameter*)NativePtr)->IsIndirect = value; -} - -bool CppSharp::Parser::AST::Parameter::HasDefaultValue::get() -{ - return ((::CppSharp::CppParser::AST::Parameter*)NativePtr)->HasDefaultValue; -} - -void CppSharp::Parser::AST::Parameter::HasDefaultValue::set(bool value) -{ - ((::CppSharp::CppParser::AST::Parameter*)NativePtr)->HasDefaultValue = value; -} - -unsigned int CppSharp::Parser::AST::Parameter::Index::get() -{ - return ((::CppSharp::CppParser::AST::Parameter*)NativePtr)->Index; -} - -void CppSharp::Parser::AST::Parameter::Index::set(unsigned int value) -{ - ((::CppSharp::CppParser::AST::Parameter*)NativePtr)->Index = value; -} - -CppSharp::Parser::AST::Function::Function(::CppSharp::CppParser::AST::Function* native) - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) -{ -} - -CppSharp::Parser::AST::Function::Function(System::IntPtr native) - : CppSharp::Parser::AST::Declaration(native) -{ - auto __native = (::CppSharp::CppParser::AST::Function*)native.ToPointer(); -} - -CppSharp::Parser::AST::Function::Function() - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::Function(); -} - -CppSharp::Parser::AST::Parameter^ CppSharp::Parser::AST::Function::getParameters(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::Function*)NativePtr)->getParameters(i); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Parameter((::CppSharp::CppParser::AST::Parameter*)__ret); -} - -void CppSharp::Parser::AST::Function::addParameters(CppSharp::Parser::AST::Parameter^ s) -{ - auto arg0 = (::CppSharp::CppParser::AST::Parameter*)s->NativePtr; - ((::CppSharp::CppParser::AST::Function*)NativePtr)->addParameters(arg0); -} - -System::String^ CppSharp::Parser::AST::Function::Mangled::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::Function*)NativePtr)->getMangled(); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::AST::Function::Mangled::set(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::AST::Function*)NativePtr)->setMangled(arg0); -} - -System::String^ CppSharp::Parser::AST::Function::Signature::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::Function*)NativePtr)->getSignature(); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::AST::Function::Signature::set(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::AST::Function*)NativePtr)->setSignature(arg0); -} - -unsigned int CppSharp::Parser::AST::Function::ParametersCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::Function*)NativePtr)->getParametersCount(); - return __ret; -} - -CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::Function::ReturnType::get() -{ - return (&((::CppSharp::CppParser::AST::Function*)NativePtr)->ReturnType == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::Function*)NativePtr)->ReturnType); -} - -void CppSharp::Parser::AST::Function::ReturnType::set(CppSharp::Parser::AST::QualifiedType^ value) -{ - ((::CppSharp::CppParser::AST::Function*)NativePtr)->ReturnType = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; -} - -bool CppSharp::Parser::AST::Function::IsReturnIndirect::get() -{ - return ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsReturnIndirect; -} - -void CppSharp::Parser::AST::Function::IsReturnIndirect::set(bool value) -{ - ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsReturnIndirect = value; -} - -bool CppSharp::Parser::AST::Function::IsVariadic::get() -{ - return ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsVariadic; -} - -void CppSharp::Parser::AST::Function::IsVariadic::set(bool value) -{ - ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsVariadic = value; -} - -bool CppSharp::Parser::AST::Function::IsInline::get() -{ - return ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsInline; -} - -void CppSharp::Parser::AST::Function::IsInline::set(bool value) -{ - ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsInline = value; -} - -bool CppSharp::Parser::AST::Function::IsPure::get() -{ - return ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsPure; -} - -void CppSharp::Parser::AST::Function::IsPure::set(bool value) -{ - ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsPure = value; -} - -bool CppSharp::Parser::AST::Function::IsDeleted::get() -{ - return ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsDeleted; -} - -void CppSharp::Parser::AST::Function::IsDeleted::set(bool value) -{ - ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsDeleted = value; -} - -CppSharp::Parser::AST::CXXOperatorKind CppSharp::Parser::AST::Function::OperatorKind::get() -{ - return (CppSharp::Parser::AST::CXXOperatorKind)((::CppSharp::CppParser::AST::Function*)NativePtr)->OperatorKind; -} - -void CppSharp::Parser::AST::Function::OperatorKind::set(CppSharp::Parser::AST::CXXOperatorKind value) -{ - ((::CppSharp::CppParser::AST::Function*)NativePtr)->OperatorKind = (::CppSharp::CppParser::AST::CXXOperatorKind)value; -} - -CppSharp::Parser::AST::CallingConvention CppSharp::Parser::AST::Function::CallingConvention::get() -{ - return (CppSharp::Parser::AST::CallingConvention)((::CppSharp::CppParser::AST::Function*)NativePtr)->CallingConvention; -} - -void CppSharp::Parser::AST::Function::CallingConvention::set(CppSharp::Parser::AST::CallingConvention value) -{ - ((::CppSharp::CppParser::AST::Function*)NativePtr)->CallingConvention = (::CppSharp::CppParser::AST::CallingConvention)value; -} - -CppSharp::Parser::AST::Method::Method(::CppSharp::CppParser::AST::Method* native) - : CppSharp::Parser::AST::Function((::CppSharp::CppParser::AST::Function*)native) -{ -} - -CppSharp::Parser::AST::Method::Method(System::IntPtr native) - : CppSharp::Parser::AST::Function(native) -{ - auto __native = (::CppSharp::CppParser::AST::Method*)native.ToPointer(); -} - -CppSharp::Parser::AST::Method::Method() - : CppSharp::Parser::AST::Function((::CppSharp::CppParser::AST::Function*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::Method(); -} - -CppSharp::Parser::AST::AccessSpecifierDecl^ CppSharp::Parser::AST::Method::AccessDecl::get() -{ - return (((::CppSharp::CppParser::AST::Method*)NativePtr)->AccessDecl == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::AccessSpecifierDecl((::CppSharp::CppParser::AST::AccessSpecifierDecl*)((::CppSharp::CppParser::AST::Method*)NativePtr)->AccessDecl); -} - -void CppSharp::Parser::AST::Method::AccessDecl::set(CppSharp::Parser::AST::AccessSpecifierDecl^ value) -{ - ((::CppSharp::CppParser::AST::Method*)NativePtr)->AccessDecl = (::CppSharp::CppParser::AST::AccessSpecifierDecl*)value->NativePtr; -} - -bool CppSharp::Parser::AST::Method::IsVirtual::get() -{ - return ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsVirtual; -} - -void CppSharp::Parser::AST::Method::IsVirtual::set(bool value) -{ - ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsVirtual = value; -} - -bool CppSharp::Parser::AST::Method::IsStatic::get() -{ - return ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsStatic; -} - -void CppSharp::Parser::AST::Method::IsStatic::set(bool value) -{ - ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsStatic = value; -} - -bool CppSharp::Parser::AST::Method::IsConst::get() -{ - return ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsConst; -} - -void CppSharp::Parser::AST::Method::IsConst::set(bool value) -{ - ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsConst = value; -} - -bool CppSharp::Parser::AST::Method::IsImplicit::get() -{ - return ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsImplicit; -} - -void CppSharp::Parser::AST::Method::IsImplicit::set(bool value) -{ - ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsImplicit = value; -} - -bool CppSharp::Parser::AST::Method::IsExplicit::get() -{ - return ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsExplicit; -} - -void CppSharp::Parser::AST::Method::IsExplicit::set(bool value) -{ - ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsExplicit = value; -} - -bool CppSharp::Parser::AST::Method::IsOverride::get() -{ - return ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsOverride; -} - -void CppSharp::Parser::AST::Method::IsOverride::set(bool value) -{ - ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsOverride = value; -} - -CppSharp::Parser::AST::CXXMethodKind CppSharp::Parser::AST::Method::MethodKind::get() -{ - return (CppSharp::Parser::AST::CXXMethodKind)((::CppSharp::CppParser::AST::Method*)NativePtr)->MethodKind; -} - -void CppSharp::Parser::AST::Method::MethodKind::set(CppSharp::Parser::AST::CXXMethodKind value) -{ - ((::CppSharp::CppParser::AST::Method*)NativePtr)->MethodKind = (::CppSharp::CppParser::AST::CXXMethodKind)value; -} - -bool CppSharp::Parser::AST::Method::IsDefaultConstructor::get() -{ - return ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsDefaultConstructor; -} - -void CppSharp::Parser::AST::Method::IsDefaultConstructor::set(bool value) -{ - ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsDefaultConstructor = value; -} - -bool CppSharp::Parser::AST::Method::IsCopyConstructor::get() -{ - return ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsCopyConstructor; -} - -void CppSharp::Parser::AST::Method::IsCopyConstructor::set(bool value) -{ - ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsCopyConstructor = value; -} - -bool CppSharp::Parser::AST::Method::IsMoveConstructor::get() -{ - return ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsMoveConstructor; -} - -void CppSharp::Parser::AST::Method::IsMoveConstructor::set(bool value) -{ - ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsMoveConstructor = value; -} - -CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::Method::ConversionType::get() -{ - return (&((::CppSharp::CppParser::AST::Method*)NativePtr)->ConversionType == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::Method*)NativePtr)->ConversionType); -} - -void CppSharp::Parser::AST::Method::ConversionType::set(CppSharp::Parser::AST::QualifiedType^ value) -{ - ((::CppSharp::CppParser::AST::Method*)NativePtr)->ConversionType = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; -} - -CppSharp::Parser::AST::Enumeration::Item::Item(::CppSharp::CppParser::AST::Enumeration::Item* native) - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) -{ -} - -CppSharp::Parser::AST::Enumeration::Item::Item(System::IntPtr native) - : CppSharp::Parser::AST::Declaration(native) -{ - auto __native = (::CppSharp::CppParser::AST::Enumeration::Item*)native.ToPointer(); -} - -CppSharp::Parser::AST::Enumeration::Item::Item() - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::Enumeration::Item(); -} - -System::String^ CppSharp::Parser::AST::Enumeration::Item::Expression::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::Enumeration::Item*)NativePtr)->getExpression(); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::AST::Enumeration::Item::Expression::set(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::AST::Enumeration::Item*)NativePtr)->setExpression(arg0); -} - -unsigned long long CppSharp::Parser::AST::Enumeration::Item::Value::get() -{ - return ((::CppSharp::CppParser::AST::Enumeration::Item*)NativePtr)->Value; -} - -void CppSharp::Parser::AST::Enumeration::Item::Value::set(unsigned long long value) -{ - ((::CppSharp::CppParser::AST::Enumeration::Item*)NativePtr)->Value = (::uint64_t)value; -} - -CppSharp::Parser::AST::Enumeration::Enumeration(::CppSharp::CppParser::AST::Enumeration* native) - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) -{ -} - -CppSharp::Parser::AST::Enumeration::Enumeration(System::IntPtr native) - : CppSharp::Parser::AST::Declaration(native) -{ - auto __native = (::CppSharp::CppParser::AST::Enumeration*)native.ToPointer(); -} - -CppSharp::Parser::AST::Enumeration::Enumeration() - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::Enumeration(); -} - -CppSharp::Parser::AST::Enumeration::Item^ CppSharp::Parser::AST::Enumeration::getItems(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->getItems(i); - auto ____ret = new ::CppSharp::CppParser::AST::Enumeration::Item(__ret); - return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Enumeration::Item((::CppSharp::CppParser::AST::Enumeration::Item*)____ret); -} - -void CppSharp::Parser::AST::Enumeration::addItems(CppSharp::Parser::AST::Enumeration::Item^ s) -{ - auto &arg0 = *(::CppSharp::CppParser::AST::Enumeration::Item*)s->NativePtr; - ((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->addItems(arg0); -} - -unsigned int CppSharp::Parser::AST::Enumeration::ItemsCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->getItemsCount(); - return __ret; -} - -CppSharp::Parser::AST::Enumeration::EnumModifiers CppSharp::Parser::AST::Enumeration::Modifiers::get() -{ - return (CppSharp::Parser::AST::Enumeration::EnumModifiers)((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->Modifiers; -} - -void CppSharp::Parser::AST::Enumeration::Modifiers::set(CppSharp::Parser::AST::Enumeration::EnumModifiers value) -{ - ((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->Modifiers = (::CppSharp::CppParser::AST::Enumeration::EnumModifiers)value; -} - -CppSharp::Parser::AST::Type^ CppSharp::Parser::AST::Enumeration::Type::get() -{ - return (((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->Type == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->Type); -} - -void CppSharp::Parser::AST::Enumeration::Type::set(CppSharp::Parser::AST::Type^ value) -{ - ((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->Type = (::CppSharp::CppParser::AST::Type*)value->NativePtr; -} - -CppSharp::Parser::AST::BuiltinType^ CppSharp::Parser::AST::Enumeration::BuiltinType::get() -{ - return (((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->BuiltinType == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::BuiltinType((::CppSharp::CppParser::AST::BuiltinType*)((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->BuiltinType); -} - -void CppSharp::Parser::AST::Enumeration::BuiltinType::set(CppSharp::Parser::AST::BuiltinType^ value) -{ - ((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->BuiltinType = (::CppSharp::CppParser::AST::BuiltinType*)value->NativePtr; -} - -CppSharp::Parser::AST::Variable::Variable(::CppSharp::CppParser::AST::Variable* native) - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) -{ -} - -CppSharp::Parser::AST::Variable::Variable(System::IntPtr native) - : CppSharp::Parser::AST::Declaration(native) -{ - auto __native = (::CppSharp::CppParser::AST::Variable*)native.ToPointer(); -} - -CppSharp::Parser::AST::Variable::Variable() - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::Variable(); -} - -System::String^ CppSharp::Parser::AST::Variable::Mangled::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::Variable*)NativePtr)->getMangled(); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::AST::Variable::Mangled::set(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::AST::Variable*)NativePtr)->setMangled(arg0); -} - -CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::Variable::QualifiedType::get() -{ - return (&((::CppSharp::CppParser::AST::Variable*)NativePtr)->QualifiedType == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::Variable*)NativePtr)->QualifiedType); -} - -void CppSharp::Parser::AST::Variable::QualifiedType::set(CppSharp::Parser::AST::QualifiedType^ value) -{ - ((::CppSharp::CppParser::AST::Variable*)NativePtr)->QualifiedType = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; -} - -CppSharp::Parser::AST::BaseClassSpecifier::BaseClassSpecifier(::CppSharp::CppParser::AST::BaseClassSpecifier* native) -{ - NativePtr = native; -} - -CppSharp::Parser::AST::BaseClassSpecifier::BaseClassSpecifier(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::AST::BaseClassSpecifier*)native.ToPointer(); - NativePtr = __native; -} - -CppSharp::Parser::AST::BaseClassSpecifier::BaseClassSpecifier() -{ - NativePtr = new ::CppSharp::CppParser::AST::BaseClassSpecifier(); -} - -System::IntPtr CppSharp::Parser::AST::BaseClassSpecifier::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::AST::BaseClassSpecifier::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::AST::BaseClassSpecifier*)object.ToPointer(); -} - -CppSharp::Parser::AST::AccessSpecifier CppSharp::Parser::AST::BaseClassSpecifier::Access::get() -{ - return (CppSharp::Parser::AST::AccessSpecifier)((::CppSharp::CppParser::AST::BaseClassSpecifier*)NativePtr)->Access; -} - -void CppSharp::Parser::AST::BaseClassSpecifier::Access::set(CppSharp::Parser::AST::AccessSpecifier value) -{ - ((::CppSharp::CppParser::AST::BaseClassSpecifier*)NativePtr)->Access = (::CppSharp::CppParser::AST::AccessSpecifier)value; -} - -bool CppSharp::Parser::AST::BaseClassSpecifier::IsVirtual::get() -{ - return ((::CppSharp::CppParser::AST::BaseClassSpecifier*)NativePtr)->IsVirtual; -} - -void CppSharp::Parser::AST::BaseClassSpecifier::IsVirtual::set(bool value) -{ - ((::CppSharp::CppParser::AST::BaseClassSpecifier*)NativePtr)->IsVirtual = value; -} - -CppSharp::Parser::AST::Type^ CppSharp::Parser::AST::BaseClassSpecifier::Type::get() -{ - return (((::CppSharp::CppParser::AST::BaseClassSpecifier*)NativePtr)->Type == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)((::CppSharp::CppParser::AST::BaseClassSpecifier*)NativePtr)->Type); -} - -void CppSharp::Parser::AST::BaseClassSpecifier::Type::set(CppSharp::Parser::AST::Type^ value) -{ - ((::CppSharp::CppParser::AST::BaseClassSpecifier*)NativePtr)->Type = (::CppSharp::CppParser::AST::Type*)value->NativePtr; -} - -CppSharp::Parser::AST::Field::Field(::CppSharp::CppParser::AST::Field* native) - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) -{ -} - -CppSharp::Parser::AST::Field::Field(System::IntPtr native) - : CppSharp::Parser::AST::Declaration(native) -{ - auto __native = (::CppSharp::CppParser::AST::Field*)native.ToPointer(); -} - -CppSharp::Parser::AST::Field::Field() - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::Field(); -} - -CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::Field::QualifiedType::get() -{ - return (&((::CppSharp::CppParser::AST::Field*)NativePtr)->QualifiedType == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::Field*)NativePtr)->QualifiedType); -} - -void CppSharp::Parser::AST::Field::QualifiedType::set(CppSharp::Parser::AST::QualifiedType^ value) -{ - ((::CppSharp::CppParser::AST::Field*)NativePtr)->QualifiedType = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; -} - -unsigned int CppSharp::Parser::AST::Field::Offset::get() -{ - return ((::CppSharp::CppParser::AST::Field*)NativePtr)->Offset; -} - -void CppSharp::Parser::AST::Field::Offset::set(unsigned int value) -{ - ((::CppSharp::CppParser::AST::Field*)NativePtr)->Offset = value; -} - -CppSharp::Parser::AST::Class^ CppSharp::Parser::AST::Field::Class::get() -{ - return (((::CppSharp::CppParser::AST::Field*)NativePtr)->Class == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Class((::CppSharp::CppParser::AST::Class*)((::CppSharp::CppParser::AST::Field*)NativePtr)->Class); -} - -void CppSharp::Parser::AST::Field::Class::set(CppSharp::Parser::AST::Class^ value) -{ - ((::CppSharp::CppParser::AST::Field*)NativePtr)->Class = (::CppSharp::CppParser::AST::Class*)value->NativePtr; -} - -CppSharp::Parser::AST::AccessSpecifierDecl::AccessSpecifierDecl(::CppSharp::CppParser::AST::AccessSpecifierDecl* native) - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) -{ -} - -CppSharp::Parser::AST::AccessSpecifierDecl::AccessSpecifierDecl(System::IntPtr native) - : CppSharp::Parser::AST::Declaration(native) -{ - auto __native = (::CppSharp::CppParser::AST::AccessSpecifierDecl*)native.ToPointer(); -} - -CppSharp::Parser::AST::AccessSpecifierDecl::AccessSpecifierDecl() - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::AccessSpecifierDecl(); -} - -CppSharp::Parser::AST::Class::Class(::CppSharp::CppParser::AST::Class* native) - : CppSharp::Parser::AST::DeclarationContext((::CppSharp::CppParser::AST::DeclarationContext*)native) -{ -} - -CppSharp::Parser::AST::Class::Class(System::IntPtr native) - : CppSharp::Parser::AST::DeclarationContext(native) -{ - auto __native = (::CppSharp::CppParser::AST::Class*)native.ToPointer(); -} - -CppSharp::Parser::AST::Class::Class() - : CppSharp::Parser::AST::DeclarationContext((::CppSharp::CppParser::AST::DeclarationContext*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::Class(); -} - -CppSharp::Parser::AST::BaseClassSpecifier^ CppSharp::Parser::AST::Class::getBases(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::Class*)NativePtr)->getBases(i); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::BaseClassSpecifier((::CppSharp::CppParser::AST::BaseClassSpecifier*)__ret); -} - -void CppSharp::Parser::AST::Class::addBases(CppSharp::Parser::AST::BaseClassSpecifier^ s) -{ - auto arg0 = (::CppSharp::CppParser::AST::BaseClassSpecifier*)s->NativePtr; - ((::CppSharp::CppParser::AST::Class*)NativePtr)->addBases(arg0); -} - -CppSharp::Parser::AST::Field^ CppSharp::Parser::AST::Class::getFields(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::Class*)NativePtr)->getFields(i); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Field((::CppSharp::CppParser::AST::Field*)__ret); -} - -void CppSharp::Parser::AST::Class::addFields(CppSharp::Parser::AST::Field^ s) -{ - auto arg0 = (::CppSharp::CppParser::AST::Field*)s->NativePtr; - ((::CppSharp::CppParser::AST::Class*)NativePtr)->addFields(arg0); -} - -CppSharp::Parser::AST::Method^ CppSharp::Parser::AST::Class::getMethods(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::Class*)NativePtr)->getMethods(i); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Method((::CppSharp::CppParser::AST::Method*)__ret); -} - -void CppSharp::Parser::AST::Class::addMethods(CppSharp::Parser::AST::Method^ s) -{ - auto arg0 = (::CppSharp::CppParser::AST::Method*)s->NativePtr; - ((::CppSharp::CppParser::AST::Class*)NativePtr)->addMethods(arg0); -} - -CppSharp::Parser::AST::AccessSpecifierDecl^ CppSharp::Parser::AST::Class::getSpecifiers(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::Class*)NativePtr)->getSpecifiers(i); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::AccessSpecifierDecl((::CppSharp::CppParser::AST::AccessSpecifierDecl*)__ret); -} - -void CppSharp::Parser::AST::Class::addSpecifiers(CppSharp::Parser::AST::AccessSpecifierDecl^ s) -{ - auto arg0 = (::CppSharp::CppParser::AST::AccessSpecifierDecl*)s->NativePtr; - ((::CppSharp::CppParser::AST::Class*)NativePtr)->addSpecifiers(arg0); -} - -unsigned int CppSharp::Parser::AST::Class::BasesCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::Class*)NativePtr)->getBasesCount(); - return __ret; -} - -unsigned int CppSharp::Parser::AST::Class::FieldsCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::Class*)NativePtr)->getFieldsCount(); - return __ret; -} - -unsigned int CppSharp::Parser::AST::Class::MethodsCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::Class*)NativePtr)->getMethodsCount(); - return __ret; -} - -unsigned int CppSharp::Parser::AST::Class::SpecifiersCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::Class*)NativePtr)->getSpecifiersCount(); - return __ret; -} - -bool CppSharp::Parser::AST::Class::IsPOD::get() -{ - return ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsPOD; -} - -void CppSharp::Parser::AST::Class::IsPOD::set(bool value) -{ - ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsPOD = value; -} - -bool CppSharp::Parser::AST::Class::IsAbstract::get() -{ - return ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsAbstract; -} - -void CppSharp::Parser::AST::Class::IsAbstract::set(bool value) -{ - ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsAbstract = value; -} - -bool CppSharp::Parser::AST::Class::IsUnion::get() -{ - return ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsUnion; -} - -void CppSharp::Parser::AST::Class::IsUnion::set(bool value) -{ - ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsUnion = value; -} - -bool CppSharp::Parser::AST::Class::IsDynamic::get() -{ - return ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsDynamic; -} - -void CppSharp::Parser::AST::Class::IsDynamic::set(bool value) -{ - ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsDynamic = value; -} - -bool CppSharp::Parser::AST::Class::IsPolymorphic::get() -{ - return ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsPolymorphic; -} - -void CppSharp::Parser::AST::Class::IsPolymorphic::set(bool value) -{ - ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsPolymorphic = value; -} - -bool CppSharp::Parser::AST::Class::HasNonTrivialDefaultConstructor::get() -{ - return ((::CppSharp::CppParser::AST::Class*)NativePtr)->HasNonTrivialDefaultConstructor; -} - -void CppSharp::Parser::AST::Class::HasNonTrivialDefaultConstructor::set(bool value) -{ - ((::CppSharp::CppParser::AST::Class*)NativePtr)->HasNonTrivialDefaultConstructor = value; -} - -bool CppSharp::Parser::AST::Class::HasNonTrivialCopyConstructor::get() -{ - return ((::CppSharp::CppParser::AST::Class*)NativePtr)->HasNonTrivialCopyConstructor; -} - -void CppSharp::Parser::AST::Class::HasNonTrivialCopyConstructor::set(bool value) -{ - ((::CppSharp::CppParser::AST::Class*)NativePtr)->HasNonTrivialCopyConstructor = value; -} - -bool CppSharp::Parser::AST::Class::HasNonTrivialDestructor::get() -{ - return ((::CppSharp::CppParser::AST::Class*)NativePtr)->HasNonTrivialDestructor; -} - -void CppSharp::Parser::AST::Class::HasNonTrivialDestructor::set(bool value) -{ - ((::CppSharp::CppParser::AST::Class*)NativePtr)->HasNonTrivialDestructor = value; -} - -bool CppSharp::Parser::AST::Class::IsExternCContext::get() -{ - return ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsExternCContext; -} - -void CppSharp::Parser::AST::Class::IsExternCContext::set(bool value) -{ - ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsExternCContext = value; -} - -CppSharp::Parser::AST::ClassLayout^ CppSharp::Parser::AST::Class::Layout::get() -{ - return (((::CppSharp::CppParser::AST::Class*)NativePtr)->Layout == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ClassLayout((::CppSharp::CppParser::AST::ClassLayout*)((::CppSharp::CppParser::AST::Class*)NativePtr)->Layout); -} - -void CppSharp::Parser::AST::Class::Layout::set(CppSharp::Parser::AST::ClassLayout^ value) -{ - ((::CppSharp::CppParser::AST::Class*)NativePtr)->Layout = (::CppSharp::CppParser::AST::ClassLayout*)value->NativePtr; -} - -CppSharp::Parser::AST::Template::Template(::CppSharp::CppParser::AST::Template* native) - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) -{ -} - -CppSharp::Parser::AST::Template::Template(System::IntPtr native) - : CppSharp::Parser::AST::Declaration(native) -{ - auto __native = (::CppSharp::CppParser::AST::Template*)native.ToPointer(); -} - -CppSharp::Parser::AST::Template::Template(CppSharp::Parser::AST::DeclarationKind kind) - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) -{ - auto arg0 = (::CppSharp::CppParser::AST::DeclarationKind)kind; - NativePtr = new ::CppSharp::CppParser::AST::Template(arg0); -} - -CppSharp::Parser::AST::Template::Template() - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::Template(); -} - -CppSharp::Parser::AST::TemplateParameter^ CppSharp::Parser::AST::Template::getParameters(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::Template*)NativePtr)->getParameters(i); - auto ____ret = new ::CppSharp::CppParser::AST::TemplateParameter(__ret); - return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TemplateParameter((::CppSharp::CppParser::AST::TemplateParameter*)____ret); -} - -void CppSharp::Parser::AST::Template::addParameters(CppSharp::Parser::AST::TemplateParameter^ s) -{ - auto &arg0 = *(::CppSharp::CppParser::AST::TemplateParameter*)s->NativePtr; - ((::CppSharp::CppParser::AST::Template*)NativePtr)->addParameters(arg0); -} - -unsigned int CppSharp::Parser::AST::Template::ParametersCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::Template*)NativePtr)->getParametersCount(); - return __ret; -} - -CppSharp::Parser::AST::Declaration^ CppSharp::Parser::AST::Template::TemplatedDecl::get() -{ - return (((::CppSharp::CppParser::AST::Template*)NativePtr)->TemplatedDecl == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)((::CppSharp::CppParser::AST::Template*)NativePtr)->TemplatedDecl); -} - -void CppSharp::Parser::AST::Template::TemplatedDecl::set(CppSharp::Parser::AST::Declaration^ value) -{ - ((::CppSharp::CppParser::AST::Template*)NativePtr)->TemplatedDecl = (::CppSharp::CppParser::AST::Declaration*)value->NativePtr; -} - -CppSharp::Parser::AST::ClassTemplate::ClassTemplate(::CppSharp::CppParser::AST::ClassTemplate* native) - : CppSharp::Parser::AST::Template((::CppSharp::CppParser::AST::Template*)native) -{ -} - -CppSharp::Parser::AST::ClassTemplate::ClassTemplate(System::IntPtr native) - : CppSharp::Parser::AST::Template(native) -{ - auto __native = (::CppSharp::CppParser::AST::ClassTemplate*)native.ToPointer(); -} - -CppSharp::Parser::AST::ClassTemplate::ClassTemplate() - : CppSharp::Parser::AST::Template((::CppSharp::CppParser::AST::Template*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::ClassTemplate(); -} - -CppSharp::Parser::AST::ClassTemplateSpecialization^ CppSharp::Parser::AST::ClassTemplate::getSpecializations(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->getSpecializations(i); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ClassTemplateSpecialization((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)__ret); -} - -void CppSharp::Parser::AST::ClassTemplate::addSpecializations(CppSharp::Parser::AST::ClassTemplateSpecialization^ s) -{ - auto arg0 = (::CppSharp::CppParser::AST::ClassTemplateSpecialization*)s->NativePtr; - ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->addSpecializations(arg0); -} - -CppSharp::Parser::AST::ClassTemplateSpecialization^ CppSharp::Parser::AST::ClassTemplate::FindSpecialization(void* ptr) -{ - auto arg0 = (void*)ptr; - auto __ret = ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->FindSpecialization(arg0); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ClassTemplateSpecialization((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)__ret); -} - -CppSharp::Parser::AST::ClassTemplateSpecialization^ CppSharp::Parser::AST::ClassTemplate::FindSpecialization(CppSharp::Parser::AST::TemplateSpecializationType^ type) -{ - auto arg0 = *(::CppSharp::CppParser::AST::TemplateSpecializationType*)type->NativePtr; - auto __ret = ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->FindSpecialization(arg0); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ClassTemplateSpecialization((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)__ret); -} - -CppSharp::Parser::AST::ClassTemplatePartialSpecialization^ CppSharp::Parser::AST::ClassTemplate::FindPartialSpecialization(void* ptr) -{ - auto arg0 = (void*)ptr; - auto __ret = ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->FindPartialSpecialization(arg0); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ClassTemplatePartialSpecialization((::CppSharp::CppParser::AST::ClassTemplatePartialSpecialization*)__ret); -} - -CppSharp::Parser::AST::ClassTemplatePartialSpecialization^ CppSharp::Parser::AST::ClassTemplate::FindPartialSpecialization(CppSharp::Parser::AST::TemplateSpecializationType^ type) -{ - auto arg0 = *(::CppSharp::CppParser::AST::TemplateSpecializationType*)type->NativePtr; - auto __ret = ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->FindPartialSpecialization(arg0); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ClassTemplatePartialSpecialization((::CppSharp::CppParser::AST::ClassTemplatePartialSpecialization*)__ret); -} - -unsigned int CppSharp::Parser::AST::ClassTemplate::SpecializationsCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->getSpecializationsCount(); - return __ret; -} - -CppSharp::Parser::AST::ClassTemplateSpecialization::ClassTemplateSpecialization(::CppSharp::CppParser::AST::ClassTemplateSpecialization* native) - : CppSharp::Parser::AST::Class((::CppSharp::CppParser::AST::Class*)native) -{ -} - -CppSharp::Parser::AST::ClassTemplateSpecialization::ClassTemplateSpecialization(System::IntPtr native) - : CppSharp::Parser::AST::Class(native) -{ - auto __native = (::CppSharp::CppParser::AST::ClassTemplateSpecialization*)native.ToPointer(); -} - -CppSharp::Parser::AST::ClassTemplateSpecialization::ClassTemplateSpecialization() - : CppSharp::Parser::AST::Class((::CppSharp::CppParser::AST::Class*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::ClassTemplateSpecialization(); -} - -CppSharp::Parser::AST::TemplateArgument^ CppSharp::Parser::AST::ClassTemplateSpecialization::getArguments(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->getArguments(i); - auto ____ret = new ::CppSharp::CppParser::AST::TemplateArgument(__ret); - return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TemplateArgument((::CppSharp::CppParser::AST::TemplateArgument*)____ret); -} - -void CppSharp::Parser::AST::ClassTemplateSpecialization::addArguments(CppSharp::Parser::AST::TemplateArgument^ s) -{ - auto &arg0 = *(::CppSharp::CppParser::AST::TemplateArgument*)s->NativePtr; - ((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->addArguments(arg0); -} - -unsigned int CppSharp::Parser::AST::ClassTemplateSpecialization::ArgumentsCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->getArgumentsCount(); - return __ret; -} - -CppSharp::Parser::AST::ClassTemplate^ CppSharp::Parser::AST::ClassTemplateSpecialization::TemplatedDecl::get() -{ - return (((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->TemplatedDecl == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ClassTemplate((::CppSharp::CppParser::AST::ClassTemplate*)((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->TemplatedDecl); -} - -void CppSharp::Parser::AST::ClassTemplateSpecialization::TemplatedDecl::set(CppSharp::Parser::AST::ClassTemplate^ value) -{ - ((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->TemplatedDecl = (::CppSharp::CppParser::AST::ClassTemplate*)value->NativePtr; -} - -CppSharp::Parser::AST::TemplateSpecializationKind CppSharp::Parser::AST::ClassTemplateSpecialization::SpecializationKind::get() -{ - return (CppSharp::Parser::AST::TemplateSpecializationKind)((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->SpecializationKind; -} - -void CppSharp::Parser::AST::ClassTemplateSpecialization::SpecializationKind::set(CppSharp::Parser::AST::TemplateSpecializationKind value) -{ - ((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->SpecializationKind = (::CppSharp::CppParser::AST::TemplateSpecializationKind)value; -} - -CppSharp::Parser::AST::ClassTemplatePartialSpecialization::ClassTemplatePartialSpecialization(::CppSharp::CppParser::AST::ClassTemplatePartialSpecialization* native) - : CppSharp::Parser::AST::ClassTemplateSpecialization((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)native) -{ -} - -CppSharp::Parser::AST::ClassTemplatePartialSpecialization::ClassTemplatePartialSpecialization(System::IntPtr native) - : CppSharp::Parser::AST::ClassTemplateSpecialization(native) -{ - auto __native = (::CppSharp::CppParser::AST::ClassTemplatePartialSpecialization*)native.ToPointer(); -} - -CppSharp::Parser::AST::ClassTemplatePartialSpecialization::ClassTemplatePartialSpecialization() - : CppSharp::Parser::AST::ClassTemplateSpecialization((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::ClassTemplatePartialSpecialization(); -} - -CppSharp::Parser::AST::FunctionTemplate::FunctionTemplate(::CppSharp::CppParser::AST::FunctionTemplate* native) - : CppSharp::Parser::AST::Template((::CppSharp::CppParser::AST::Template*)native) -{ -} - -CppSharp::Parser::AST::FunctionTemplate::FunctionTemplate(System::IntPtr native) - : CppSharp::Parser::AST::Template(native) -{ - auto __native = (::CppSharp::CppParser::AST::FunctionTemplate*)native.ToPointer(); -} - -CppSharp::Parser::AST::FunctionTemplate::FunctionTemplate() - : CppSharp::Parser::AST::Template((::CppSharp::CppParser::AST::Template*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::FunctionTemplate(); -} - -CppSharp::Parser::AST::Namespace::Namespace(::CppSharp::CppParser::AST::Namespace* native) - : CppSharp::Parser::AST::DeclarationContext((::CppSharp::CppParser::AST::DeclarationContext*)native) -{ -} - -CppSharp::Parser::AST::Namespace::Namespace(System::IntPtr native) - : CppSharp::Parser::AST::DeclarationContext(native) -{ - auto __native = (::CppSharp::CppParser::AST::Namespace*)native.ToPointer(); -} - -CppSharp::Parser::AST::Namespace::Namespace() - : CppSharp::Parser::AST::DeclarationContext((::CppSharp::CppParser::AST::DeclarationContext*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::Namespace(); -} - -bool CppSharp::Parser::AST::Namespace::IsInline::get() -{ - return ((::CppSharp::CppParser::AST::Namespace*)NativePtr)->IsInline; -} - -void CppSharp::Parser::AST::Namespace::IsInline::set(bool value) -{ - ((::CppSharp::CppParser::AST::Namespace*)NativePtr)->IsInline = value; -} - -CppSharp::Parser::AST::PreprocessedEntity::PreprocessedEntity(::CppSharp::CppParser::AST::PreprocessedEntity* native) - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) -{ -} - -CppSharp::Parser::AST::PreprocessedEntity::PreprocessedEntity(System::IntPtr native) - : CppSharp::Parser::AST::Declaration(native) -{ - auto __native = (::CppSharp::CppParser::AST::PreprocessedEntity*)native.ToPointer(); -} - -CppSharp::Parser::AST::PreprocessedEntity::PreprocessedEntity() - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::PreprocessedEntity(); -} - -CppSharp::Parser::AST::MacroLocation CppSharp::Parser::AST::PreprocessedEntity::Location::get() -{ - return (CppSharp::Parser::AST::MacroLocation)((::CppSharp::CppParser::AST::PreprocessedEntity*)NativePtr)->Location; -} - -void CppSharp::Parser::AST::PreprocessedEntity::Location::set(CppSharp::Parser::AST::MacroLocation value) -{ - ((::CppSharp::CppParser::AST::PreprocessedEntity*)NativePtr)->Location = (::CppSharp::CppParser::AST::MacroLocation)value; -} - -CppSharp::Parser::AST::MacroDefinition::MacroDefinition(::CppSharp::CppParser::AST::MacroDefinition* native) - : CppSharp::Parser::AST::PreprocessedEntity((::CppSharp::CppParser::AST::PreprocessedEntity*)native) -{ -} - -CppSharp::Parser::AST::MacroDefinition::MacroDefinition(System::IntPtr native) - : CppSharp::Parser::AST::PreprocessedEntity(native) -{ - auto __native = (::CppSharp::CppParser::AST::MacroDefinition*)native.ToPointer(); -} - -CppSharp::Parser::AST::MacroDefinition::MacroDefinition() - : CppSharp::Parser::AST::PreprocessedEntity((::CppSharp::CppParser::AST::PreprocessedEntity*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::MacroDefinition(); -} - -System::String^ CppSharp::Parser::AST::MacroDefinition::Expression::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::MacroDefinition*)NativePtr)->getExpression(); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::AST::MacroDefinition::Expression::set(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::AST::MacroDefinition*)NativePtr)->setExpression(arg0); -} - -CppSharp::Parser::AST::MacroExpansion::MacroExpansion(::CppSharp::CppParser::AST::MacroExpansion* native) - : CppSharp::Parser::AST::PreprocessedEntity((::CppSharp::CppParser::AST::PreprocessedEntity*)native) -{ -} - -CppSharp::Parser::AST::MacroExpansion::MacroExpansion(System::IntPtr native) - : CppSharp::Parser::AST::PreprocessedEntity(native) -{ - auto __native = (::CppSharp::CppParser::AST::MacroExpansion*)native.ToPointer(); -} - -CppSharp::Parser::AST::MacroExpansion::MacroExpansion() - : CppSharp::Parser::AST::PreprocessedEntity((::CppSharp::CppParser::AST::PreprocessedEntity*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::MacroExpansion(); -} - -System::String^ CppSharp::Parser::AST::MacroExpansion::Text::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::MacroExpansion*)NativePtr)->getText(); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::AST::MacroExpansion::Text::set(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::AST::MacroExpansion*)NativePtr)->setText(arg0); -} - -CppSharp::Parser::AST::MacroDefinition^ CppSharp::Parser::AST::MacroExpansion::Definition::get() -{ - return (((::CppSharp::CppParser::AST::MacroExpansion*)NativePtr)->Definition == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::MacroDefinition((::CppSharp::CppParser::AST::MacroDefinition*)((::CppSharp::CppParser::AST::MacroExpansion*)NativePtr)->Definition); -} - -void CppSharp::Parser::AST::MacroExpansion::Definition::set(CppSharp::Parser::AST::MacroDefinition^ value) -{ - ((::CppSharp::CppParser::AST::MacroExpansion*)NativePtr)->Definition = (::CppSharp::CppParser::AST::MacroDefinition*)value->NativePtr; -} - -CppSharp::Parser::AST::TranslationUnit::TranslationUnit(::CppSharp::CppParser::AST::TranslationUnit* native) - : CppSharp::Parser::AST::Namespace((::CppSharp::CppParser::AST::Namespace*)native) -{ -} - -CppSharp::Parser::AST::TranslationUnit::TranslationUnit(System::IntPtr native) - : CppSharp::Parser::AST::Namespace(native) -{ - auto __native = (::CppSharp::CppParser::AST::TranslationUnit*)native.ToPointer(); -} - -CppSharp::Parser::AST::TranslationUnit::TranslationUnit() - : CppSharp::Parser::AST::Namespace((::CppSharp::CppParser::AST::Namespace*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::TranslationUnit(); -} - -CppSharp::Parser::AST::MacroDefinition^ CppSharp::Parser::AST::TranslationUnit::getMacros(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::TranslationUnit*)NativePtr)->getMacros(i); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::MacroDefinition((::CppSharp::CppParser::AST::MacroDefinition*)__ret); -} - -void CppSharp::Parser::AST::TranslationUnit::addMacros(CppSharp::Parser::AST::MacroDefinition^ s) -{ - auto arg0 = (::CppSharp::CppParser::AST::MacroDefinition*)s->NativePtr; - ((::CppSharp::CppParser::AST::TranslationUnit*)NativePtr)->addMacros(arg0); -} - -System::String^ CppSharp::Parser::AST::TranslationUnit::FileName::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::TranslationUnit*)NativePtr)->getFileName(); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::AST::TranslationUnit::FileName::set(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::AST::TranslationUnit*)NativePtr)->setFileName(arg0); -} - -unsigned int CppSharp::Parser::AST::TranslationUnit::MacrosCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::TranslationUnit*)NativePtr)->getMacrosCount(); - return __ret; -} - -bool CppSharp::Parser::AST::TranslationUnit::IsSystemHeader::get() -{ - return ((::CppSharp::CppParser::AST::TranslationUnit*)NativePtr)->IsSystemHeader; -} - -void CppSharp::Parser::AST::TranslationUnit::IsSystemHeader::set(bool value) -{ - ((::CppSharp::CppParser::AST::TranslationUnit*)NativePtr)->IsSystemHeader = value; -} - -CppSharp::Parser::AST::NativeLibrary::NativeLibrary(::CppSharp::CppParser::AST::NativeLibrary* native) -{ - NativePtr = native; -} - -CppSharp::Parser::AST::NativeLibrary::NativeLibrary(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::AST::NativeLibrary*)native.ToPointer(); - NativePtr = __native; -} - -System::String^ CppSharp::Parser::AST::NativeLibrary::getSymbols(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::NativeLibrary*)NativePtr)->getSymbols(i); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::AST::NativeLibrary::addSymbols(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::AST::NativeLibrary*)NativePtr)->addSymbols(arg0); -} - -CppSharp::Parser::AST::NativeLibrary::NativeLibrary() -{ - NativePtr = new ::CppSharp::CppParser::AST::NativeLibrary(); -} - -System::IntPtr CppSharp::Parser::AST::NativeLibrary::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::AST::NativeLibrary::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::AST::NativeLibrary*)object.ToPointer(); -} - -System::String^ CppSharp::Parser::AST::NativeLibrary::FileName::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::NativeLibrary*)NativePtr)->getFileName(); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::AST::NativeLibrary::FileName::set(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::AST::NativeLibrary*)NativePtr)->setFileName(arg0); -} - -unsigned int CppSharp::Parser::AST::NativeLibrary::SymbolsCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::NativeLibrary*)NativePtr)->getSymbolsCount(); - return __ret; -} - -CppSharp::Parser::AST::ASTContext::ASTContext(::CppSharp::CppParser::AST::ASTContext* native) -{ - NativePtr = native; -} - -CppSharp::Parser::AST::ASTContext::ASTContext(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::AST::ASTContext*)native.ToPointer(); - NativePtr = __native; -} - -CppSharp::Parser::AST::ASTContext::ASTContext() -{ - NativePtr = new ::CppSharp::CppParser::AST::ASTContext(); -} - -CppSharp::Parser::AST::TranslationUnit^ CppSharp::Parser::AST::ASTContext::getTranslationUnits(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::AST::ASTContext*)NativePtr)->getTranslationUnits(i); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TranslationUnit((::CppSharp::CppParser::AST::TranslationUnit*)__ret); -} - -void CppSharp::Parser::AST::ASTContext::addTranslationUnits(CppSharp::Parser::AST::TranslationUnit^ s) -{ - auto arg0 = (::CppSharp::CppParser::AST::TranslationUnit*)s->NativePtr; - ((::CppSharp::CppParser::AST::ASTContext*)NativePtr)->addTranslationUnits(arg0); -} - -System::IntPtr CppSharp::Parser::AST::ASTContext::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::AST::ASTContext::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::AST::ASTContext*)object.ToPointer(); -} - -unsigned int CppSharp::Parser::AST::ASTContext::TranslationUnitsCount::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::ASTContext*)NativePtr)->getTranslationUnitsCount(); - return __ret; -} - -CppSharp::Parser::AST::Comment::Comment(::CppSharp::CppParser::AST::Comment* native) -{ - NativePtr = native; -} - -CppSharp::Parser::AST::Comment::Comment(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::AST::Comment*)native.ToPointer(); - NativePtr = __native; -} - -CppSharp::Parser::AST::Comment::Comment(CppSharp::Parser::AST::CommentKind kind) -{ - auto arg0 = (::CppSharp::CppParser::AST::CommentKind)kind; - NativePtr = new ::CppSharp::CppParser::AST::Comment(arg0); -} - -System::IntPtr CppSharp::Parser::AST::Comment::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::AST::Comment::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::AST::Comment*)object.ToPointer(); -} - -CppSharp::Parser::AST::CommentKind CppSharp::Parser::AST::Comment::Kind::get() -{ - return (CppSharp::Parser::AST::CommentKind)((::CppSharp::CppParser::AST::Comment*)NativePtr)->Kind; -} - -void CppSharp::Parser::AST::Comment::Kind::set(CppSharp::Parser::AST::CommentKind value) -{ - ((::CppSharp::CppParser::AST::Comment*)NativePtr)->Kind = (::CppSharp::CppParser::AST::CommentKind)value; -} - -CppSharp::Parser::AST::FullComment::FullComment(::CppSharp::CppParser::AST::FullComment* native) - : CppSharp::Parser::AST::Comment((::CppSharp::CppParser::AST::Comment*)native) -{ -} - -CppSharp::Parser::AST::FullComment::FullComment(System::IntPtr native) - : CppSharp::Parser::AST::Comment(native) -{ - auto __native = (::CppSharp::CppParser::AST::FullComment*)native.ToPointer(); -} - -CppSharp::Parser::AST::FullComment::FullComment() - : CppSharp::Parser::AST::Comment((::CppSharp::CppParser::AST::Comment*)nullptr) -{ - NativePtr = new ::CppSharp::CppParser::AST::FullComment(); -} - -CppSharp::Parser::AST::RawComment::RawComment(::CppSharp::CppParser::AST::RawComment* native) -{ - NativePtr = native; -} - -CppSharp::Parser::AST::RawComment::RawComment(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::AST::RawComment*)native.ToPointer(); - NativePtr = __native; -} - -CppSharp::Parser::AST::RawComment::RawComment() -{ - NativePtr = new ::CppSharp::CppParser::AST::RawComment(); -} - -System::IntPtr CppSharp::Parser::AST::RawComment::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::AST::RawComment::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::AST::RawComment*)object.ToPointer(); -} - -System::String^ CppSharp::Parser::AST::RawComment::Text::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::RawComment*)NativePtr)->getText(); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::AST::RawComment::Text::set(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::AST::RawComment*)NativePtr)->setText(arg0); -} - -System::String^ CppSharp::Parser::AST::RawComment::BriefText::get() -{ - auto __ret = ((::CppSharp::CppParser::AST::RawComment*)NativePtr)->getBriefText(); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::AST::RawComment::BriefText::set(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::AST::RawComment*)NativePtr)->setBriefText(arg0); -} - -CppSharp::Parser::AST::RawCommentKind CppSharp::Parser::AST::RawComment::RawCommentKind::get() -{ - return (CppSharp::Parser::AST::RawCommentKind)((::CppSharp::CppParser::AST::RawComment*)NativePtr)->RawCommentKind; -} - -void CppSharp::Parser::AST::RawComment::RawCommentKind::set(CppSharp::Parser::AST::RawCommentKind value) -{ - ((::CppSharp::CppParser::AST::RawComment*)NativePtr)->RawCommentKind = (::CppSharp::CppParser::AST::RawCommentKind)value; -} - -CppSharp::Parser::AST::FullComment^ CppSharp::Parser::AST::RawComment::FullComment::get() -{ - return (((::CppSharp::CppParser::AST::RawComment*)NativePtr)->FullComment == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::FullComment((::CppSharp::CppParser::AST::FullComment*)((::CppSharp::CppParser::AST::RawComment*)NativePtr)->FullComment); -} - -void CppSharp::Parser::AST::RawComment::FullComment::set(CppSharp::Parser::AST::FullComment^ value) -{ - ((::CppSharp::CppParser::AST::RawComment*)NativePtr)->FullComment = (::CppSharp::CppParser::AST::FullComment*)value->NativePtr; -} - +#include "AST.h" + +using namespace System; +using namespace System::Runtime::InteropServices; + +CppSharp::Parser::AST::Type::Type(::CppSharp::CppParser::AST::Type* native) +{ + NativePtr = native; +} + +CppSharp::Parser::AST::Type::Type(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::AST::Type*)native.ToPointer(); + NativePtr = __native; +} + +CppSharp::Parser::AST::Type::Type(CppSharp::Parser::AST::TypeKind kind) +{ + auto arg0 = (::CppSharp::CppParser::AST::TypeKind)kind; + NativePtr = new ::CppSharp::CppParser::AST::Type(arg0); +} + +System::IntPtr CppSharp::Parser::AST::Type::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::AST::Type::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::AST::Type*)object.ToPointer(); +} + +CppSharp::Parser::AST::TypeKind CppSharp::Parser::AST::Type::Kind::get() +{ + return (CppSharp::Parser::AST::TypeKind)((::CppSharp::CppParser::AST::Type*)NativePtr)->Kind; +} + +void CppSharp::Parser::AST::Type::Kind::set(CppSharp::Parser::AST::TypeKind value) +{ + ((::CppSharp::CppParser::AST::Type*)NativePtr)->Kind = (::CppSharp::CppParser::AST::TypeKind)value; +} + +bool CppSharp::Parser::AST::Type::IsDependent::get() +{ + return ((::CppSharp::CppParser::AST::Type*)NativePtr)->IsDependent; +} + +void CppSharp::Parser::AST::Type::IsDependent::set(bool value) +{ + ((::CppSharp::CppParser::AST::Type*)NativePtr)->IsDependent = value; +} + +CppSharp::Parser::AST::TypeQualifiers::TypeQualifiers(::CppSharp::CppParser::AST::TypeQualifiers* native) +{ + NativePtr = native; +} + +CppSharp::Parser::AST::TypeQualifiers::TypeQualifiers(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::AST::TypeQualifiers*)native.ToPointer(); + NativePtr = __native; +} + +CppSharp::Parser::AST::TypeQualifiers::TypeQualifiers() +{ + NativePtr = new ::CppSharp::CppParser::AST::TypeQualifiers(); +} + +System::IntPtr CppSharp::Parser::AST::TypeQualifiers::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::AST::TypeQualifiers::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::AST::TypeQualifiers*)object.ToPointer(); +} + +bool CppSharp::Parser::AST::TypeQualifiers::IsConst::get() +{ + return ((::CppSharp::CppParser::AST::TypeQualifiers*)NativePtr)->IsConst; +} + +void CppSharp::Parser::AST::TypeQualifiers::IsConst::set(bool value) +{ + ((::CppSharp::CppParser::AST::TypeQualifiers*)NativePtr)->IsConst = value; +} + +bool CppSharp::Parser::AST::TypeQualifiers::IsVolatile::get() +{ + return ((::CppSharp::CppParser::AST::TypeQualifiers*)NativePtr)->IsVolatile; +} + +void CppSharp::Parser::AST::TypeQualifiers::IsVolatile::set(bool value) +{ + ((::CppSharp::CppParser::AST::TypeQualifiers*)NativePtr)->IsVolatile = value; +} + +bool CppSharp::Parser::AST::TypeQualifiers::IsRestrict::get() +{ + return ((::CppSharp::CppParser::AST::TypeQualifiers*)NativePtr)->IsRestrict; +} + +void CppSharp::Parser::AST::TypeQualifiers::IsRestrict::set(bool value) +{ + ((::CppSharp::CppParser::AST::TypeQualifiers*)NativePtr)->IsRestrict = value; +} + +CppSharp::Parser::AST::QualifiedType::QualifiedType(::CppSharp::CppParser::AST::QualifiedType* native) +{ + NativePtr = native; +} + +CppSharp::Parser::AST::QualifiedType::QualifiedType(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::AST::QualifiedType*)native.ToPointer(); + NativePtr = __native; +} + +CppSharp::Parser::AST::QualifiedType::QualifiedType() +{ + NativePtr = new ::CppSharp::CppParser::AST::QualifiedType(); +} + +System::IntPtr CppSharp::Parser::AST::QualifiedType::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::AST::QualifiedType::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::AST::QualifiedType*)object.ToPointer(); +} + +CppSharp::Parser::AST::Type^ CppSharp::Parser::AST::QualifiedType::Type::get() +{ + return (((::CppSharp::CppParser::AST::QualifiedType*)NativePtr)->Type == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)((::CppSharp::CppParser::AST::QualifiedType*)NativePtr)->Type); +} + +void CppSharp::Parser::AST::QualifiedType::Type::set(CppSharp::Parser::AST::Type^ value) +{ + ((::CppSharp::CppParser::AST::QualifiedType*)NativePtr)->Type = (::CppSharp::CppParser::AST::Type*)value->NativePtr; +} + +CppSharp::Parser::AST::TypeQualifiers^ CppSharp::Parser::AST::QualifiedType::Qualifiers::get() +{ + return (&((::CppSharp::CppParser::AST::QualifiedType*)NativePtr)->Qualifiers == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TypeQualifiers((::CppSharp::CppParser::AST::TypeQualifiers*)&((::CppSharp::CppParser::AST::QualifiedType*)NativePtr)->Qualifiers); +} + +void CppSharp::Parser::AST::QualifiedType::Qualifiers::set(CppSharp::Parser::AST::TypeQualifiers^ value) +{ + ((::CppSharp::CppParser::AST::QualifiedType*)NativePtr)->Qualifiers = *(::CppSharp::CppParser::AST::TypeQualifiers*)value->NativePtr; +} + +CppSharp::Parser::AST::TagType::TagType(::CppSharp::CppParser::AST::TagType* native) + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) +{ +} + +CppSharp::Parser::AST::TagType::TagType(System::IntPtr native) + : CppSharp::Parser::AST::Type(native) +{ + auto __native = (::CppSharp::CppParser::AST::TagType*)native.ToPointer(); +} + +CppSharp::Parser::AST::TagType::TagType() + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::TagType(); +} + +CppSharp::Parser::AST::Declaration^ CppSharp::Parser::AST::TagType::Declaration::get() +{ + return (((::CppSharp::CppParser::AST::TagType*)NativePtr)->Declaration == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)((::CppSharp::CppParser::AST::TagType*)NativePtr)->Declaration); +} + +void CppSharp::Parser::AST::TagType::Declaration::set(CppSharp::Parser::AST::Declaration^ value) +{ + ((::CppSharp::CppParser::AST::TagType*)NativePtr)->Declaration = (::CppSharp::CppParser::AST::Declaration*)value->NativePtr; +} + +CppSharp::Parser::AST::ArrayType::ArrayType(::CppSharp::CppParser::AST::ArrayType* native) + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) +{ +} + +CppSharp::Parser::AST::ArrayType::ArrayType(System::IntPtr native) + : CppSharp::Parser::AST::Type(native) +{ + auto __native = (::CppSharp::CppParser::AST::ArrayType*)native.ToPointer(); +} + +CppSharp::Parser::AST::ArrayType::ArrayType() + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::ArrayType(); +} + +CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::ArrayType::QualifiedType::get() +{ + return (&((::CppSharp::CppParser::AST::ArrayType*)NativePtr)->QualifiedType == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::ArrayType*)NativePtr)->QualifiedType); +} + +void CppSharp::Parser::AST::ArrayType::QualifiedType::set(CppSharp::Parser::AST::QualifiedType^ value) +{ + ((::CppSharp::CppParser::AST::ArrayType*)NativePtr)->QualifiedType = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; +} + +CppSharp::Parser::AST::ArrayType::ArraySize CppSharp::Parser::AST::ArrayType::SizeType::get() +{ + return (CppSharp::Parser::AST::ArrayType::ArraySize)((::CppSharp::CppParser::AST::ArrayType*)NativePtr)->SizeType; +} + +void CppSharp::Parser::AST::ArrayType::SizeType::set(CppSharp::Parser::AST::ArrayType::ArraySize value) +{ + ((::CppSharp::CppParser::AST::ArrayType*)NativePtr)->SizeType = (::CppSharp::CppParser::AST::ArrayType::ArraySize)value; +} + +int CppSharp::Parser::AST::ArrayType::Size::get() +{ + return ((::CppSharp::CppParser::AST::ArrayType*)NativePtr)->Size; +} + +void CppSharp::Parser::AST::ArrayType::Size::set(int value) +{ + ((::CppSharp::CppParser::AST::ArrayType*)NativePtr)->Size = value; +} + +CppSharp::Parser::AST::FunctionType::FunctionType(::CppSharp::CppParser::AST::FunctionType* native) + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) +{ +} + +CppSharp::Parser::AST::FunctionType::FunctionType(System::IntPtr native) + : CppSharp::Parser::AST::Type(native) +{ + auto __native = (::CppSharp::CppParser::AST::FunctionType*)native.ToPointer(); +} + +CppSharp::Parser::AST::FunctionType::FunctionType() + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::FunctionType(); +} + +CppSharp::Parser::AST::Parameter^ CppSharp::Parser::AST::FunctionType::getParameters(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::FunctionType*)NativePtr)->getParameters(i); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Parameter((::CppSharp::CppParser::AST::Parameter*)__ret); +} + +void CppSharp::Parser::AST::FunctionType::addParameters(CppSharp::Parser::AST::Parameter^ s) +{ + auto arg0 = (::CppSharp::CppParser::AST::Parameter*)s->NativePtr; + ((::CppSharp::CppParser::AST::FunctionType*)NativePtr)->addParameters(arg0); +} + +unsigned int CppSharp::Parser::AST::FunctionType::ParametersCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::FunctionType*)NativePtr)->getParametersCount(); + return __ret; +} + +CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::FunctionType::ReturnType::get() +{ + return (&((::CppSharp::CppParser::AST::FunctionType*)NativePtr)->ReturnType == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::FunctionType*)NativePtr)->ReturnType); +} + +void CppSharp::Parser::AST::FunctionType::ReturnType::set(CppSharp::Parser::AST::QualifiedType^ value) +{ + ((::CppSharp::CppParser::AST::FunctionType*)NativePtr)->ReturnType = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; +} + +CppSharp::Parser::AST::CallingConvention CppSharp::Parser::AST::FunctionType::CallingConvention::get() +{ + return (CppSharp::Parser::AST::CallingConvention)((::CppSharp::CppParser::AST::FunctionType*)NativePtr)->CallingConvention; +} + +void CppSharp::Parser::AST::FunctionType::CallingConvention::set(CppSharp::Parser::AST::CallingConvention value) +{ + ((::CppSharp::CppParser::AST::FunctionType*)NativePtr)->CallingConvention = (::CppSharp::CppParser::AST::CallingConvention)value; +} + +CppSharp::Parser::AST::PointerType::PointerType(::CppSharp::CppParser::AST::PointerType* native) + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) +{ +} + +CppSharp::Parser::AST::PointerType::PointerType(System::IntPtr native) + : CppSharp::Parser::AST::Type(native) +{ + auto __native = (::CppSharp::CppParser::AST::PointerType*)native.ToPointer(); +} + +CppSharp::Parser::AST::PointerType::PointerType() + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::PointerType(); +} + +CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::PointerType::QualifiedPointee::get() +{ + return (&((::CppSharp::CppParser::AST::PointerType*)NativePtr)->QualifiedPointee == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::PointerType*)NativePtr)->QualifiedPointee); +} + +void CppSharp::Parser::AST::PointerType::QualifiedPointee::set(CppSharp::Parser::AST::QualifiedType^ value) +{ + ((::CppSharp::CppParser::AST::PointerType*)NativePtr)->QualifiedPointee = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; +} + +CppSharp::Parser::AST::PointerType::TypeModifier CppSharp::Parser::AST::PointerType::Modifier::get() +{ + return (CppSharp::Parser::AST::PointerType::TypeModifier)((::CppSharp::CppParser::AST::PointerType*)NativePtr)->Modifier; +} + +void CppSharp::Parser::AST::PointerType::Modifier::set(CppSharp::Parser::AST::PointerType::TypeModifier value) +{ + ((::CppSharp::CppParser::AST::PointerType*)NativePtr)->Modifier = (::CppSharp::CppParser::AST::PointerType::TypeModifier)value; +} + +CppSharp::Parser::AST::MemberPointerType::MemberPointerType(::CppSharp::CppParser::AST::MemberPointerType* native) + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) +{ +} + +CppSharp::Parser::AST::MemberPointerType::MemberPointerType(System::IntPtr native) + : CppSharp::Parser::AST::Type(native) +{ + auto __native = (::CppSharp::CppParser::AST::MemberPointerType*)native.ToPointer(); +} + +CppSharp::Parser::AST::MemberPointerType::MemberPointerType() + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::MemberPointerType(); +} + +CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::MemberPointerType::Pointee::get() +{ + return (&((::CppSharp::CppParser::AST::MemberPointerType*)NativePtr)->Pointee == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::MemberPointerType*)NativePtr)->Pointee); +} + +void CppSharp::Parser::AST::MemberPointerType::Pointee::set(CppSharp::Parser::AST::QualifiedType^ value) +{ + ((::CppSharp::CppParser::AST::MemberPointerType*)NativePtr)->Pointee = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; +} + +CppSharp::Parser::AST::TypedefType::TypedefType(::CppSharp::CppParser::AST::TypedefType* native) + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) +{ +} + +CppSharp::Parser::AST::TypedefType::TypedefType(System::IntPtr native) + : CppSharp::Parser::AST::Type(native) +{ + auto __native = (::CppSharp::CppParser::AST::TypedefType*)native.ToPointer(); +} + +CppSharp::Parser::AST::TypedefType::TypedefType() + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::TypedefType(); +} + +CppSharp::Parser::AST::TypedefDecl^ CppSharp::Parser::AST::TypedefType::Declaration::get() +{ + return (((::CppSharp::CppParser::AST::TypedefType*)NativePtr)->Declaration == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TypedefDecl((::CppSharp::CppParser::AST::TypedefDecl*)((::CppSharp::CppParser::AST::TypedefType*)NativePtr)->Declaration); +} + +void CppSharp::Parser::AST::TypedefType::Declaration::set(CppSharp::Parser::AST::TypedefDecl^ value) +{ + ((::CppSharp::CppParser::AST::TypedefType*)NativePtr)->Declaration = (::CppSharp::CppParser::AST::TypedefDecl*)value->NativePtr; +} + +CppSharp::Parser::AST::AttributedType::AttributedType(::CppSharp::CppParser::AST::AttributedType* native) + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) +{ +} + +CppSharp::Parser::AST::AttributedType::AttributedType(System::IntPtr native) + : CppSharp::Parser::AST::Type(native) +{ + auto __native = (::CppSharp::CppParser::AST::AttributedType*)native.ToPointer(); +} + +CppSharp::Parser::AST::AttributedType::AttributedType() + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::AttributedType(); +} + +CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::AttributedType::Modified::get() +{ + return (&((::CppSharp::CppParser::AST::AttributedType*)NativePtr)->Modified == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::AttributedType*)NativePtr)->Modified); +} + +void CppSharp::Parser::AST::AttributedType::Modified::set(CppSharp::Parser::AST::QualifiedType^ value) +{ + ((::CppSharp::CppParser::AST::AttributedType*)NativePtr)->Modified = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; +} + +CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::AttributedType::Equivalent::get() +{ + return (&((::CppSharp::CppParser::AST::AttributedType*)NativePtr)->Equivalent == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::AttributedType*)NativePtr)->Equivalent); +} + +void CppSharp::Parser::AST::AttributedType::Equivalent::set(CppSharp::Parser::AST::QualifiedType^ value) +{ + ((::CppSharp::CppParser::AST::AttributedType*)NativePtr)->Equivalent = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; +} + +CppSharp::Parser::AST::DecayedType::DecayedType(::CppSharp::CppParser::AST::DecayedType* native) + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) +{ +} + +CppSharp::Parser::AST::DecayedType::DecayedType(System::IntPtr native) + : CppSharp::Parser::AST::Type(native) +{ + auto __native = (::CppSharp::CppParser::AST::DecayedType*)native.ToPointer(); +} + +CppSharp::Parser::AST::DecayedType::DecayedType() + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::DecayedType(); +} + +CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::DecayedType::Decayed::get() +{ + return (&((::CppSharp::CppParser::AST::DecayedType*)NativePtr)->Decayed == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::DecayedType*)NativePtr)->Decayed); +} + +void CppSharp::Parser::AST::DecayedType::Decayed::set(CppSharp::Parser::AST::QualifiedType^ value) +{ + ((::CppSharp::CppParser::AST::DecayedType*)NativePtr)->Decayed = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; +} + +CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::DecayedType::Original::get() +{ + return (&((::CppSharp::CppParser::AST::DecayedType*)NativePtr)->Original == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::DecayedType*)NativePtr)->Original); +} + +void CppSharp::Parser::AST::DecayedType::Original::set(CppSharp::Parser::AST::QualifiedType^ value) +{ + ((::CppSharp::CppParser::AST::DecayedType*)NativePtr)->Original = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; +} + +CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::DecayedType::Pointee::get() +{ + return (&((::CppSharp::CppParser::AST::DecayedType*)NativePtr)->Pointee == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::DecayedType*)NativePtr)->Pointee); +} + +void CppSharp::Parser::AST::DecayedType::Pointee::set(CppSharp::Parser::AST::QualifiedType^ value) +{ + ((::CppSharp::CppParser::AST::DecayedType*)NativePtr)->Pointee = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; +} + +CppSharp::Parser::AST::TemplateArgument::TemplateArgument(::CppSharp::CppParser::AST::TemplateArgument* native) +{ + NativePtr = native; +} + +CppSharp::Parser::AST::TemplateArgument::TemplateArgument(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::AST::TemplateArgument*)native.ToPointer(); + NativePtr = __native; +} + +CppSharp::Parser::AST::TemplateArgument::TemplateArgument() +{ + NativePtr = new ::CppSharp::CppParser::AST::TemplateArgument(); +} + +System::IntPtr CppSharp::Parser::AST::TemplateArgument::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::AST::TemplateArgument::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::AST::TemplateArgument*)object.ToPointer(); +} + +CppSharp::Parser::AST::TemplateArgument::ArgumentKind CppSharp::Parser::AST::TemplateArgument::Kind::get() +{ + return (CppSharp::Parser::AST::TemplateArgument::ArgumentKind)((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Kind; +} + +void CppSharp::Parser::AST::TemplateArgument::Kind::set(CppSharp::Parser::AST::TemplateArgument::ArgumentKind value) +{ + ((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Kind = (::CppSharp::CppParser::AST::TemplateArgument::ArgumentKind)value; +} + +CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::TemplateArgument::Type::get() +{ + return (&((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Type == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Type); +} + +void CppSharp::Parser::AST::TemplateArgument::Type::set(CppSharp::Parser::AST::QualifiedType^ value) +{ + ((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Type = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; +} + +CppSharp::Parser::AST::Declaration^ CppSharp::Parser::AST::TemplateArgument::Declaration::get() +{ + return (((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Declaration == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Declaration); +} + +void CppSharp::Parser::AST::TemplateArgument::Declaration::set(CppSharp::Parser::AST::Declaration^ value) +{ + ((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Declaration = (::CppSharp::CppParser::AST::Declaration*)value->NativePtr; +} + +int CppSharp::Parser::AST::TemplateArgument::Integral::get() +{ + return ((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Integral; +} + +void CppSharp::Parser::AST::TemplateArgument::Integral::set(int value) +{ + ((::CppSharp::CppParser::AST::TemplateArgument*)NativePtr)->Integral = value; +} + +CppSharp::Parser::AST::TemplateSpecializationType::TemplateSpecializationType(::CppSharp::CppParser::AST::TemplateSpecializationType* native) + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) +{ +} + +CppSharp::Parser::AST::TemplateSpecializationType::TemplateSpecializationType(System::IntPtr native) + : CppSharp::Parser::AST::Type(native) +{ + auto __native = (::CppSharp::CppParser::AST::TemplateSpecializationType*)native.ToPointer(); +} + +CppSharp::Parser::AST::TemplateSpecializationType::TemplateSpecializationType() + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::TemplateSpecializationType(); +} + +CppSharp::Parser::AST::TemplateArgument^ CppSharp::Parser::AST::TemplateSpecializationType::getArguments(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::TemplateSpecializationType*)NativePtr)->getArguments(i); + auto ____ret = new ::CppSharp::CppParser::AST::TemplateArgument(__ret); + return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TemplateArgument((::CppSharp::CppParser::AST::TemplateArgument*)____ret); +} + +void CppSharp::Parser::AST::TemplateSpecializationType::addArguments(CppSharp::Parser::AST::TemplateArgument^ s) +{ + auto &arg0 = *(::CppSharp::CppParser::AST::TemplateArgument*)s->NativePtr; + ((::CppSharp::CppParser::AST::TemplateSpecializationType*)NativePtr)->addArguments(arg0); +} + +unsigned int CppSharp::Parser::AST::TemplateSpecializationType::ArgumentsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::TemplateSpecializationType*)NativePtr)->getArgumentsCount(); + return __ret; +} + +CppSharp::Parser::AST::Template^ CppSharp::Parser::AST::TemplateSpecializationType::Template::get() +{ + return (((::CppSharp::CppParser::AST::TemplateSpecializationType*)NativePtr)->Template == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Template((::CppSharp::CppParser::AST::Template*)((::CppSharp::CppParser::AST::TemplateSpecializationType*)NativePtr)->Template); +} + +void CppSharp::Parser::AST::TemplateSpecializationType::Template::set(CppSharp::Parser::AST::Template^ value) +{ + ((::CppSharp::CppParser::AST::TemplateSpecializationType*)NativePtr)->Template = (::CppSharp::CppParser::AST::Template*)value->NativePtr; +} + +CppSharp::Parser::AST::Type^ CppSharp::Parser::AST::TemplateSpecializationType::Desugared::get() +{ + return (((::CppSharp::CppParser::AST::TemplateSpecializationType*)NativePtr)->Desugared == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)((::CppSharp::CppParser::AST::TemplateSpecializationType*)NativePtr)->Desugared); +} + +void CppSharp::Parser::AST::TemplateSpecializationType::Desugared::set(CppSharp::Parser::AST::Type^ value) +{ + ((::CppSharp::CppParser::AST::TemplateSpecializationType*)NativePtr)->Desugared = (::CppSharp::CppParser::AST::Type*)value->NativePtr; +} + +CppSharp::Parser::AST::TemplateParameter::TemplateParameter(::CppSharp::CppParser::AST::TemplateParameter* native) +{ + NativePtr = native; +} + +CppSharp::Parser::AST::TemplateParameter::TemplateParameter(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::AST::TemplateParameter*)native.ToPointer(); + NativePtr = __native; +} + +CppSharp::Parser::AST::TemplateParameter::TemplateParameter() +{ + NativePtr = new ::CppSharp::CppParser::AST::TemplateParameter(); +} + +bool CppSharp::Parser::AST::TemplateParameter::operator==(CppSharp::Parser::AST::TemplateParameter^ __op, CppSharp::Parser::AST::TemplateParameter^ param) +{ + auto &arg0 = *(::CppSharp::CppParser::AST::TemplateParameter*)__op->NativePtr; + auto &arg1 = *(::CppSharp::CppParser::AST::TemplateParameter*)param->NativePtr; + auto __ret = arg0 == arg1; + return __ret; +} + +System::IntPtr CppSharp::Parser::AST::TemplateParameter::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::AST::TemplateParameter::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::AST::TemplateParameter*)object.ToPointer(); +} + +System::String^ CppSharp::Parser::AST::TemplateParameter::Name::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::TemplateParameter*)NativePtr)->getName(); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::AST::TemplateParameter::Name::set(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::AST::TemplateParameter*)NativePtr)->setName(arg0); +} + +CppSharp::Parser::AST::TemplateParameterType::TemplateParameterType(::CppSharp::CppParser::AST::TemplateParameterType* native) + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) +{ +} + +CppSharp::Parser::AST::TemplateParameterType::TemplateParameterType(System::IntPtr native) + : CppSharp::Parser::AST::Type(native) +{ + auto __native = (::CppSharp::CppParser::AST::TemplateParameterType*)native.ToPointer(); +} + +CppSharp::Parser::AST::TemplateParameterType::TemplateParameterType() + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::TemplateParameterType(); +} + +CppSharp::Parser::AST::TemplateParameter^ CppSharp::Parser::AST::TemplateParameterType::Parameter::get() +{ + return (&((::CppSharp::CppParser::AST::TemplateParameterType*)NativePtr)->Parameter == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TemplateParameter((::CppSharp::CppParser::AST::TemplateParameter*)&((::CppSharp::CppParser::AST::TemplateParameterType*)NativePtr)->Parameter); +} + +void CppSharp::Parser::AST::TemplateParameterType::Parameter::set(CppSharp::Parser::AST::TemplateParameter^ value) +{ + ((::CppSharp::CppParser::AST::TemplateParameterType*)NativePtr)->Parameter = *(::CppSharp::CppParser::AST::TemplateParameter*)value->NativePtr; +} + +CppSharp::Parser::AST::TemplateParameterSubstitutionType::TemplateParameterSubstitutionType(::CppSharp::CppParser::AST::TemplateParameterSubstitutionType* native) + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) +{ +} + +CppSharp::Parser::AST::TemplateParameterSubstitutionType::TemplateParameterSubstitutionType(System::IntPtr native) + : CppSharp::Parser::AST::Type(native) +{ + auto __native = (::CppSharp::CppParser::AST::TemplateParameterSubstitutionType*)native.ToPointer(); +} + +CppSharp::Parser::AST::TemplateParameterSubstitutionType::TemplateParameterSubstitutionType() + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::TemplateParameterSubstitutionType(); +} + +CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::TemplateParameterSubstitutionType::Replacement::get() +{ + return (&((::CppSharp::CppParser::AST::TemplateParameterSubstitutionType*)NativePtr)->Replacement == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::TemplateParameterSubstitutionType*)NativePtr)->Replacement); +} + +void CppSharp::Parser::AST::TemplateParameterSubstitutionType::Replacement::set(CppSharp::Parser::AST::QualifiedType^ value) +{ + ((::CppSharp::CppParser::AST::TemplateParameterSubstitutionType*)NativePtr)->Replacement = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; +} + +CppSharp::Parser::AST::InjectedClassNameType::InjectedClassNameType(::CppSharp::CppParser::AST::InjectedClassNameType* native) + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) +{ +} + +CppSharp::Parser::AST::InjectedClassNameType::InjectedClassNameType(System::IntPtr native) + : CppSharp::Parser::AST::Type(native) +{ + auto __native = (::CppSharp::CppParser::AST::InjectedClassNameType*)native.ToPointer(); +} + +CppSharp::Parser::AST::InjectedClassNameType::InjectedClassNameType() + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::InjectedClassNameType(); +} + +CppSharp::Parser::AST::TemplateSpecializationType^ CppSharp::Parser::AST::InjectedClassNameType::TemplateSpecialization::get() +{ + return (&((::CppSharp::CppParser::AST::InjectedClassNameType*)NativePtr)->TemplateSpecialization == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TemplateSpecializationType((::CppSharp::CppParser::AST::TemplateSpecializationType*)&((::CppSharp::CppParser::AST::InjectedClassNameType*)NativePtr)->TemplateSpecialization); +} + +void CppSharp::Parser::AST::InjectedClassNameType::TemplateSpecialization::set(CppSharp::Parser::AST::TemplateSpecializationType^ value) +{ + ((::CppSharp::CppParser::AST::InjectedClassNameType*)NativePtr)->TemplateSpecialization = *(::CppSharp::CppParser::AST::TemplateSpecializationType*)value->NativePtr; +} + +CppSharp::Parser::AST::Class^ CppSharp::Parser::AST::InjectedClassNameType::Class::get() +{ + return (((::CppSharp::CppParser::AST::InjectedClassNameType*)NativePtr)->Class == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Class((::CppSharp::CppParser::AST::Class*)((::CppSharp::CppParser::AST::InjectedClassNameType*)NativePtr)->Class); +} + +void CppSharp::Parser::AST::InjectedClassNameType::Class::set(CppSharp::Parser::AST::Class^ value) +{ + ((::CppSharp::CppParser::AST::InjectedClassNameType*)NativePtr)->Class = (::CppSharp::CppParser::AST::Class*)value->NativePtr; +} + +CppSharp::Parser::AST::DependentNameType::DependentNameType(::CppSharp::CppParser::AST::DependentNameType* native) + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) +{ +} + +CppSharp::Parser::AST::DependentNameType::DependentNameType(System::IntPtr native) + : CppSharp::Parser::AST::Type(native) +{ + auto __native = (::CppSharp::CppParser::AST::DependentNameType*)native.ToPointer(); +} + +CppSharp::Parser::AST::DependentNameType::DependentNameType() + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::DependentNameType(); +} + +CppSharp::Parser::AST::PackExpansionType::PackExpansionType(::CppSharp::CppParser::AST::PackExpansionType* native) + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) +{ +} + +CppSharp::Parser::AST::PackExpansionType::PackExpansionType(System::IntPtr native) + : CppSharp::Parser::AST::Type(native) +{ + auto __native = (::CppSharp::CppParser::AST::PackExpansionType*)native.ToPointer(); +} + +CppSharp::Parser::AST::PackExpansionType::PackExpansionType() + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::PackExpansionType(); +} + +CppSharp::Parser::AST::BuiltinType::BuiltinType(::CppSharp::CppParser::AST::BuiltinType* native) + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native) +{ +} + +CppSharp::Parser::AST::BuiltinType::BuiltinType(System::IntPtr native) + : CppSharp::Parser::AST::Type(native) +{ + auto __native = (::CppSharp::CppParser::AST::BuiltinType*)native.ToPointer(); +} + +CppSharp::Parser::AST::BuiltinType::BuiltinType() + : CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::BuiltinType(); +} + +CppSharp::Parser::AST::PrimitiveType CppSharp::Parser::AST::BuiltinType::Type::get() +{ + return (CppSharp::Parser::AST::PrimitiveType)((::CppSharp::CppParser::AST::BuiltinType*)NativePtr)->Type; +} + +void CppSharp::Parser::AST::BuiltinType::Type::set(CppSharp::Parser::AST::PrimitiveType value) +{ + ((::CppSharp::CppParser::AST::BuiltinType*)NativePtr)->Type = (::CppSharp::CppParser::AST::PrimitiveType)value; +} + +CppSharp::Parser::AST::VTableComponent::VTableComponent(::CppSharp::CppParser::AST::VTableComponent* native) +{ + NativePtr = native; +} + +CppSharp::Parser::AST::VTableComponent::VTableComponent(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::AST::VTableComponent*)native.ToPointer(); + NativePtr = __native; +} + +CppSharp::Parser::AST::VTableComponent::VTableComponent() +{ + NativePtr = new ::CppSharp::CppParser::AST::VTableComponent(); +} + +System::IntPtr CppSharp::Parser::AST::VTableComponent::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::AST::VTableComponent::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::AST::VTableComponent*)object.ToPointer(); +} + +CppSharp::Parser::AST::VTableComponentKind CppSharp::Parser::AST::VTableComponent::Kind::get() +{ + return (CppSharp::Parser::AST::VTableComponentKind)((::CppSharp::CppParser::AST::VTableComponent*)NativePtr)->Kind; +} + +void CppSharp::Parser::AST::VTableComponent::Kind::set(CppSharp::Parser::AST::VTableComponentKind value) +{ + ((::CppSharp::CppParser::AST::VTableComponent*)NativePtr)->Kind = (::CppSharp::CppParser::AST::VTableComponentKind)value; +} + +unsigned int CppSharp::Parser::AST::VTableComponent::Offset::get() +{ + return ((::CppSharp::CppParser::AST::VTableComponent*)NativePtr)->Offset; +} + +void CppSharp::Parser::AST::VTableComponent::Offset::set(unsigned int value) +{ + ((::CppSharp::CppParser::AST::VTableComponent*)NativePtr)->Offset = value; +} + +CppSharp::Parser::AST::Declaration^ CppSharp::Parser::AST::VTableComponent::Declaration::get() +{ + return (((::CppSharp::CppParser::AST::VTableComponent*)NativePtr)->Declaration == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)((::CppSharp::CppParser::AST::VTableComponent*)NativePtr)->Declaration); +} + +void CppSharp::Parser::AST::VTableComponent::Declaration::set(CppSharp::Parser::AST::Declaration^ value) +{ + ((::CppSharp::CppParser::AST::VTableComponent*)NativePtr)->Declaration = (::CppSharp::CppParser::AST::Declaration*)value->NativePtr; +} + +CppSharp::Parser::AST::VTableLayout::VTableLayout(::CppSharp::CppParser::AST::VTableLayout* native) +{ + NativePtr = native; +} + +CppSharp::Parser::AST::VTableLayout::VTableLayout(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::AST::VTableLayout*)native.ToPointer(); + NativePtr = __native; +} + +CppSharp::Parser::AST::VTableLayout::VTableLayout() +{ + NativePtr = new ::CppSharp::CppParser::AST::VTableLayout(); +} + +CppSharp::Parser::AST::VTableComponent^ CppSharp::Parser::AST::VTableLayout::getComponents(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::VTableLayout*)NativePtr)->getComponents(i); + auto ____ret = new ::CppSharp::CppParser::AST::VTableComponent(__ret); + return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::VTableComponent((::CppSharp::CppParser::AST::VTableComponent*)____ret); +} + +void CppSharp::Parser::AST::VTableLayout::addComponents(CppSharp::Parser::AST::VTableComponent^ s) +{ + auto &arg0 = *(::CppSharp::CppParser::AST::VTableComponent*)s->NativePtr; + ((::CppSharp::CppParser::AST::VTableLayout*)NativePtr)->addComponents(arg0); +} + +System::IntPtr CppSharp::Parser::AST::VTableLayout::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::AST::VTableLayout::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::AST::VTableLayout*)object.ToPointer(); +} + +unsigned int CppSharp::Parser::AST::VTableLayout::ComponentsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::VTableLayout*)NativePtr)->getComponentsCount(); + return __ret; +} + +CppSharp::Parser::AST::VFTableInfo::VFTableInfo(::CppSharp::CppParser::AST::VFTableInfo* native) +{ + NativePtr = native; +} + +CppSharp::Parser::AST::VFTableInfo::VFTableInfo(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::AST::VFTableInfo*)native.ToPointer(); + NativePtr = __native; +} + +CppSharp::Parser::AST::VFTableInfo::VFTableInfo() +{ + NativePtr = new ::CppSharp::CppParser::AST::VFTableInfo(); +} + +System::IntPtr CppSharp::Parser::AST::VFTableInfo::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::AST::VFTableInfo::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::AST::VFTableInfo*)object.ToPointer(); +} + +unsigned long long CppSharp::Parser::AST::VFTableInfo::VBTableIndex::get() +{ + return ((::CppSharp::CppParser::AST::VFTableInfo*)NativePtr)->VBTableIndex; +} + +void CppSharp::Parser::AST::VFTableInfo::VBTableIndex::set(unsigned long long value) +{ + ((::CppSharp::CppParser::AST::VFTableInfo*)NativePtr)->VBTableIndex = (::uint64_t)value; +} + +unsigned int CppSharp::Parser::AST::VFTableInfo::VFPtrOffset::get() +{ + return ((::CppSharp::CppParser::AST::VFTableInfo*)NativePtr)->VFPtrOffset; +} + +void CppSharp::Parser::AST::VFTableInfo::VFPtrOffset::set(unsigned int value) +{ + ((::CppSharp::CppParser::AST::VFTableInfo*)NativePtr)->VFPtrOffset = (::uint32_t)value; +} + +unsigned int CppSharp::Parser::AST::VFTableInfo::VFPtrFullOffset::get() +{ + return ((::CppSharp::CppParser::AST::VFTableInfo*)NativePtr)->VFPtrFullOffset; +} + +void CppSharp::Parser::AST::VFTableInfo::VFPtrFullOffset::set(unsigned int value) +{ + ((::CppSharp::CppParser::AST::VFTableInfo*)NativePtr)->VFPtrFullOffset = (::uint32_t)value; +} + +CppSharp::Parser::AST::VTableLayout^ CppSharp::Parser::AST::VFTableInfo::Layout::get() +{ + return (&((::CppSharp::CppParser::AST::VFTableInfo*)NativePtr)->Layout == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::VTableLayout((::CppSharp::CppParser::AST::VTableLayout*)&((::CppSharp::CppParser::AST::VFTableInfo*)NativePtr)->Layout); +} + +void CppSharp::Parser::AST::VFTableInfo::Layout::set(CppSharp::Parser::AST::VTableLayout^ value) +{ + ((::CppSharp::CppParser::AST::VFTableInfo*)NativePtr)->Layout = *(::CppSharp::CppParser::AST::VTableLayout*)value->NativePtr; +} + +CppSharp::Parser::AST::ClassLayout::ClassLayout(::CppSharp::CppParser::AST::ClassLayout* native) +{ + NativePtr = native; +} + +CppSharp::Parser::AST::ClassLayout::ClassLayout(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::AST::ClassLayout*)native.ToPointer(); + NativePtr = __native; +} + +CppSharp::Parser::AST::ClassLayout::ClassLayout() +{ + NativePtr = new ::CppSharp::CppParser::AST::ClassLayout(); +} + +CppSharp::Parser::AST::VFTableInfo^ CppSharp::Parser::AST::ClassLayout::getVFTables(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->getVFTables(i); + auto ____ret = new ::CppSharp::CppParser::AST::VFTableInfo(__ret); + return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::VFTableInfo((::CppSharp::CppParser::AST::VFTableInfo*)____ret); +} + +void CppSharp::Parser::AST::ClassLayout::addVFTables(CppSharp::Parser::AST::VFTableInfo^ s) +{ + auto &arg0 = *(::CppSharp::CppParser::AST::VFTableInfo*)s->NativePtr; + ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->addVFTables(arg0); +} + +System::IntPtr CppSharp::Parser::AST::ClassLayout::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::AST::ClassLayout::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::AST::ClassLayout*)object.ToPointer(); +} + +unsigned int CppSharp::Parser::AST::ClassLayout::VFTablesCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->getVFTablesCount(); + return __ret; +} + +CppSharp::Parser::AST::CppAbi CppSharp::Parser::AST::ClassLayout::ABI::get() +{ + return (CppSharp::Parser::AST::CppAbi)((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->ABI; +} + +void CppSharp::Parser::AST::ClassLayout::ABI::set(CppSharp::Parser::AST::CppAbi value) +{ + ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->ABI = (::CppSharp::CppParser::AST::CppAbi)value; +} + +CppSharp::Parser::AST::VTableLayout^ CppSharp::Parser::AST::ClassLayout::Layout::get() +{ + return (&((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->Layout == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::VTableLayout((::CppSharp::CppParser::AST::VTableLayout*)&((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->Layout); +} + +void CppSharp::Parser::AST::ClassLayout::Layout::set(CppSharp::Parser::AST::VTableLayout^ value) +{ + ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->Layout = *(::CppSharp::CppParser::AST::VTableLayout*)value->NativePtr; +} + +bool CppSharp::Parser::AST::ClassLayout::HasOwnVFPtr::get() +{ + return ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->HasOwnVFPtr; +} + +void CppSharp::Parser::AST::ClassLayout::HasOwnVFPtr::set(bool value) +{ + ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->HasOwnVFPtr = value; +} + +int CppSharp::Parser::AST::ClassLayout::VBPtrOffset::get() +{ + return ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->VBPtrOffset; +} + +void CppSharp::Parser::AST::ClassLayout::VBPtrOffset::set(int value) +{ + ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->VBPtrOffset = value; +} + +int CppSharp::Parser::AST::ClassLayout::Alignment::get() +{ + return ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->Alignment; +} + +void CppSharp::Parser::AST::ClassLayout::Alignment::set(int value) +{ + ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->Alignment = value; +} + +int CppSharp::Parser::AST::ClassLayout::Size::get() +{ + return ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->Size; +} + +void CppSharp::Parser::AST::ClassLayout::Size::set(int value) +{ + ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->Size = value; +} + +int CppSharp::Parser::AST::ClassLayout::DataSize::get() +{ + return ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->DataSize; +} + +void CppSharp::Parser::AST::ClassLayout::DataSize::set(int value) +{ + ((::CppSharp::CppParser::AST::ClassLayout*)NativePtr)->DataSize = value; +} + +CppSharp::Parser::AST::Declaration::Declaration(::CppSharp::CppParser::AST::Declaration* native) +{ + NativePtr = native; +} + +CppSharp::Parser::AST::Declaration::Declaration(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::AST::Declaration*)native.ToPointer(); + NativePtr = __native; +} + +CppSharp::Parser::AST::Declaration::Declaration(CppSharp::Parser::AST::DeclarationKind kind) +{ + auto arg0 = (::CppSharp::CppParser::AST::DeclarationKind)kind; + NativePtr = new ::CppSharp::CppParser::AST::Declaration(arg0); +} + +CppSharp::Parser::AST::PreprocessedEntity^ CppSharp::Parser::AST::Declaration::getPreprocessedEntities(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->getPreprocessedEntities(i); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::PreprocessedEntity((::CppSharp::CppParser::AST::PreprocessedEntity*)__ret); +} + +void CppSharp::Parser::AST::Declaration::addPreprocessedEntities(CppSharp::Parser::AST::PreprocessedEntity^ s) +{ + auto arg0 = (::CppSharp::CppParser::AST::PreprocessedEntity*)s->NativePtr; + ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->addPreprocessedEntities(arg0); +} + +System::IntPtr CppSharp::Parser::AST::Declaration::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::AST::Declaration::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::AST::Declaration*)object.ToPointer(); +} + +System::String^ CppSharp::Parser::AST::Declaration::Name::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->getName(); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::AST::Declaration::Name::set(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->setName(arg0); +} + +System::String^ CppSharp::Parser::AST::Declaration::DebugText::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->getDebugText(); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::AST::Declaration::DebugText::set(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->setDebugText(arg0); +} + +unsigned int CppSharp::Parser::AST::Declaration::PreprocessedEntitiesCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->getPreprocessedEntitiesCount(); + return __ret; +} + +CppSharp::Parser::AST::DeclarationKind CppSharp::Parser::AST::Declaration::Kind::get() +{ + return (CppSharp::Parser::AST::DeclarationKind)((::CppSharp::CppParser::AST::Declaration*)NativePtr)->Kind; +} + +void CppSharp::Parser::AST::Declaration::Kind::set(CppSharp::Parser::AST::DeclarationKind value) +{ + ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->Kind = (::CppSharp::CppParser::AST::DeclarationKind)value; +} + +CppSharp::Parser::AST::AccessSpecifier CppSharp::Parser::AST::Declaration::Access::get() +{ + return (CppSharp::Parser::AST::AccessSpecifier)((::CppSharp::CppParser::AST::Declaration*)NativePtr)->Access; +} + +void CppSharp::Parser::AST::Declaration::Access::set(CppSharp::Parser::AST::AccessSpecifier value) +{ + ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->Access = (::CppSharp::CppParser::AST::AccessSpecifier)value; +} + +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); +} + +void CppSharp::Parser::AST::Declaration::_Namespace::set(CppSharp::Parser::AST::DeclarationContext^ value) +{ + ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->_Namespace = (::CppSharp::CppParser::AST::DeclarationContext*)value->NativePtr; +} + +CppSharp::Parser::AST::RawComment^ CppSharp::Parser::AST::Declaration::Comment::get() +{ + return (((::CppSharp::CppParser::AST::Declaration*)NativePtr)->Comment == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::RawComment((::CppSharp::CppParser::AST::RawComment*)((::CppSharp::CppParser::AST::Declaration*)NativePtr)->Comment); +} + +void CppSharp::Parser::AST::Declaration::Comment::set(CppSharp::Parser::AST::RawComment^ value) +{ + ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->Comment = (::CppSharp::CppParser::AST::RawComment*)value->NativePtr; +} + +bool CppSharp::Parser::AST::Declaration::IsIncomplete::get() +{ + return ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->IsIncomplete; +} + +void CppSharp::Parser::AST::Declaration::IsIncomplete::set(bool value) +{ + ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->IsIncomplete = value; +} + +bool CppSharp::Parser::AST::Declaration::IsDependent::get() +{ + return ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->IsDependent; +} + +void CppSharp::Parser::AST::Declaration::IsDependent::set(bool value) +{ + ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->IsDependent = value; +} + +CppSharp::Parser::AST::Declaration^ CppSharp::Parser::AST::Declaration::CompleteDeclaration::get() +{ + return (((::CppSharp::CppParser::AST::Declaration*)NativePtr)->CompleteDeclaration == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)((::CppSharp::CppParser::AST::Declaration*)NativePtr)->CompleteDeclaration); +} + +void CppSharp::Parser::AST::Declaration::CompleteDeclaration::set(CppSharp::Parser::AST::Declaration^ value) +{ + ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->CompleteDeclaration = (::CppSharp::CppParser::AST::Declaration*)value->NativePtr; +} + +unsigned int CppSharp::Parser::AST::Declaration::DefinitionOrder::get() +{ + return ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->DefinitionOrder; +} + +void CppSharp::Parser::AST::Declaration::DefinitionOrder::set(unsigned int value) +{ + ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->DefinitionOrder = value; +} + +void* CppSharp::Parser::AST::Declaration::OriginalPtr::get() +{ + return ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->OriginalPtr; +} + +void CppSharp::Parser::AST::Declaration::OriginalPtr::set(void* value) +{ + ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->OriginalPtr = (void*)value; +} + +CppSharp::Parser::AST::DeclarationContext::DeclarationContext(::CppSharp::CppParser::AST::DeclarationContext* native) + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) +{ +} + +CppSharp::Parser::AST::DeclarationContext::DeclarationContext(System::IntPtr native) + : CppSharp::Parser::AST::Declaration(native) +{ + auto __native = (::CppSharp::CppParser::AST::DeclarationContext*)native.ToPointer(); +} + +CppSharp::Parser::AST::DeclarationContext::DeclarationContext(CppSharp::Parser::AST::DeclarationKind kind) + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) +{ + auto arg0 = (::CppSharp::CppParser::AST::DeclarationKind)kind; + NativePtr = new ::CppSharp::CppParser::AST::DeclarationContext(arg0); +} + +CppSharp::Parser::AST::Namespace^ CppSharp::Parser::AST::DeclarationContext::getNamespaces(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getNamespaces(i); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Namespace((::CppSharp::CppParser::AST::Namespace*)__ret); +} + +void CppSharp::Parser::AST::DeclarationContext::addNamespaces(CppSharp::Parser::AST::Namespace^ s) +{ + auto arg0 = (::CppSharp::CppParser::AST::Namespace*)s->NativePtr; + ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->addNamespaces(arg0); +} + +CppSharp::Parser::AST::Enumeration^ CppSharp::Parser::AST::DeclarationContext::getEnums(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getEnums(i); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Enumeration((::CppSharp::CppParser::AST::Enumeration*)__ret); +} + +void CppSharp::Parser::AST::DeclarationContext::addEnums(CppSharp::Parser::AST::Enumeration^ s) +{ + auto arg0 = (::CppSharp::CppParser::AST::Enumeration*)s->NativePtr; + ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->addEnums(arg0); +} + +CppSharp::Parser::AST::Function^ CppSharp::Parser::AST::DeclarationContext::getFunctions(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getFunctions(i); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Function((::CppSharp::CppParser::AST::Function*)__ret); +} + +void CppSharp::Parser::AST::DeclarationContext::addFunctions(CppSharp::Parser::AST::Function^ s) +{ + auto arg0 = (::CppSharp::CppParser::AST::Function*)s->NativePtr; + ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->addFunctions(arg0); +} + +CppSharp::Parser::AST::Class^ CppSharp::Parser::AST::DeclarationContext::getClasses(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getClasses(i); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Class((::CppSharp::CppParser::AST::Class*)__ret); +} + +void CppSharp::Parser::AST::DeclarationContext::addClasses(CppSharp::Parser::AST::Class^ s) +{ + auto arg0 = (::CppSharp::CppParser::AST::Class*)s->NativePtr; + ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->addClasses(arg0); +} + +CppSharp::Parser::AST::Template^ CppSharp::Parser::AST::DeclarationContext::getTemplates(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getTemplates(i); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Template((::CppSharp::CppParser::AST::Template*)__ret); +} + +void CppSharp::Parser::AST::DeclarationContext::addTemplates(CppSharp::Parser::AST::Template^ s) +{ + auto arg0 = (::CppSharp::CppParser::AST::Template*)s->NativePtr; + ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->addTemplates(arg0); +} + +CppSharp::Parser::AST::TypedefDecl^ CppSharp::Parser::AST::DeclarationContext::getTypedefs(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getTypedefs(i); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TypedefDecl((::CppSharp::CppParser::AST::TypedefDecl*)__ret); +} + +void CppSharp::Parser::AST::DeclarationContext::addTypedefs(CppSharp::Parser::AST::TypedefDecl^ s) +{ + auto arg0 = (::CppSharp::CppParser::AST::TypedefDecl*)s->NativePtr; + ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->addTypedefs(arg0); +} + +CppSharp::Parser::AST::Variable^ CppSharp::Parser::AST::DeclarationContext::getVariables(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getVariables(i); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Variable((::CppSharp::CppParser::AST::Variable*)__ret); +} + +void CppSharp::Parser::AST::DeclarationContext::addVariables(CppSharp::Parser::AST::Variable^ s) +{ + auto arg0 = (::CppSharp::CppParser::AST::Variable*)s->NativePtr; + ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->addVariables(arg0); +} + +unsigned int CppSharp::Parser::AST::DeclarationContext::NamespacesCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getNamespacesCount(); + return __ret; +} + +unsigned int CppSharp::Parser::AST::DeclarationContext::EnumsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getEnumsCount(); + return __ret; +} + +unsigned int CppSharp::Parser::AST::DeclarationContext::FunctionsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getFunctionsCount(); + return __ret; +} + +unsigned int CppSharp::Parser::AST::DeclarationContext::ClassesCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getClassesCount(); + return __ret; +} + +unsigned int CppSharp::Parser::AST::DeclarationContext::TemplatesCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getTemplatesCount(); + return __ret; +} + +unsigned int CppSharp::Parser::AST::DeclarationContext::TypedefsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getTypedefsCount(); + return __ret; +} + +unsigned int CppSharp::Parser::AST::DeclarationContext::VariablesCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->getVariablesCount(); + return __ret; +} + +bool CppSharp::Parser::AST::DeclarationContext::IsAnonymous::get() +{ + return ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->IsAnonymous; +} + +void CppSharp::Parser::AST::DeclarationContext::IsAnonymous::set(bool value) +{ + ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->IsAnonymous = value; +} + +CppSharp::Parser::AST::TypedefDecl::TypedefDecl(::CppSharp::CppParser::AST::TypedefDecl* native) + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) +{ +} + +CppSharp::Parser::AST::TypedefDecl::TypedefDecl(System::IntPtr native) + : CppSharp::Parser::AST::Declaration(native) +{ + auto __native = (::CppSharp::CppParser::AST::TypedefDecl*)native.ToPointer(); +} + +CppSharp::Parser::AST::TypedefDecl::TypedefDecl() + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::TypedefDecl(); +} + +CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::TypedefDecl::QualifiedType::get() +{ + return (&((::CppSharp::CppParser::AST::TypedefDecl*)NativePtr)->QualifiedType == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::TypedefDecl*)NativePtr)->QualifiedType); +} + +void CppSharp::Parser::AST::TypedefDecl::QualifiedType::set(CppSharp::Parser::AST::QualifiedType^ value) +{ + ((::CppSharp::CppParser::AST::TypedefDecl*)NativePtr)->QualifiedType = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; +} + +CppSharp::Parser::AST::Parameter::Parameter(::CppSharp::CppParser::AST::Parameter* native) + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) +{ +} + +CppSharp::Parser::AST::Parameter::Parameter(System::IntPtr native) + : CppSharp::Parser::AST::Declaration(native) +{ + auto __native = (::CppSharp::CppParser::AST::Parameter*)native.ToPointer(); +} + +CppSharp::Parser::AST::Parameter::Parameter() + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::Parameter(); +} + +CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::Parameter::QualifiedType::get() +{ + return (&((::CppSharp::CppParser::AST::Parameter*)NativePtr)->QualifiedType == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::Parameter*)NativePtr)->QualifiedType); +} + +void CppSharp::Parser::AST::Parameter::QualifiedType::set(CppSharp::Parser::AST::QualifiedType^ value) +{ + ((::CppSharp::CppParser::AST::Parameter*)NativePtr)->QualifiedType = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; +} + +bool CppSharp::Parser::AST::Parameter::IsIndirect::get() +{ + return ((::CppSharp::CppParser::AST::Parameter*)NativePtr)->IsIndirect; +} + +void CppSharp::Parser::AST::Parameter::IsIndirect::set(bool value) +{ + ((::CppSharp::CppParser::AST::Parameter*)NativePtr)->IsIndirect = value; +} + +bool CppSharp::Parser::AST::Parameter::HasDefaultValue::get() +{ + return ((::CppSharp::CppParser::AST::Parameter*)NativePtr)->HasDefaultValue; +} + +void CppSharp::Parser::AST::Parameter::HasDefaultValue::set(bool value) +{ + ((::CppSharp::CppParser::AST::Parameter*)NativePtr)->HasDefaultValue = value; +} + +unsigned int CppSharp::Parser::AST::Parameter::Index::get() +{ + return ((::CppSharp::CppParser::AST::Parameter*)NativePtr)->Index; +} + +void CppSharp::Parser::AST::Parameter::Index::set(unsigned int value) +{ + ((::CppSharp::CppParser::AST::Parameter*)NativePtr)->Index = value; +} + +CppSharp::Parser::AST::Function::Function(::CppSharp::CppParser::AST::Function* native) + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) +{ +} + +CppSharp::Parser::AST::Function::Function(System::IntPtr native) + : CppSharp::Parser::AST::Declaration(native) +{ + auto __native = (::CppSharp::CppParser::AST::Function*)native.ToPointer(); +} + +CppSharp::Parser::AST::Function::Function() + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::Function(); +} + +CppSharp::Parser::AST::Parameter^ CppSharp::Parser::AST::Function::getParameters(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::Function*)NativePtr)->getParameters(i); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Parameter((::CppSharp::CppParser::AST::Parameter*)__ret); +} + +void CppSharp::Parser::AST::Function::addParameters(CppSharp::Parser::AST::Parameter^ s) +{ + auto arg0 = (::CppSharp::CppParser::AST::Parameter*)s->NativePtr; + ((::CppSharp::CppParser::AST::Function*)NativePtr)->addParameters(arg0); +} + +System::String^ CppSharp::Parser::AST::Function::Mangled::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::Function*)NativePtr)->getMangled(); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::AST::Function::Mangled::set(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::AST::Function*)NativePtr)->setMangled(arg0); +} + +System::String^ CppSharp::Parser::AST::Function::Signature::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::Function*)NativePtr)->getSignature(); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::AST::Function::Signature::set(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::AST::Function*)NativePtr)->setSignature(arg0); +} + +unsigned int CppSharp::Parser::AST::Function::ParametersCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::Function*)NativePtr)->getParametersCount(); + return __ret; +} + +CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::Function::ReturnType::get() +{ + return (&((::CppSharp::CppParser::AST::Function*)NativePtr)->ReturnType == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::Function*)NativePtr)->ReturnType); +} + +void CppSharp::Parser::AST::Function::ReturnType::set(CppSharp::Parser::AST::QualifiedType^ value) +{ + ((::CppSharp::CppParser::AST::Function*)NativePtr)->ReturnType = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; +} + +bool CppSharp::Parser::AST::Function::IsReturnIndirect::get() +{ + return ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsReturnIndirect; +} + +void CppSharp::Parser::AST::Function::IsReturnIndirect::set(bool value) +{ + ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsReturnIndirect = value; +} + +bool CppSharp::Parser::AST::Function::IsVariadic::get() +{ + return ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsVariadic; +} + +void CppSharp::Parser::AST::Function::IsVariadic::set(bool value) +{ + ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsVariadic = value; +} + +bool CppSharp::Parser::AST::Function::IsInline::get() +{ + return ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsInline; +} + +void CppSharp::Parser::AST::Function::IsInline::set(bool value) +{ + ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsInline = value; +} + +bool CppSharp::Parser::AST::Function::IsPure::get() +{ + return ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsPure; +} + +void CppSharp::Parser::AST::Function::IsPure::set(bool value) +{ + ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsPure = value; +} + +bool CppSharp::Parser::AST::Function::IsDeleted::get() +{ + return ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsDeleted; +} + +void CppSharp::Parser::AST::Function::IsDeleted::set(bool value) +{ + ((::CppSharp::CppParser::AST::Function*)NativePtr)->IsDeleted = value; +} + +CppSharp::Parser::AST::CXXOperatorKind CppSharp::Parser::AST::Function::OperatorKind::get() +{ + return (CppSharp::Parser::AST::CXXOperatorKind)((::CppSharp::CppParser::AST::Function*)NativePtr)->OperatorKind; +} + +void CppSharp::Parser::AST::Function::OperatorKind::set(CppSharp::Parser::AST::CXXOperatorKind value) +{ + ((::CppSharp::CppParser::AST::Function*)NativePtr)->OperatorKind = (::CppSharp::CppParser::AST::CXXOperatorKind)value; +} + +CppSharp::Parser::AST::CallingConvention CppSharp::Parser::AST::Function::CallingConvention::get() +{ + return (CppSharp::Parser::AST::CallingConvention)((::CppSharp::CppParser::AST::Function*)NativePtr)->CallingConvention; +} + +void CppSharp::Parser::AST::Function::CallingConvention::set(CppSharp::Parser::AST::CallingConvention value) +{ + ((::CppSharp::CppParser::AST::Function*)NativePtr)->CallingConvention = (::CppSharp::CppParser::AST::CallingConvention)value; +} + +CppSharp::Parser::AST::Method::Method(::CppSharp::CppParser::AST::Method* native) + : CppSharp::Parser::AST::Function((::CppSharp::CppParser::AST::Function*)native) +{ +} + +CppSharp::Parser::AST::Method::Method(System::IntPtr native) + : CppSharp::Parser::AST::Function(native) +{ + auto __native = (::CppSharp::CppParser::AST::Method*)native.ToPointer(); +} + +CppSharp::Parser::AST::Method::Method() + : CppSharp::Parser::AST::Function((::CppSharp::CppParser::AST::Function*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::Method(); +} + +CppSharp::Parser::AST::AccessSpecifierDecl^ CppSharp::Parser::AST::Method::AccessDecl::get() +{ + return (((::CppSharp::CppParser::AST::Method*)NativePtr)->AccessDecl == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::AccessSpecifierDecl((::CppSharp::CppParser::AST::AccessSpecifierDecl*)((::CppSharp::CppParser::AST::Method*)NativePtr)->AccessDecl); +} + +void CppSharp::Parser::AST::Method::AccessDecl::set(CppSharp::Parser::AST::AccessSpecifierDecl^ value) +{ + ((::CppSharp::CppParser::AST::Method*)NativePtr)->AccessDecl = (::CppSharp::CppParser::AST::AccessSpecifierDecl*)value->NativePtr; +} + +bool CppSharp::Parser::AST::Method::IsVirtual::get() +{ + return ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsVirtual; +} + +void CppSharp::Parser::AST::Method::IsVirtual::set(bool value) +{ + ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsVirtual = value; +} + +bool CppSharp::Parser::AST::Method::IsStatic::get() +{ + return ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsStatic; +} + +void CppSharp::Parser::AST::Method::IsStatic::set(bool value) +{ + ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsStatic = value; +} + +bool CppSharp::Parser::AST::Method::IsConst::get() +{ + return ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsConst; +} + +void CppSharp::Parser::AST::Method::IsConst::set(bool value) +{ + ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsConst = value; +} + +bool CppSharp::Parser::AST::Method::IsImplicit::get() +{ + return ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsImplicit; +} + +void CppSharp::Parser::AST::Method::IsImplicit::set(bool value) +{ + ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsImplicit = value; +} + +bool CppSharp::Parser::AST::Method::IsExplicit::get() +{ + return ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsExplicit; +} + +void CppSharp::Parser::AST::Method::IsExplicit::set(bool value) +{ + ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsExplicit = value; +} + +bool CppSharp::Parser::AST::Method::IsOverride::get() +{ + return ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsOverride; +} + +void CppSharp::Parser::AST::Method::IsOverride::set(bool value) +{ + ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsOverride = value; +} + +CppSharp::Parser::AST::CXXMethodKind CppSharp::Parser::AST::Method::MethodKind::get() +{ + return (CppSharp::Parser::AST::CXXMethodKind)((::CppSharp::CppParser::AST::Method*)NativePtr)->MethodKind; +} + +void CppSharp::Parser::AST::Method::MethodKind::set(CppSharp::Parser::AST::CXXMethodKind value) +{ + ((::CppSharp::CppParser::AST::Method*)NativePtr)->MethodKind = (::CppSharp::CppParser::AST::CXXMethodKind)value; +} + +bool CppSharp::Parser::AST::Method::IsDefaultConstructor::get() +{ + return ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsDefaultConstructor; +} + +void CppSharp::Parser::AST::Method::IsDefaultConstructor::set(bool value) +{ + ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsDefaultConstructor = value; +} + +bool CppSharp::Parser::AST::Method::IsCopyConstructor::get() +{ + return ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsCopyConstructor; +} + +void CppSharp::Parser::AST::Method::IsCopyConstructor::set(bool value) +{ + ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsCopyConstructor = value; +} + +bool CppSharp::Parser::AST::Method::IsMoveConstructor::get() +{ + return ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsMoveConstructor; +} + +void CppSharp::Parser::AST::Method::IsMoveConstructor::set(bool value) +{ + ((::CppSharp::CppParser::AST::Method*)NativePtr)->IsMoveConstructor = value; +} + +CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::Method::ConversionType::get() +{ + return (&((::CppSharp::CppParser::AST::Method*)NativePtr)->ConversionType == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::Method*)NativePtr)->ConversionType); +} + +void CppSharp::Parser::AST::Method::ConversionType::set(CppSharp::Parser::AST::QualifiedType^ value) +{ + ((::CppSharp::CppParser::AST::Method*)NativePtr)->ConversionType = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; +} + +CppSharp::Parser::AST::Enumeration::Item::Item(::CppSharp::CppParser::AST::Enumeration::Item* native) + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) +{ +} + +CppSharp::Parser::AST::Enumeration::Item::Item(System::IntPtr native) + : CppSharp::Parser::AST::Declaration(native) +{ + auto __native = (::CppSharp::CppParser::AST::Enumeration::Item*)native.ToPointer(); +} + +CppSharp::Parser::AST::Enumeration::Item::Item() + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::Enumeration::Item(); +} + +System::String^ CppSharp::Parser::AST::Enumeration::Item::Expression::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::Enumeration::Item*)NativePtr)->getExpression(); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::AST::Enumeration::Item::Expression::set(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::AST::Enumeration::Item*)NativePtr)->setExpression(arg0); +} + +unsigned long long CppSharp::Parser::AST::Enumeration::Item::Value::get() +{ + return ((::CppSharp::CppParser::AST::Enumeration::Item*)NativePtr)->Value; +} + +void CppSharp::Parser::AST::Enumeration::Item::Value::set(unsigned long long value) +{ + ((::CppSharp::CppParser::AST::Enumeration::Item*)NativePtr)->Value = (::uint64_t)value; +} + +CppSharp::Parser::AST::Enumeration::Enumeration(::CppSharp::CppParser::AST::Enumeration* native) + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) +{ +} + +CppSharp::Parser::AST::Enumeration::Enumeration(System::IntPtr native) + : CppSharp::Parser::AST::Declaration(native) +{ + auto __native = (::CppSharp::CppParser::AST::Enumeration*)native.ToPointer(); +} + +CppSharp::Parser::AST::Enumeration::Enumeration() + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::Enumeration(); +} + +CppSharp::Parser::AST::Enumeration::Item^ CppSharp::Parser::AST::Enumeration::getItems(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->getItems(i); + auto ____ret = new ::CppSharp::CppParser::AST::Enumeration::Item(__ret); + return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Enumeration::Item((::CppSharp::CppParser::AST::Enumeration::Item*)____ret); +} + +void CppSharp::Parser::AST::Enumeration::addItems(CppSharp::Parser::AST::Enumeration::Item^ s) +{ + auto &arg0 = *(::CppSharp::CppParser::AST::Enumeration::Item*)s->NativePtr; + ((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->addItems(arg0); +} + +unsigned int CppSharp::Parser::AST::Enumeration::ItemsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->getItemsCount(); + return __ret; +} + +CppSharp::Parser::AST::Enumeration::EnumModifiers CppSharp::Parser::AST::Enumeration::Modifiers::get() +{ + return (CppSharp::Parser::AST::Enumeration::EnumModifiers)((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->Modifiers; +} + +void CppSharp::Parser::AST::Enumeration::Modifiers::set(CppSharp::Parser::AST::Enumeration::EnumModifiers value) +{ + ((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->Modifiers = (::CppSharp::CppParser::AST::Enumeration::EnumModifiers)value; +} + +CppSharp::Parser::AST::Type^ CppSharp::Parser::AST::Enumeration::Type::get() +{ + return (((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->Type == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->Type); +} + +void CppSharp::Parser::AST::Enumeration::Type::set(CppSharp::Parser::AST::Type^ value) +{ + ((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->Type = (::CppSharp::CppParser::AST::Type*)value->NativePtr; +} + +CppSharp::Parser::AST::BuiltinType^ CppSharp::Parser::AST::Enumeration::BuiltinType::get() +{ + return (((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->BuiltinType == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::BuiltinType((::CppSharp::CppParser::AST::BuiltinType*)((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->BuiltinType); +} + +void CppSharp::Parser::AST::Enumeration::BuiltinType::set(CppSharp::Parser::AST::BuiltinType^ value) +{ + ((::CppSharp::CppParser::AST::Enumeration*)NativePtr)->BuiltinType = (::CppSharp::CppParser::AST::BuiltinType*)value->NativePtr; +} + +CppSharp::Parser::AST::Variable::Variable(::CppSharp::CppParser::AST::Variable* native) + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) +{ +} + +CppSharp::Parser::AST::Variable::Variable(System::IntPtr native) + : CppSharp::Parser::AST::Declaration(native) +{ + auto __native = (::CppSharp::CppParser::AST::Variable*)native.ToPointer(); +} + +CppSharp::Parser::AST::Variable::Variable() + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::Variable(); +} + +System::String^ CppSharp::Parser::AST::Variable::Mangled::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::Variable*)NativePtr)->getMangled(); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::AST::Variable::Mangled::set(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::AST::Variable*)NativePtr)->setMangled(arg0); +} + +CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::Variable::QualifiedType::get() +{ + return (&((::CppSharp::CppParser::AST::Variable*)NativePtr)->QualifiedType == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::Variable*)NativePtr)->QualifiedType); +} + +void CppSharp::Parser::AST::Variable::QualifiedType::set(CppSharp::Parser::AST::QualifiedType^ value) +{ + ((::CppSharp::CppParser::AST::Variable*)NativePtr)->QualifiedType = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; +} + +CppSharp::Parser::AST::BaseClassSpecifier::BaseClassSpecifier(::CppSharp::CppParser::AST::BaseClassSpecifier* native) +{ + NativePtr = native; +} + +CppSharp::Parser::AST::BaseClassSpecifier::BaseClassSpecifier(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::AST::BaseClassSpecifier*)native.ToPointer(); + NativePtr = __native; +} + +CppSharp::Parser::AST::BaseClassSpecifier::BaseClassSpecifier() +{ + NativePtr = new ::CppSharp::CppParser::AST::BaseClassSpecifier(); +} + +System::IntPtr CppSharp::Parser::AST::BaseClassSpecifier::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::AST::BaseClassSpecifier::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::AST::BaseClassSpecifier*)object.ToPointer(); +} + +CppSharp::Parser::AST::AccessSpecifier CppSharp::Parser::AST::BaseClassSpecifier::Access::get() +{ + return (CppSharp::Parser::AST::AccessSpecifier)((::CppSharp::CppParser::AST::BaseClassSpecifier*)NativePtr)->Access; +} + +void CppSharp::Parser::AST::BaseClassSpecifier::Access::set(CppSharp::Parser::AST::AccessSpecifier value) +{ + ((::CppSharp::CppParser::AST::BaseClassSpecifier*)NativePtr)->Access = (::CppSharp::CppParser::AST::AccessSpecifier)value; +} + +bool CppSharp::Parser::AST::BaseClassSpecifier::IsVirtual::get() +{ + return ((::CppSharp::CppParser::AST::BaseClassSpecifier*)NativePtr)->IsVirtual; +} + +void CppSharp::Parser::AST::BaseClassSpecifier::IsVirtual::set(bool value) +{ + ((::CppSharp::CppParser::AST::BaseClassSpecifier*)NativePtr)->IsVirtual = value; +} + +CppSharp::Parser::AST::Type^ CppSharp::Parser::AST::BaseClassSpecifier::Type::get() +{ + return (((::CppSharp::CppParser::AST::BaseClassSpecifier*)NativePtr)->Type == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)((::CppSharp::CppParser::AST::BaseClassSpecifier*)NativePtr)->Type); +} + +void CppSharp::Parser::AST::BaseClassSpecifier::Type::set(CppSharp::Parser::AST::Type^ value) +{ + ((::CppSharp::CppParser::AST::BaseClassSpecifier*)NativePtr)->Type = (::CppSharp::CppParser::AST::Type*)value->NativePtr; +} + +CppSharp::Parser::AST::Field::Field(::CppSharp::CppParser::AST::Field* native) + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) +{ +} + +CppSharp::Parser::AST::Field::Field(System::IntPtr native) + : CppSharp::Parser::AST::Declaration(native) +{ + auto __native = (::CppSharp::CppParser::AST::Field*)native.ToPointer(); +} + +CppSharp::Parser::AST::Field::Field() + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::Field(); +} + +CppSharp::Parser::AST::QualifiedType^ CppSharp::Parser::AST::Field::QualifiedType::get() +{ + return (&((::CppSharp::CppParser::AST::Field*)NativePtr)->QualifiedType == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::QualifiedType((::CppSharp::CppParser::AST::QualifiedType*)&((::CppSharp::CppParser::AST::Field*)NativePtr)->QualifiedType); +} + +void CppSharp::Parser::AST::Field::QualifiedType::set(CppSharp::Parser::AST::QualifiedType^ value) +{ + ((::CppSharp::CppParser::AST::Field*)NativePtr)->QualifiedType = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr; +} + +unsigned int CppSharp::Parser::AST::Field::Offset::get() +{ + return ((::CppSharp::CppParser::AST::Field*)NativePtr)->Offset; +} + +void CppSharp::Parser::AST::Field::Offset::set(unsigned int value) +{ + ((::CppSharp::CppParser::AST::Field*)NativePtr)->Offset = value; +} + +CppSharp::Parser::AST::Class^ CppSharp::Parser::AST::Field::Class::get() +{ + return (((::CppSharp::CppParser::AST::Field*)NativePtr)->Class == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Class((::CppSharp::CppParser::AST::Class*)((::CppSharp::CppParser::AST::Field*)NativePtr)->Class); +} + +void CppSharp::Parser::AST::Field::Class::set(CppSharp::Parser::AST::Class^ value) +{ + ((::CppSharp::CppParser::AST::Field*)NativePtr)->Class = (::CppSharp::CppParser::AST::Class*)value->NativePtr; +} + +CppSharp::Parser::AST::AccessSpecifierDecl::AccessSpecifierDecl(::CppSharp::CppParser::AST::AccessSpecifierDecl* native) + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) +{ +} + +CppSharp::Parser::AST::AccessSpecifierDecl::AccessSpecifierDecl(System::IntPtr native) + : CppSharp::Parser::AST::Declaration(native) +{ + auto __native = (::CppSharp::CppParser::AST::AccessSpecifierDecl*)native.ToPointer(); +} + +CppSharp::Parser::AST::AccessSpecifierDecl::AccessSpecifierDecl() + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::AccessSpecifierDecl(); +} + +CppSharp::Parser::AST::Class::Class(::CppSharp::CppParser::AST::Class* native) + : CppSharp::Parser::AST::DeclarationContext((::CppSharp::CppParser::AST::DeclarationContext*)native) +{ +} + +CppSharp::Parser::AST::Class::Class(System::IntPtr native) + : CppSharp::Parser::AST::DeclarationContext(native) +{ + auto __native = (::CppSharp::CppParser::AST::Class*)native.ToPointer(); +} + +CppSharp::Parser::AST::Class::Class() + : CppSharp::Parser::AST::DeclarationContext((::CppSharp::CppParser::AST::DeclarationContext*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::Class(); +} + +CppSharp::Parser::AST::BaseClassSpecifier^ CppSharp::Parser::AST::Class::getBases(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::Class*)NativePtr)->getBases(i); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::BaseClassSpecifier((::CppSharp::CppParser::AST::BaseClassSpecifier*)__ret); +} + +void CppSharp::Parser::AST::Class::addBases(CppSharp::Parser::AST::BaseClassSpecifier^ s) +{ + auto arg0 = (::CppSharp::CppParser::AST::BaseClassSpecifier*)s->NativePtr; + ((::CppSharp::CppParser::AST::Class*)NativePtr)->addBases(arg0); +} + +CppSharp::Parser::AST::Field^ CppSharp::Parser::AST::Class::getFields(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::Class*)NativePtr)->getFields(i); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Field((::CppSharp::CppParser::AST::Field*)__ret); +} + +void CppSharp::Parser::AST::Class::addFields(CppSharp::Parser::AST::Field^ s) +{ + auto arg0 = (::CppSharp::CppParser::AST::Field*)s->NativePtr; + ((::CppSharp::CppParser::AST::Class*)NativePtr)->addFields(arg0); +} + +CppSharp::Parser::AST::Method^ CppSharp::Parser::AST::Class::getMethods(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::Class*)NativePtr)->getMethods(i); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Method((::CppSharp::CppParser::AST::Method*)__ret); +} + +void CppSharp::Parser::AST::Class::addMethods(CppSharp::Parser::AST::Method^ s) +{ + auto arg0 = (::CppSharp::CppParser::AST::Method*)s->NativePtr; + ((::CppSharp::CppParser::AST::Class*)NativePtr)->addMethods(arg0); +} + +CppSharp::Parser::AST::AccessSpecifierDecl^ CppSharp::Parser::AST::Class::getSpecifiers(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::Class*)NativePtr)->getSpecifiers(i); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::AccessSpecifierDecl((::CppSharp::CppParser::AST::AccessSpecifierDecl*)__ret); +} + +void CppSharp::Parser::AST::Class::addSpecifiers(CppSharp::Parser::AST::AccessSpecifierDecl^ s) +{ + auto arg0 = (::CppSharp::CppParser::AST::AccessSpecifierDecl*)s->NativePtr; + ((::CppSharp::CppParser::AST::Class*)NativePtr)->addSpecifiers(arg0); +} + +unsigned int CppSharp::Parser::AST::Class::BasesCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::Class*)NativePtr)->getBasesCount(); + return __ret; +} + +unsigned int CppSharp::Parser::AST::Class::FieldsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::Class*)NativePtr)->getFieldsCount(); + return __ret; +} + +unsigned int CppSharp::Parser::AST::Class::MethodsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::Class*)NativePtr)->getMethodsCount(); + return __ret; +} + +unsigned int CppSharp::Parser::AST::Class::SpecifiersCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::Class*)NativePtr)->getSpecifiersCount(); + return __ret; +} + +bool CppSharp::Parser::AST::Class::IsPOD::get() +{ + return ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsPOD; +} + +void CppSharp::Parser::AST::Class::IsPOD::set(bool value) +{ + ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsPOD = value; +} + +bool CppSharp::Parser::AST::Class::IsAbstract::get() +{ + return ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsAbstract; +} + +void CppSharp::Parser::AST::Class::IsAbstract::set(bool value) +{ + ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsAbstract = value; +} + +bool CppSharp::Parser::AST::Class::IsUnion::get() +{ + return ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsUnion; +} + +void CppSharp::Parser::AST::Class::IsUnion::set(bool value) +{ + ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsUnion = value; +} + +bool CppSharp::Parser::AST::Class::IsDynamic::get() +{ + return ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsDynamic; +} + +void CppSharp::Parser::AST::Class::IsDynamic::set(bool value) +{ + ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsDynamic = value; +} + +bool CppSharp::Parser::AST::Class::IsPolymorphic::get() +{ + return ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsPolymorphic; +} + +void CppSharp::Parser::AST::Class::IsPolymorphic::set(bool value) +{ + ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsPolymorphic = value; +} + +bool CppSharp::Parser::AST::Class::HasNonTrivialDefaultConstructor::get() +{ + return ((::CppSharp::CppParser::AST::Class*)NativePtr)->HasNonTrivialDefaultConstructor; +} + +void CppSharp::Parser::AST::Class::HasNonTrivialDefaultConstructor::set(bool value) +{ + ((::CppSharp::CppParser::AST::Class*)NativePtr)->HasNonTrivialDefaultConstructor = value; +} + +bool CppSharp::Parser::AST::Class::HasNonTrivialCopyConstructor::get() +{ + return ((::CppSharp::CppParser::AST::Class*)NativePtr)->HasNonTrivialCopyConstructor; +} + +void CppSharp::Parser::AST::Class::HasNonTrivialCopyConstructor::set(bool value) +{ + ((::CppSharp::CppParser::AST::Class*)NativePtr)->HasNonTrivialCopyConstructor = value; +} + +bool CppSharp::Parser::AST::Class::HasNonTrivialDestructor::get() +{ + return ((::CppSharp::CppParser::AST::Class*)NativePtr)->HasNonTrivialDestructor; +} + +void CppSharp::Parser::AST::Class::HasNonTrivialDestructor::set(bool value) +{ + ((::CppSharp::CppParser::AST::Class*)NativePtr)->HasNonTrivialDestructor = value; +} + +bool CppSharp::Parser::AST::Class::IsExternCContext::get() +{ + return ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsExternCContext; +} + +void CppSharp::Parser::AST::Class::IsExternCContext::set(bool value) +{ + ((::CppSharp::CppParser::AST::Class*)NativePtr)->IsExternCContext = value; +} + +CppSharp::Parser::AST::ClassLayout^ CppSharp::Parser::AST::Class::Layout::get() +{ + return (((::CppSharp::CppParser::AST::Class*)NativePtr)->Layout == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ClassLayout((::CppSharp::CppParser::AST::ClassLayout*)((::CppSharp::CppParser::AST::Class*)NativePtr)->Layout); +} + +void CppSharp::Parser::AST::Class::Layout::set(CppSharp::Parser::AST::ClassLayout^ value) +{ + ((::CppSharp::CppParser::AST::Class*)NativePtr)->Layout = (::CppSharp::CppParser::AST::ClassLayout*)value->NativePtr; +} + +CppSharp::Parser::AST::Template::Template(::CppSharp::CppParser::AST::Template* native) + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) +{ +} + +CppSharp::Parser::AST::Template::Template(System::IntPtr native) + : CppSharp::Parser::AST::Declaration(native) +{ + auto __native = (::CppSharp::CppParser::AST::Template*)native.ToPointer(); +} + +CppSharp::Parser::AST::Template::Template(CppSharp::Parser::AST::DeclarationKind kind) + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) +{ + auto arg0 = (::CppSharp::CppParser::AST::DeclarationKind)kind; + NativePtr = new ::CppSharp::CppParser::AST::Template(arg0); +} + +CppSharp::Parser::AST::Template::Template() + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::Template(); +} + +CppSharp::Parser::AST::TemplateParameter^ CppSharp::Parser::AST::Template::getParameters(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::Template*)NativePtr)->getParameters(i); + auto ____ret = new ::CppSharp::CppParser::AST::TemplateParameter(__ret); + return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TemplateParameter((::CppSharp::CppParser::AST::TemplateParameter*)____ret); +} + +void CppSharp::Parser::AST::Template::addParameters(CppSharp::Parser::AST::TemplateParameter^ s) +{ + auto &arg0 = *(::CppSharp::CppParser::AST::TemplateParameter*)s->NativePtr; + ((::CppSharp::CppParser::AST::Template*)NativePtr)->addParameters(arg0); +} + +unsigned int CppSharp::Parser::AST::Template::ParametersCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::Template*)NativePtr)->getParametersCount(); + return __ret; +} + +CppSharp::Parser::AST::Declaration^ CppSharp::Parser::AST::Template::TemplatedDecl::get() +{ + return (((::CppSharp::CppParser::AST::Template*)NativePtr)->TemplatedDecl == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)((::CppSharp::CppParser::AST::Template*)NativePtr)->TemplatedDecl); +} + +void CppSharp::Parser::AST::Template::TemplatedDecl::set(CppSharp::Parser::AST::Declaration^ value) +{ + ((::CppSharp::CppParser::AST::Template*)NativePtr)->TemplatedDecl = (::CppSharp::CppParser::AST::Declaration*)value->NativePtr; +} + +CppSharp::Parser::AST::ClassTemplate::ClassTemplate(::CppSharp::CppParser::AST::ClassTemplate* native) + : CppSharp::Parser::AST::Template((::CppSharp::CppParser::AST::Template*)native) +{ +} + +CppSharp::Parser::AST::ClassTemplate::ClassTemplate(System::IntPtr native) + : CppSharp::Parser::AST::Template(native) +{ + auto __native = (::CppSharp::CppParser::AST::ClassTemplate*)native.ToPointer(); +} + +CppSharp::Parser::AST::ClassTemplate::ClassTemplate() + : CppSharp::Parser::AST::Template((::CppSharp::CppParser::AST::Template*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::ClassTemplate(); +} + +CppSharp::Parser::AST::ClassTemplateSpecialization^ CppSharp::Parser::AST::ClassTemplate::getSpecializations(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->getSpecializations(i); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ClassTemplateSpecialization((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)__ret); +} + +void CppSharp::Parser::AST::ClassTemplate::addSpecializations(CppSharp::Parser::AST::ClassTemplateSpecialization^ s) +{ + auto arg0 = (::CppSharp::CppParser::AST::ClassTemplateSpecialization*)s->NativePtr; + ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->addSpecializations(arg0); +} + +CppSharp::Parser::AST::ClassTemplateSpecialization^ CppSharp::Parser::AST::ClassTemplate::FindSpecialization(void* ptr) +{ + auto arg0 = (void*)ptr; + auto __ret = ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->FindSpecialization(arg0); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ClassTemplateSpecialization((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)__ret); +} + +CppSharp::Parser::AST::ClassTemplateSpecialization^ CppSharp::Parser::AST::ClassTemplate::FindSpecialization(CppSharp::Parser::AST::TemplateSpecializationType^ type) +{ + auto arg0 = *(::CppSharp::CppParser::AST::TemplateSpecializationType*)type->NativePtr; + auto __ret = ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->FindSpecialization(arg0); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ClassTemplateSpecialization((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)__ret); +} + +CppSharp::Parser::AST::ClassTemplatePartialSpecialization^ CppSharp::Parser::AST::ClassTemplate::FindPartialSpecialization(void* ptr) +{ + auto arg0 = (void*)ptr; + auto __ret = ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->FindPartialSpecialization(arg0); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ClassTemplatePartialSpecialization((::CppSharp::CppParser::AST::ClassTemplatePartialSpecialization*)__ret); +} + +CppSharp::Parser::AST::ClassTemplatePartialSpecialization^ CppSharp::Parser::AST::ClassTemplate::FindPartialSpecialization(CppSharp::Parser::AST::TemplateSpecializationType^ type) +{ + auto arg0 = *(::CppSharp::CppParser::AST::TemplateSpecializationType*)type->NativePtr; + auto __ret = ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->FindPartialSpecialization(arg0); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ClassTemplatePartialSpecialization((::CppSharp::CppParser::AST::ClassTemplatePartialSpecialization*)__ret); +} + +unsigned int CppSharp::Parser::AST::ClassTemplate::SpecializationsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->getSpecializationsCount(); + return __ret; +} + +CppSharp::Parser::AST::ClassTemplateSpecialization::ClassTemplateSpecialization(::CppSharp::CppParser::AST::ClassTemplateSpecialization* native) + : CppSharp::Parser::AST::Class((::CppSharp::CppParser::AST::Class*)native) +{ +} + +CppSharp::Parser::AST::ClassTemplateSpecialization::ClassTemplateSpecialization(System::IntPtr native) + : CppSharp::Parser::AST::Class(native) +{ + auto __native = (::CppSharp::CppParser::AST::ClassTemplateSpecialization*)native.ToPointer(); +} + +CppSharp::Parser::AST::ClassTemplateSpecialization::ClassTemplateSpecialization() + : CppSharp::Parser::AST::Class((::CppSharp::CppParser::AST::Class*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::ClassTemplateSpecialization(); +} + +CppSharp::Parser::AST::TemplateArgument^ CppSharp::Parser::AST::ClassTemplateSpecialization::getArguments(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->getArguments(i); + auto ____ret = new ::CppSharp::CppParser::AST::TemplateArgument(__ret); + return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TemplateArgument((::CppSharp::CppParser::AST::TemplateArgument*)____ret); +} + +void CppSharp::Parser::AST::ClassTemplateSpecialization::addArguments(CppSharp::Parser::AST::TemplateArgument^ s) +{ + auto &arg0 = *(::CppSharp::CppParser::AST::TemplateArgument*)s->NativePtr; + ((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->addArguments(arg0); +} + +unsigned int CppSharp::Parser::AST::ClassTemplateSpecialization::ArgumentsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->getArgumentsCount(); + return __ret; +} + +CppSharp::Parser::AST::ClassTemplate^ CppSharp::Parser::AST::ClassTemplateSpecialization::TemplatedDecl::get() +{ + return (((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->TemplatedDecl == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ClassTemplate((::CppSharp::CppParser::AST::ClassTemplate*)((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->TemplatedDecl); +} + +void CppSharp::Parser::AST::ClassTemplateSpecialization::TemplatedDecl::set(CppSharp::Parser::AST::ClassTemplate^ value) +{ + ((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->TemplatedDecl = (::CppSharp::CppParser::AST::ClassTemplate*)value->NativePtr; +} + +CppSharp::Parser::AST::TemplateSpecializationKind CppSharp::Parser::AST::ClassTemplateSpecialization::SpecializationKind::get() +{ + return (CppSharp::Parser::AST::TemplateSpecializationKind)((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->SpecializationKind; +} + +void CppSharp::Parser::AST::ClassTemplateSpecialization::SpecializationKind::set(CppSharp::Parser::AST::TemplateSpecializationKind value) +{ + ((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->SpecializationKind = (::CppSharp::CppParser::AST::TemplateSpecializationKind)value; +} + +CppSharp::Parser::AST::ClassTemplatePartialSpecialization::ClassTemplatePartialSpecialization(::CppSharp::CppParser::AST::ClassTemplatePartialSpecialization* native) + : CppSharp::Parser::AST::ClassTemplateSpecialization((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)native) +{ +} + +CppSharp::Parser::AST::ClassTemplatePartialSpecialization::ClassTemplatePartialSpecialization(System::IntPtr native) + : CppSharp::Parser::AST::ClassTemplateSpecialization(native) +{ + auto __native = (::CppSharp::CppParser::AST::ClassTemplatePartialSpecialization*)native.ToPointer(); +} + +CppSharp::Parser::AST::ClassTemplatePartialSpecialization::ClassTemplatePartialSpecialization() + : CppSharp::Parser::AST::ClassTemplateSpecialization((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::ClassTemplatePartialSpecialization(); +} + +CppSharp::Parser::AST::FunctionTemplate::FunctionTemplate(::CppSharp::CppParser::AST::FunctionTemplate* native) + : CppSharp::Parser::AST::Template((::CppSharp::CppParser::AST::Template*)native) +{ +} + +CppSharp::Parser::AST::FunctionTemplate::FunctionTemplate(System::IntPtr native) + : CppSharp::Parser::AST::Template(native) +{ + auto __native = (::CppSharp::CppParser::AST::FunctionTemplate*)native.ToPointer(); +} + +CppSharp::Parser::AST::FunctionTemplate::FunctionTemplate() + : CppSharp::Parser::AST::Template((::CppSharp::CppParser::AST::Template*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::FunctionTemplate(); +} + +CppSharp::Parser::AST::Namespace::Namespace(::CppSharp::CppParser::AST::Namespace* native) + : CppSharp::Parser::AST::DeclarationContext((::CppSharp::CppParser::AST::DeclarationContext*)native) +{ +} + +CppSharp::Parser::AST::Namespace::Namespace(System::IntPtr native) + : CppSharp::Parser::AST::DeclarationContext(native) +{ + auto __native = (::CppSharp::CppParser::AST::Namespace*)native.ToPointer(); +} + +CppSharp::Parser::AST::Namespace::Namespace() + : CppSharp::Parser::AST::DeclarationContext((::CppSharp::CppParser::AST::DeclarationContext*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::Namespace(); +} + +bool CppSharp::Parser::AST::Namespace::IsInline::get() +{ + return ((::CppSharp::CppParser::AST::Namespace*)NativePtr)->IsInline; +} + +void CppSharp::Parser::AST::Namespace::IsInline::set(bool value) +{ + ((::CppSharp::CppParser::AST::Namespace*)NativePtr)->IsInline = value; +} + +CppSharp::Parser::AST::PreprocessedEntity::PreprocessedEntity(::CppSharp::CppParser::AST::PreprocessedEntity* native) + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) +{ +} + +CppSharp::Parser::AST::PreprocessedEntity::PreprocessedEntity(System::IntPtr native) + : CppSharp::Parser::AST::Declaration(native) +{ + auto __native = (::CppSharp::CppParser::AST::PreprocessedEntity*)native.ToPointer(); +} + +CppSharp::Parser::AST::PreprocessedEntity::PreprocessedEntity() + : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::PreprocessedEntity(); +} + +CppSharp::Parser::AST::MacroLocation CppSharp::Parser::AST::PreprocessedEntity::Location::get() +{ + return (CppSharp::Parser::AST::MacroLocation)((::CppSharp::CppParser::AST::PreprocessedEntity*)NativePtr)->Location; +} + +void CppSharp::Parser::AST::PreprocessedEntity::Location::set(CppSharp::Parser::AST::MacroLocation value) +{ + ((::CppSharp::CppParser::AST::PreprocessedEntity*)NativePtr)->Location = (::CppSharp::CppParser::AST::MacroLocation)value; +} + +CppSharp::Parser::AST::MacroDefinition::MacroDefinition(::CppSharp::CppParser::AST::MacroDefinition* native) + : CppSharp::Parser::AST::PreprocessedEntity((::CppSharp::CppParser::AST::PreprocessedEntity*)native) +{ +} + +CppSharp::Parser::AST::MacroDefinition::MacroDefinition(System::IntPtr native) + : CppSharp::Parser::AST::PreprocessedEntity(native) +{ + auto __native = (::CppSharp::CppParser::AST::MacroDefinition*)native.ToPointer(); +} + +CppSharp::Parser::AST::MacroDefinition::MacroDefinition() + : CppSharp::Parser::AST::PreprocessedEntity((::CppSharp::CppParser::AST::PreprocessedEntity*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::MacroDefinition(); +} + +System::String^ CppSharp::Parser::AST::MacroDefinition::Expression::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::MacroDefinition*)NativePtr)->getExpression(); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::AST::MacroDefinition::Expression::set(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::AST::MacroDefinition*)NativePtr)->setExpression(arg0); +} + +CppSharp::Parser::AST::MacroExpansion::MacroExpansion(::CppSharp::CppParser::AST::MacroExpansion* native) + : CppSharp::Parser::AST::PreprocessedEntity((::CppSharp::CppParser::AST::PreprocessedEntity*)native) +{ +} + +CppSharp::Parser::AST::MacroExpansion::MacroExpansion(System::IntPtr native) + : CppSharp::Parser::AST::PreprocessedEntity(native) +{ + auto __native = (::CppSharp::CppParser::AST::MacroExpansion*)native.ToPointer(); +} + +CppSharp::Parser::AST::MacroExpansion::MacroExpansion() + : CppSharp::Parser::AST::PreprocessedEntity((::CppSharp::CppParser::AST::PreprocessedEntity*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::MacroExpansion(); +} + +System::String^ CppSharp::Parser::AST::MacroExpansion::Text::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::MacroExpansion*)NativePtr)->getText(); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::AST::MacroExpansion::Text::set(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::AST::MacroExpansion*)NativePtr)->setText(arg0); +} + +CppSharp::Parser::AST::MacroDefinition^ CppSharp::Parser::AST::MacroExpansion::Definition::get() +{ + return (((::CppSharp::CppParser::AST::MacroExpansion*)NativePtr)->Definition == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::MacroDefinition((::CppSharp::CppParser::AST::MacroDefinition*)((::CppSharp::CppParser::AST::MacroExpansion*)NativePtr)->Definition); +} + +void CppSharp::Parser::AST::MacroExpansion::Definition::set(CppSharp::Parser::AST::MacroDefinition^ value) +{ + ((::CppSharp::CppParser::AST::MacroExpansion*)NativePtr)->Definition = (::CppSharp::CppParser::AST::MacroDefinition*)value->NativePtr; +} + +CppSharp::Parser::AST::TranslationUnit::TranslationUnit(::CppSharp::CppParser::AST::TranslationUnit* native) + : CppSharp::Parser::AST::Namespace((::CppSharp::CppParser::AST::Namespace*)native) +{ +} + +CppSharp::Parser::AST::TranslationUnit::TranslationUnit(System::IntPtr native) + : CppSharp::Parser::AST::Namespace(native) +{ + auto __native = (::CppSharp::CppParser::AST::TranslationUnit*)native.ToPointer(); +} + +CppSharp::Parser::AST::TranslationUnit::TranslationUnit() + : CppSharp::Parser::AST::Namespace((::CppSharp::CppParser::AST::Namespace*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::TranslationUnit(); +} + +CppSharp::Parser::AST::MacroDefinition^ CppSharp::Parser::AST::TranslationUnit::getMacros(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::TranslationUnit*)NativePtr)->getMacros(i); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::MacroDefinition((::CppSharp::CppParser::AST::MacroDefinition*)__ret); +} + +void CppSharp::Parser::AST::TranslationUnit::addMacros(CppSharp::Parser::AST::MacroDefinition^ s) +{ + auto arg0 = (::CppSharp::CppParser::AST::MacroDefinition*)s->NativePtr; + ((::CppSharp::CppParser::AST::TranslationUnit*)NativePtr)->addMacros(arg0); +} + +System::String^ CppSharp::Parser::AST::TranslationUnit::FileName::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::TranslationUnit*)NativePtr)->getFileName(); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::AST::TranslationUnit::FileName::set(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::AST::TranslationUnit*)NativePtr)->setFileName(arg0); +} + +unsigned int CppSharp::Parser::AST::TranslationUnit::MacrosCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::TranslationUnit*)NativePtr)->getMacrosCount(); + return __ret; +} + +bool CppSharp::Parser::AST::TranslationUnit::IsSystemHeader::get() +{ + return ((::CppSharp::CppParser::AST::TranslationUnit*)NativePtr)->IsSystemHeader; +} + +void CppSharp::Parser::AST::TranslationUnit::IsSystemHeader::set(bool value) +{ + ((::CppSharp::CppParser::AST::TranslationUnit*)NativePtr)->IsSystemHeader = value; +} + +CppSharp::Parser::AST::NativeLibrary::NativeLibrary(::CppSharp::CppParser::AST::NativeLibrary* native) +{ + NativePtr = native; +} + +CppSharp::Parser::AST::NativeLibrary::NativeLibrary(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::AST::NativeLibrary*)native.ToPointer(); + NativePtr = __native; +} + +System::String^ CppSharp::Parser::AST::NativeLibrary::getSymbols(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::NativeLibrary*)NativePtr)->getSymbols(i); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::AST::NativeLibrary::addSymbols(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::AST::NativeLibrary*)NativePtr)->addSymbols(arg0); +} + +CppSharp::Parser::AST::NativeLibrary::NativeLibrary() +{ + NativePtr = new ::CppSharp::CppParser::AST::NativeLibrary(); +} + +System::IntPtr CppSharp::Parser::AST::NativeLibrary::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::AST::NativeLibrary::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::AST::NativeLibrary*)object.ToPointer(); +} + +System::String^ CppSharp::Parser::AST::NativeLibrary::FileName::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::NativeLibrary*)NativePtr)->getFileName(); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::AST::NativeLibrary::FileName::set(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::AST::NativeLibrary*)NativePtr)->setFileName(arg0); +} + +unsigned int CppSharp::Parser::AST::NativeLibrary::SymbolsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::NativeLibrary*)NativePtr)->getSymbolsCount(); + return __ret; +} + +CppSharp::Parser::AST::ASTContext::ASTContext(::CppSharp::CppParser::AST::ASTContext* native) +{ + NativePtr = native; +} + +CppSharp::Parser::AST::ASTContext::ASTContext(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::AST::ASTContext*)native.ToPointer(); + NativePtr = __native; +} + +CppSharp::Parser::AST::ASTContext::ASTContext() +{ + NativePtr = new ::CppSharp::CppParser::AST::ASTContext(); +} + +CppSharp::Parser::AST::TranslationUnit^ CppSharp::Parser::AST::ASTContext::getTranslationUnits(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::ASTContext*)NativePtr)->getTranslationUnits(i); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TranslationUnit((::CppSharp::CppParser::AST::TranslationUnit*)__ret); +} + +void CppSharp::Parser::AST::ASTContext::addTranslationUnits(CppSharp::Parser::AST::TranslationUnit^ s) +{ + auto arg0 = (::CppSharp::CppParser::AST::TranslationUnit*)s->NativePtr; + ((::CppSharp::CppParser::AST::ASTContext*)NativePtr)->addTranslationUnits(arg0); +} + +System::IntPtr CppSharp::Parser::AST::ASTContext::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::AST::ASTContext::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::AST::ASTContext*)object.ToPointer(); +} + +unsigned int CppSharp::Parser::AST::ASTContext::TranslationUnitsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::ASTContext*)NativePtr)->getTranslationUnitsCount(); + return __ret; +} + +CppSharp::Parser::AST::Comment::Comment(::CppSharp::CppParser::AST::Comment* native) +{ + NativePtr = native; +} + +CppSharp::Parser::AST::Comment::Comment(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::AST::Comment*)native.ToPointer(); + NativePtr = __native; +} + +CppSharp::Parser::AST::Comment::Comment(CppSharp::Parser::AST::CommentKind kind) +{ + auto arg0 = (::CppSharp::CppParser::AST::CommentKind)kind; + NativePtr = new ::CppSharp::CppParser::AST::Comment(arg0); +} + +System::IntPtr CppSharp::Parser::AST::Comment::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::AST::Comment::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::AST::Comment*)object.ToPointer(); +} + +CppSharp::Parser::AST::CommentKind CppSharp::Parser::AST::Comment::Kind::get() +{ + return (CppSharp::Parser::AST::CommentKind)((::CppSharp::CppParser::AST::Comment*)NativePtr)->Kind; +} + +void CppSharp::Parser::AST::Comment::Kind::set(CppSharp::Parser::AST::CommentKind value) +{ + ((::CppSharp::CppParser::AST::Comment*)NativePtr)->Kind = (::CppSharp::CppParser::AST::CommentKind)value; +} + +CppSharp::Parser::AST::FullComment::FullComment(::CppSharp::CppParser::AST::FullComment* native) + : CppSharp::Parser::AST::Comment((::CppSharp::CppParser::AST::Comment*)native) +{ +} + +CppSharp::Parser::AST::FullComment::FullComment(System::IntPtr native) + : CppSharp::Parser::AST::Comment(native) +{ + auto __native = (::CppSharp::CppParser::AST::FullComment*)native.ToPointer(); +} + +CppSharp::Parser::AST::FullComment::FullComment() + : CppSharp::Parser::AST::Comment((::CppSharp::CppParser::AST::Comment*)nullptr) +{ + NativePtr = new ::CppSharp::CppParser::AST::FullComment(); +} + +CppSharp::Parser::AST::RawComment::RawComment(::CppSharp::CppParser::AST::RawComment* native) +{ + NativePtr = native; +} + +CppSharp::Parser::AST::RawComment::RawComment(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::AST::RawComment*)native.ToPointer(); + NativePtr = __native; +} + +CppSharp::Parser::AST::RawComment::RawComment() +{ + NativePtr = new ::CppSharp::CppParser::AST::RawComment(); +} + +System::IntPtr CppSharp::Parser::AST::RawComment::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::AST::RawComment::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::AST::RawComment*)object.ToPointer(); +} + +System::String^ CppSharp::Parser::AST::RawComment::Text::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::RawComment*)NativePtr)->getText(); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::AST::RawComment::Text::set(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::AST::RawComment*)NativePtr)->setText(arg0); +} + +System::String^ CppSharp::Parser::AST::RawComment::BriefText::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::RawComment*)NativePtr)->getBriefText(); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::AST::RawComment::BriefText::set(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::AST::RawComment*)NativePtr)->setBriefText(arg0); +} + +CppSharp::Parser::AST::RawCommentKind CppSharp::Parser::AST::RawComment::RawCommentKind::get() +{ + return (CppSharp::Parser::AST::RawCommentKind)((::CppSharp::CppParser::AST::RawComment*)NativePtr)->RawCommentKind; +} + +void CppSharp::Parser::AST::RawComment::RawCommentKind::set(CppSharp::Parser::AST::RawCommentKind value) +{ + ((::CppSharp::CppParser::AST::RawComment*)NativePtr)->RawCommentKind = (::CppSharp::CppParser::AST::RawCommentKind)value; +} + +CppSharp::Parser::AST::FullComment^ CppSharp::Parser::AST::RawComment::FullComment::get() +{ + return (((::CppSharp::CppParser::AST::RawComment*)NativePtr)->FullComment == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::FullComment((::CppSharp::CppParser::AST::FullComment*)((::CppSharp::CppParser::AST::RawComment*)NativePtr)->FullComment); +} + +void CppSharp::Parser::AST::RawComment::FullComment::set(CppSharp::Parser::AST::FullComment^ value) +{ + ((::CppSharp::CppParser::AST::RawComment*)NativePtr)->FullComment = (::CppSharp::CppParser::AST::FullComment*)value->NativePtr; +} + diff --git a/src/CppParser/Bindings/CLI/AST.h b/src/CppParser/Bindings/CLI/AST.h index dbea40f0..dcd337d2 100644 --- a/src/CppParser/Bindings/CLI/AST.h +++ b/src/CppParser/Bindings/CLI/AST.h @@ -1,1875 +1,1875 @@ -#pragma once - -#include "CppSharp.h" -#include - -namespace CppSharp -{ - namespace Parser - { - namespace AST - { - enum struct AccessSpecifier; - enum struct CXXMethodKind; - enum struct CXXOperatorKind; - enum struct CallingConvention; - enum struct CommentKind; - enum struct CppAbi; - enum struct DeclarationKind; - enum struct MacroLocation; - enum struct PrimitiveType; - enum struct RawCommentKind; - enum struct TemplateSpecializationKind; - enum struct TypeKind; - enum struct VTableComponentKind; - ref class ASTContext; - ref class AccessSpecifierDecl; - ref class ArrayType; - ref class AttributedType; - ref class BaseClassSpecifier; - ref class BuiltinType; - ref class Class; - ref class ClassLayout; - ref class ClassTemplate; - ref class ClassTemplatePartialSpecialization; - ref class ClassTemplateSpecialization; - ref class Comment; - ref class DecayedType; - ref class Declaration; - ref class DeclarationContext; - ref class DependentNameType; - ref class Enumeration; - ref class Field; - ref class FullComment; - ref class Function; - ref class FunctionTemplate; - ref class FunctionType; - ref class InjectedClassNameType; - ref class MacroDefinition; - ref class MacroExpansion; - ref class MemberPointerType; - ref class Method; - ref class Namespace; - ref class NativeLibrary; - ref class PackExpansionType; - ref class Parameter; - ref class PointerType; - ref class PreprocessedEntity; - ref class QualifiedType; - ref class RawComment; - ref class TagType; - ref class Template; - ref class TemplateArgument; - ref class TemplateParameter; - ref class TemplateParameterSubstitutionType; - ref class TemplateParameterType; - ref class TemplateSpecializationType; - ref class TranslationUnit; - ref class Type; - ref class TypeQualifiers; - ref class TypedefDecl; - ref class TypedefType; - ref class VFTableInfo; - ref class VTableComponent; - ref class VTableLayout; - ref class Variable; - } - } -} - -namespace CppSharp -{ - namespace Parser - { - namespace AST - { - public enum struct TypeKind - { - Tag = 0, - Array = 1, - Function = 2, - Pointer = 3, - MemberPointer = 4, - Typedef = 5, - Attributed = 6, - Decayed = 7, - TemplateSpecialization = 8, - TemplateParameter = 9, - TemplateParameterSubstitution = 10, - InjectedClassName = 11, - DependentName = 12, - PackExpansion = 13, - Builtin = 14 - }; - - public enum struct DeclarationKind - { - DeclarationContext = 0, - Typedef = 1, - Parameter = 2, - Function = 3, - Method = 4, - Enumeration = 5, - EnumerationItem = 6, - Variable = 7, - Field = 8, - AccessSpecifier = 9, - Class = 10, - Template = 11, - ClassTemplate = 12, - ClassTemplateSpecialization = 13, - ClassTemplatePartialSpecialization = 14, - FunctionTemplate = 15, - Namespace = 16, - PreprocessedEntity = 17, - MacroDefinition = 18, - MacroExpansion = 19, - TranslationUnit = 20 - }; - - public enum struct AccessSpecifier - { - Private = 0, - Protected = 1, - Public = 2 - }; - - public enum struct CXXMethodKind - { - Normal = 0, - Constructor = 1, - Destructor = 2, - Conversion = 3, - Operator = 4, - UsingDirective = 5 - }; - - public enum struct CXXOperatorKind - { - None = 0, - New = 1, - Delete = 2, - Array_New = 3, - Array_Delete = 4, - Plus = 5, - Minus = 6, - Star = 7, - Slash = 8, - Percent = 9, - Caret = 10, - Amp = 11, - Pipe = 12, - Tilde = 13, - Exclaim = 14, - Equal = 15, - Less = 16, - Greater = 17, - PlusEqual = 18, - MinusEqual = 19, - StarEqual = 20, - SlashEqual = 21, - PercentEqual = 22, - CaretEqual = 23, - AmpEqual = 24, - PipeEqual = 25, - LessLess = 26, - GreaterGreater = 27, - LessLessEqual = 28, - GreaterGreaterEqual = 29, - EqualEqual = 30, - ExclaimEqual = 31, - LessEqual = 32, - GreaterEqual = 33, - AmpAmp = 34, - PipePipe = 35, - PlusPlus = 36, - MinusMinus = 37, - Comma = 38, - ArrowStar = 39, - Arrow = 40, - Call = 41, - Subscript = 42, - Conditional = 43 - }; - - public enum struct CallingConvention - { - Default = 0, - C = 1, - StdCall = 2, - ThisCall = 3, - FastCall = 4, - Unknown = 5 - }; - - public enum struct CppAbi - { - Itanium = 0, - Microsoft = 1, - ARM = 2 - }; - - public enum struct VTableComponentKind - { - VCallOffset = 0, - VBaseOffset = 1, - OffsetToTop = 2, - RTTI = 3, - FunctionPointer = 4, - CompleteDtorPointer = 5, - DeletingDtorPointer = 6, - UnusedFunctionPointer = 7 - }; - - public enum struct TemplateSpecializationKind - { - Undeclared = 0, - ImplicitInstantiation = 1, - ExplicitSpecialization = 2, - ExplicitInstantiationDeclaration = 3, - ExplicitInstantiationDefinition = 4 - }; - - public enum struct PrimitiveType - { - Null = 0, - Void = 1, - Bool = 2, - WideChar = 3, - Int8 = 4, - Char = 4, - UInt8 = 5, - UChar = 5, - Int16 = 6, - UInt16 = 7, - Int32 = 8, - UInt32 = 9, - Int64 = 10, - UInt64 = 11, - Float = 12, - Double = 13, - IntPtr = 14 - }; - - public enum struct RawCommentKind - { - Invalid = 0, - OrdinaryBCPL = 1, - OrdinaryC = 2, - BCPLSlash = 3, - BCPLExcl = 4, - JavaDoc = 5, - Qt = 6, - Merged = 7 - }; - - public enum struct CommentKind - { - FullComment = 0 - }; - - public enum struct MacroLocation - { - Unknown = 0, - ClassHead = 1, - ClassBody = 2, - FunctionHead = 3, - FunctionParameters = 4, - FunctionBody = 5 - }; - - public ref class Type : ICppInstance - { - public: - - property ::CppSharp::CppParser::AST::Type* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - Type(::CppSharp::CppParser::AST::Type* native); - Type(System::IntPtr native); - Type(CppSharp::Parser::AST::TypeKind kind); - - property CppSharp::Parser::AST::TypeKind Kind - { - CppSharp::Parser::AST::TypeKind get(); - void set(CppSharp::Parser::AST::TypeKind); - } - - property bool IsDependent - { - bool get(); - void set(bool); - } - }; - - public ref class TypeQualifiers : ICppInstance - { - public: - - property ::CppSharp::CppParser::AST::TypeQualifiers* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - TypeQualifiers(::CppSharp::CppParser::AST::TypeQualifiers* native); - TypeQualifiers(System::IntPtr native); - TypeQualifiers(); - - property bool IsConst - { - bool get(); - void set(bool); - } - - property bool IsVolatile - { - bool get(); - void set(bool); - } - - property bool IsRestrict - { - bool get(); - void set(bool); - } - }; - - public ref class QualifiedType : ICppInstance - { - public: - - property ::CppSharp::CppParser::AST::QualifiedType* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - QualifiedType(::CppSharp::CppParser::AST::QualifiedType* native); - QualifiedType(System::IntPtr native); - QualifiedType(); - - property CppSharp::Parser::AST::Type^ Type - { - CppSharp::Parser::AST::Type^ get(); - void set(CppSharp::Parser::AST::Type^); - } - - property CppSharp::Parser::AST::TypeQualifiers^ Qualifiers - { - CppSharp::Parser::AST::TypeQualifiers^ get(); - void set(CppSharp::Parser::AST::TypeQualifiers^); - } - }; - - public ref class TagType : CppSharp::Parser::AST::Type - { - public: - - TagType(::CppSharp::CppParser::AST::TagType* native); - TagType(System::IntPtr native); - TagType(); - - property CppSharp::Parser::AST::Declaration^ Declaration - { - CppSharp::Parser::AST::Declaration^ get(); - void set(CppSharp::Parser::AST::Declaration^); - } - }; - - public ref class ArrayType : CppSharp::Parser::AST::Type - { - public: - - enum struct ArraySize - { - Constant = 0, - Variable = 1, - Dependent = 2, - Incomplete = 3 - }; - - ArrayType(::CppSharp::CppParser::AST::ArrayType* native); - ArrayType(System::IntPtr native); - ArrayType(); - - property CppSharp::Parser::AST::QualifiedType^ QualifiedType - { - CppSharp::Parser::AST::QualifiedType^ get(); - void set(CppSharp::Parser::AST::QualifiedType^); - } - - property CppSharp::Parser::AST::ArrayType::ArraySize SizeType - { - CppSharp::Parser::AST::ArrayType::ArraySize get(); - void set(CppSharp::Parser::AST::ArrayType::ArraySize); - } - - property int Size - { - int get(); - void set(int); - } - }; - - public ref class FunctionType : CppSharp::Parser::AST::Type - { - public: - - FunctionType(::CppSharp::CppParser::AST::FunctionType* native); - FunctionType(System::IntPtr native); - FunctionType(); - - property unsigned int ParametersCount - { - unsigned int get(); - } - - property CppSharp::Parser::AST::QualifiedType^ ReturnType - { - CppSharp::Parser::AST::QualifiedType^ get(); - void set(CppSharp::Parser::AST::QualifiedType^); - } - - property CppSharp::Parser::AST::CallingConvention CallingConvention - { - CppSharp::Parser::AST::CallingConvention get(); - void set(CppSharp::Parser::AST::CallingConvention); - } - - CppSharp::Parser::AST::Parameter^ getParameters(unsigned int i); - - void addParameters(CppSharp::Parser::AST::Parameter^ s); - }; - - public ref class PointerType : CppSharp::Parser::AST::Type - { - public: - - enum struct TypeModifier - { - Value = 0, - Pointer = 1, - LVReference = 2, - RVReference = 3 - }; - - PointerType(::CppSharp::CppParser::AST::PointerType* native); - PointerType(System::IntPtr native); - PointerType(); - - property CppSharp::Parser::AST::QualifiedType^ QualifiedPointee - { - CppSharp::Parser::AST::QualifiedType^ get(); - void set(CppSharp::Parser::AST::QualifiedType^); - } - - property CppSharp::Parser::AST::PointerType::TypeModifier Modifier - { - CppSharp::Parser::AST::PointerType::TypeModifier get(); - void set(CppSharp::Parser::AST::PointerType::TypeModifier); - } - }; - - public ref class MemberPointerType : CppSharp::Parser::AST::Type - { - public: - - MemberPointerType(::CppSharp::CppParser::AST::MemberPointerType* native); - MemberPointerType(System::IntPtr native); - MemberPointerType(); - - property CppSharp::Parser::AST::QualifiedType^ Pointee - { - CppSharp::Parser::AST::QualifiedType^ get(); - void set(CppSharp::Parser::AST::QualifiedType^); - } - }; - - public ref class TypedefType : CppSharp::Parser::AST::Type - { - public: - - TypedefType(::CppSharp::CppParser::AST::TypedefType* native); - TypedefType(System::IntPtr native); - TypedefType(); - - property CppSharp::Parser::AST::TypedefDecl^ Declaration - { - CppSharp::Parser::AST::TypedefDecl^ get(); - void set(CppSharp::Parser::AST::TypedefDecl^); - } - }; - - public ref class AttributedType : CppSharp::Parser::AST::Type - { - public: - - AttributedType(::CppSharp::CppParser::AST::AttributedType* native); - AttributedType(System::IntPtr native); - AttributedType(); - - property CppSharp::Parser::AST::QualifiedType^ Modified - { - CppSharp::Parser::AST::QualifiedType^ get(); - void set(CppSharp::Parser::AST::QualifiedType^); - } - - property CppSharp::Parser::AST::QualifiedType^ Equivalent - { - CppSharp::Parser::AST::QualifiedType^ get(); - void set(CppSharp::Parser::AST::QualifiedType^); - } - }; - - public ref class DecayedType : CppSharp::Parser::AST::Type - { - public: - - DecayedType(::CppSharp::CppParser::AST::DecayedType* native); - DecayedType(System::IntPtr native); - DecayedType(); - - property CppSharp::Parser::AST::QualifiedType^ Decayed - { - CppSharp::Parser::AST::QualifiedType^ get(); - void set(CppSharp::Parser::AST::QualifiedType^); - } - - property CppSharp::Parser::AST::QualifiedType^ Original - { - CppSharp::Parser::AST::QualifiedType^ get(); - void set(CppSharp::Parser::AST::QualifiedType^); - } - - property CppSharp::Parser::AST::QualifiedType^ Pointee - { - CppSharp::Parser::AST::QualifiedType^ get(); - void set(CppSharp::Parser::AST::QualifiedType^); - } - }; - - public ref class TemplateArgument : ICppInstance - { - public: - - enum struct ArgumentKind - { - Type = 0, - Declaration = 1, - NullPtr = 2, - Integral = 3, - Template = 4, - TemplateExpansion = 5, - Expression = 6, - Pack = 7 - }; - - property ::CppSharp::CppParser::AST::TemplateArgument* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - TemplateArgument(::CppSharp::CppParser::AST::TemplateArgument* native); - TemplateArgument(System::IntPtr native); - TemplateArgument(); - - property CppSharp::Parser::AST::TemplateArgument::ArgumentKind Kind - { - CppSharp::Parser::AST::TemplateArgument::ArgumentKind get(); - void set(CppSharp::Parser::AST::TemplateArgument::ArgumentKind); - } - - property CppSharp::Parser::AST::QualifiedType^ Type - { - CppSharp::Parser::AST::QualifiedType^ get(); - void set(CppSharp::Parser::AST::QualifiedType^); - } - - property CppSharp::Parser::AST::Declaration^ Declaration - { - CppSharp::Parser::AST::Declaration^ get(); - void set(CppSharp::Parser::AST::Declaration^); - } - - property int Integral - { - int get(); - void set(int); - } - }; - - public ref class TemplateSpecializationType : CppSharp::Parser::AST::Type - { - public: - - TemplateSpecializationType(::CppSharp::CppParser::AST::TemplateSpecializationType* native); - TemplateSpecializationType(System::IntPtr native); - TemplateSpecializationType(); - - property unsigned int ArgumentsCount - { - unsigned int get(); - } - - property CppSharp::Parser::AST::Template^ Template - { - CppSharp::Parser::AST::Template^ get(); - void set(CppSharp::Parser::AST::Template^); - } - - property CppSharp::Parser::AST::Type^ Desugared - { - CppSharp::Parser::AST::Type^ get(); - void set(CppSharp::Parser::AST::Type^); - } - - CppSharp::Parser::AST::TemplateArgument^ getArguments(unsigned int i); - - void addArguments(CppSharp::Parser::AST::TemplateArgument^ s); - }; - - public ref class TemplateParameter : ICppInstance - { - public: - - property ::CppSharp::CppParser::AST::TemplateParameter* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - TemplateParameter(::CppSharp::CppParser::AST::TemplateParameter* native); - TemplateParameter(System::IntPtr native); - TemplateParameter(); - - property System::String^ Name - { - System::String^ get(); - void set(System::String^); - } - - static bool operator==(CppSharp::Parser::AST::TemplateParameter^ __op, CppSharp::Parser::AST::TemplateParameter^ param); - }; - - public ref class TemplateParameterType : CppSharp::Parser::AST::Type - { - public: - - TemplateParameterType(::CppSharp::CppParser::AST::TemplateParameterType* native); - TemplateParameterType(System::IntPtr native); - TemplateParameterType(); - - property CppSharp::Parser::AST::TemplateParameter^ Parameter - { - CppSharp::Parser::AST::TemplateParameter^ get(); - void set(CppSharp::Parser::AST::TemplateParameter^); - } - }; - - public ref class TemplateParameterSubstitutionType : CppSharp::Parser::AST::Type - { - public: - - TemplateParameterSubstitutionType(::CppSharp::CppParser::AST::TemplateParameterSubstitutionType* native); - TemplateParameterSubstitutionType(System::IntPtr native); - TemplateParameterSubstitutionType(); - - property CppSharp::Parser::AST::QualifiedType^ Replacement - { - CppSharp::Parser::AST::QualifiedType^ get(); - void set(CppSharp::Parser::AST::QualifiedType^); - } - }; - - public ref class InjectedClassNameType : CppSharp::Parser::AST::Type - { - public: - - InjectedClassNameType(::CppSharp::CppParser::AST::InjectedClassNameType* native); - InjectedClassNameType(System::IntPtr native); - InjectedClassNameType(); - - property CppSharp::Parser::AST::TemplateSpecializationType^ TemplateSpecialization - { - CppSharp::Parser::AST::TemplateSpecializationType^ get(); - void set(CppSharp::Parser::AST::TemplateSpecializationType^); - } - - property CppSharp::Parser::AST::Class^ Class - { - CppSharp::Parser::AST::Class^ get(); - void set(CppSharp::Parser::AST::Class^); - } - }; - - public ref class DependentNameType : CppSharp::Parser::AST::Type - { - public: - - DependentNameType(::CppSharp::CppParser::AST::DependentNameType* native); - DependentNameType(System::IntPtr native); - DependentNameType(); - }; - - public ref class PackExpansionType : CppSharp::Parser::AST::Type - { - public: - - PackExpansionType(::CppSharp::CppParser::AST::PackExpansionType* native); - PackExpansionType(System::IntPtr native); - PackExpansionType(); - }; - - public ref class BuiltinType : CppSharp::Parser::AST::Type - { - public: - - BuiltinType(::CppSharp::CppParser::AST::BuiltinType* native); - BuiltinType(System::IntPtr native); - BuiltinType(); - - property CppSharp::Parser::AST::PrimitiveType Type - { - CppSharp::Parser::AST::PrimitiveType get(); - void set(CppSharp::Parser::AST::PrimitiveType); - } - }; - - public ref class VTableComponent : ICppInstance - { - public: - - property ::CppSharp::CppParser::AST::VTableComponent* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - VTableComponent(::CppSharp::CppParser::AST::VTableComponent* native); - VTableComponent(System::IntPtr native); - VTableComponent(); - - property CppSharp::Parser::AST::VTableComponentKind Kind - { - CppSharp::Parser::AST::VTableComponentKind get(); - void set(CppSharp::Parser::AST::VTableComponentKind); - } - - property unsigned int Offset - { - unsigned int get(); - void set(unsigned int); - } - - property CppSharp::Parser::AST::Declaration^ Declaration - { - CppSharp::Parser::AST::Declaration^ get(); - void set(CppSharp::Parser::AST::Declaration^); - } - }; - - public ref class VTableLayout : ICppInstance - { - public: - - property ::CppSharp::CppParser::AST::VTableLayout* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - VTableLayout(::CppSharp::CppParser::AST::VTableLayout* native); - VTableLayout(System::IntPtr native); - VTableLayout(); - - property unsigned int ComponentsCount - { - unsigned int get(); - } - - CppSharp::Parser::AST::VTableComponent^ getComponents(unsigned int i); - - void addComponents(CppSharp::Parser::AST::VTableComponent^ s); - }; - - public ref class VFTableInfo : ICppInstance - { - public: - - property ::CppSharp::CppParser::AST::VFTableInfo* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - VFTableInfo(::CppSharp::CppParser::AST::VFTableInfo* native); - VFTableInfo(System::IntPtr native); - VFTableInfo(); - - property unsigned long long VBTableIndex - { - unsigned long long get(); - void set(unsigned long long); - } - - property unsigned int VFPtrOffset - { - unsigned int get(); - void set(unsigned int); - } - - property unsigned int VFPtrFullOffset - { - unsigned int get(); - void set(unsigned int); - } - - property CppSharp::Parser::AST::VTableLayout^ Layout - { - CppSharp::Parser::AST::VTableLayout^ get(); - void set(CppSharp::Parser::AST::VTableLayout^); - } - }; - - public ref class ClassLayout : ICppInstance - { - public: - - property ::CppSharp::CppParser::AST::ClassLayout* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - ClassLayout(::CppSharp::CppParser::AST::ClassLayout* native); - ClassLayout(System::IntPtr native); - ClassLayout(); - - property unsigned int VFTablesCount - { - unsigned int get(); - } - - property CppSharp::Parser::AST::CppAbi ABI - { - CppSharp::Parser::AST::CppAbi get(); - void set(CppSharp::Parser::AST::CppAbi); - } - - property CppSharp::Parser::AST::VTableLayout^ Layout - { - CppSharp::Parser::AST::VTableLayout^ get(); - void set(CppSharp::Parser::AST::VTableLayout^); - } - - property bool HasOwnVFPtr - { - bool get(); - void set(bool); - } - - property int VBPtrOffset - { - int get(); - void set(int); - } - - property int Alignment - { - int get(); - void set(int); - } - - property int Size - { - int get(); - void set(int); - } - - property int DataSize - { - int get(); - void set(int); - } - - CppSharp::Parser::AST::VFTableInfo^ getVFTables(unsigned int i); - - void addVFTables(CppSharp::Parser::AST::VFTableInfo^ s); - }; - - public ref class Declaration : ICppInstance - { - public: - - property ::CppSharp::CppParser::AST::Declaration* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - Declaration(::CppSharp::CppParser::AST::Declaration* native); - Declaration(System::IntPtr native); - Declaration(CppSharp::Parser::AST::DeclarationKind kind); - - property System::String^ Name - { - System::String^ get(); - void set(System::String^); - } - - property System::String^ DebugText - { - System::String^ get(); - void set(System::String^); - } - - property unsigned int PreprocessedEntitiesCount - { - unsigned int get(); - } - - property CppSharp::Parser::AST::DeclarationKind Kind - { - CppSharp::Parser::AST::DeclarationKind get(); - void set(CppSharp::Parser::AST::DeclarationKind); - } - - property CppSharp::Parser::AST::AccessSpecifier Access - { - CppSharp::Parser::AST::AccessSpecifier get(); - void set(CppSharp::Parser::AST::AccessSpecifier); - } - - property CppSharp::Parser::AST::DeclarationContext^ _Namespace - { - CppSharp::Parser::AST::DeclarationContext^ get(); - void set(CppSharp::Parser::AST::DeclarationContext^); - } - - property CppSharp::Parser::AST::RawComment^ Comment - { - CppSharp::Parser::AST::RawComment^ get(); - void set(CppSharp::Parser::AST::RawComment^); - } - - property bool IsIncomplete - { - bool get(); - void set(bool); - } - - property bool IsDependent - { - bool get(); - void set(bool); - } - - property CppSharp::Parser::AST::Declaration^ CompleteDeclaration - { - CppSharp::Parser::AST::Declaration^ get(); - void set(CppSharp::Parser::AST::Declaration^); - } - - property unsigned int DefinitionOrder - { - unsigned int get(); - void set(unsigned int); - } - - property void* OriginalPtr - { - void* get(); - void set(void*); - } - - CppSharp::Parser::AST::PreprocessedEntity^ getPreprocessedEntities(unsigned int i); - - void addPreprocessedEntities(CppSharp::Parser::AST::PreprocessedEntity^ s); - }; - - public ref class DeclarationContext : CppSharp::Parser::AST::Declaration - { - public: - - DeclarationContext(::CppSharp::CppParser::AST::DeclarationContext* native); - DeclarationContext(System::IntPtr native); - DeclarationContext(CppSharp::Parser::AST::DeclarationKind kind); - - property unsigned int NamespacesCount - { - unsigned int get(); - } - - property unsigned int EnumsCount - { - unsigned int get(); - } - - property unsigned int FunctionsCount - { - unsigned int get(); - } - - property unsigned int ClassesCount - { - unsigned int get(); - } - - property unsigned int TemplatesCount - { - unsigned int get(); - } - - property unsigned int TypedefsCount - { - unsigned int get(); - } - - property unsigned int VariablesCount - { - unsigned int get(); - } - - property bool IsAnonymous - { - bool get(); - void set(bool); - } - - CppSharp::Parser::AST::Namespace^ getNamespaces(unsigned int i); - - void addNamespaces(CppSharp::Parser::AST::Namespace^ s); - - CppSharp::Parser::AST::Enumeration^ getEnums(unsigned int i); - - void addEnums(CppSharp::Parser::AST::Enumeration^ s); - - CppSharp::Parser::AST::Function^ getFunctions(unsigned int i); - - void addFunctions(CppSharp::Parser::AST::Function^ s); - - CppSharp::Parser::AST::Class^ getClasses(unsigned int i); - - void addClasses(CppSharp::Parser::AST::Class^ s); - - CppSharp::Parser::AST::Template^ getTemplates(unsigned int i); - - void addTemplates(CppSharp::Parser::AST::Template^ s); - - CppSharp::Parser::AST::TypedefDecl^ getTypedefs(unsigned int i); - - void addTypedefs(CppSharp::Parser::AST::TypedefDecl^ s); - - CppSharp::Parser::AST::Variable^ getVariables(unsigned int i); - - void addVariables(CppSharp::Parser::AST::Variable^ s); - }; - - public ref class TypedefDecl : CppSharp::Parser::AST::Declaration - { - public: - - TypedefDecl(::CppSharp::CppParser::AST::TypedefDecl* native); - TypedefDecl(System::IntPtr native); - TypedefDecl(); - - property CppSharp::Parser::AST::QualifiedType^ QualifiedType - { - CppSharp::Parser::AST::QualifiedType^ get(); - void set(CppSharp::Parser::AST::QualifiedType^); - } - }; - - public ref class Parameter : CppSharp::Parser::AST::Declaration - { - public: - - Parameter(::CppSharp::CppParser::AST::Parameter* native); - Parameter(System::IntPtr native); - Parameter(); - - property CppSharp::Parser::AST::QualifiedType^ QualifiedType - { - CppSharp::Parser::AST::QualifiedType^ get(); - void set(CppSharp::Parser::AST::QualifiedType^); - } - - property bool IsIndirect - { - bool get(); - void set(bool); - } - - property bool HasDefaultValue - { - bool get(); - void set(bool); - } - - property unsigned int Index - { - unsigned int get(); - void set(unsigned int); - } - }; - - public ref class Function : CppSharp::Parser::AST::Declaration - { - public: - - Function(::CppSharp::CppParser::AST::Function* native); - Function(System::IntPtr native); - Function(); - - property System::String^ Mangled - { - System::String^ get(); - void set(System::String^); - } - - property System::String^ Signature - { - System::String^ get(); - void set(System::String^); - } - - property unsigned int ParametersCount - { - unsigned int get(); - } - - property CppSharp::Parser::AST::QualifiedType^ ReturnType - { - CppSharp::Parser::AST::QualifiedType^ get(); - void set(CppSharp::Parser::AST::QualifiedType^); - } - - property bool IsReturnIndirect - { - bool get(); - void set(bool); - } - - property bool IsVariadic - { - bool get(); - void set(bool); - } - - property bool IsInline - { - bool get(); - void set(bool); - } - - property bool IsPure - { - bool get(); - void set(bool); - } - - property bool IsDeleted - { - bool get(); - void set(bool); - } - - property CppSharp::Parser::AST::CXXOperatorKind OperatorKind - { - CppSharp::Parser::AST::CXXOperatorKind get(); - void set(CppSharp::Parser::AST::CXXOperatorKind); - } - - property CppSharp::Parser::AST::CallingConvention CallingConvention - { - CppSharp::Parser::AST::CallingConvention get(); - void set(CppSharp::Parser::AST::CallingConvention); - } - - CppSharp::Parser::AST::Parameter^ getParameters(unsigned int i); - - void addParameters(CppSharp::Parser::AST::Parameter^ s); - }; - - public ref class Method : CppSharp::Parser::AST::Function - { - public: - - Method(::CppSharp::CppParser::AST::Method* native); - Method(System::IntPtr native); - Method(); - - property CppSharp::Parser::AST::AccessSpecifierDecl^ AccessDecl - { - CppSharp::Parser::AST::AccessSpecifierDecl^ get(); - void set(CppSharp::Parser::AST::AccessSpecifierDecl^); - } - - property bool IsVirtual - { - bool get(); - void set(bool); - } - - property bool IsStatic - { - bool get(); - void set(bool); - } - - property bool IsConst - { - bool get(); - void set(bool); - } - - property bool IsImplicit - { - bool get(); - void set(bool); - } - - property bool IsExplicit - { - bool get(); - void set(bool); - } - - property bool IsOverride - { - bool get(); - void set(bool); - } - - property CppSharp::Parser::AST::CXXMethodKind MethodKind - { - CppSharp::Parser::AST::CXXMethodKind get(); - void set(CppSharp::Parser::AST::CXXMethodKind); - } - - property bool IsDefaultConstructor - { - bool get(); - void set(bool); - } - - property bool IsCopyConstructor - { - bool get(); - void set(bool); - } - - property bool IsMoveConstructor - { - bool get(); - void set(bool); - } - - property CppSharp::Parser::AST::QualifiedType^ ConversionType - { - CppSharp::Parser::AST::QualifiedType^ get(); - void set(CppSharp::Parser::AST::QualifiedType^); - } - }; - - public ref class Enumeration : CppSharp::Parser::AST::Declaration - { - public: - - [System::Flags] - enum struct EnumModifiers - { - Anonymous = 1, - Scoped = 2, - Flags = 4 - }; - - ref class Item : CppSharp::Parser::AST::Declaration - { - public: - - Item(::CppSharp::CppParser::AST::Enumeration::Item* native); - Item(System::IntPtr native); - Item(); - - property System::String^ Expression - { - System::String^ get(); - void set(System::String^); - } - - property unsigned long long Value - { - unsigned long long get(); - void set(unsigned long long); - } - }; - - Enumeration(::CppSharp::CppParser::AST::Enumeration* native); - Enumeration(System::IntPtr native); - Enumeration(); - - property unsigned int ItemsCount - { - unsigned int get(); - } - - property CppSharp::Parser::AST::Enumeration::EnumModifiers Modifiers - { - CppSharp::Parser::AST::Enumeration::EnumModifiers get(); - void set(CppSharp::Parser::AST::Enumeration::EnumModifiers); - } - - property CppSharp::Parser::AST::Type^ Type - { - CppSharp::Parser::AST::Type^ get(); - void set(CppSharp::Parser::AST::Type^); - } - - property CppSharp::Parser::AST::BuiltinType^ BuiltinType - { - CppSharp::Parser::AST::BuiltinType^ get(); - void set(CppSharp::Parser::AST::BuiltinType^); - } - - CppSharp::Parser::AST::Enumeration::Item^ getItems(unsigned int i); - - void addItems(CppSharp::Parser::AST::Enumeration::Item^ s); - }; - - public ref class Variable : CppSharp::Parser::AST::Declaration - { - public: - - Variable(::CppSharp::CppParser::AST::Variable* native); - Variable(System::IntPtr native); - Variable(); - - property System::String^ Mangled - { - System::String^ get(); - void set(System::String^); - } - - property CppSharp::Parser::AST::QualifiedType^ QualifiedType - { - CppSharp::Parser::AST::QualifiedType^ get(); - void set(CppSharp::Parser::AST::QualifiedType^); - } - }; - - public ref class BaseClassSpecifier : ICppInstance - { - public: - - property ::CppSharp::CppParser::AST::BaseClassSpecifier* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - BaseClassSpecifier(::CppSharp::CppParser::AST::BaseClassSpecifier* native); - BaseClassSpecifier(System::IntPtr native); - BaseClassSpecifier(); - - property CppSharp::Parser::AST::AccessSpecifier Access - { - CppSharp::Parser::AST::AccessSpecifier get(); - void set(CppSharp::Parser::AST::AccessSpecifier); - } - - property bool IsVirtual - { - bool get(); - void set(bool); - } - - property CppSharp::Parser::AST::Type^ Type - { - CppSharp::Parser::AST::Type^ get(); - void set(CppSharp::Parser::AST::Type^); - } - }; - - public ref class Field : CppSharp::Parser::AST::Declaration - { - public: - - Field(::CppSharp::CppParser::AST::Field* native); - Field(System::IntPtr native); - Field(); - - property CppSharp::Parser::AST::QualifiedType^ QualifiedType - { - CppSharp::Parser::AST::QualifiedType^ get(); - void set(CppSharp::Parser::AST::QualifiedType^); - } - - property unsigned int Offset - { - unsigned int get(); - void set(unsigned int); - } - - property CppSharp::Parser::AST::Class^ Class - { - CppSharp::Parser::AST::Class^ get(); - void set(CppSharp::Parser::AST::Class^); - } - }; - - public ref class AccessSpecifierDecl : CppSharp::Parser::AST::Declaration - { - public: - - AccessSpecifierDecl(::CppSharp::CppParser::AST::AccessSpecifierDecl* native); - AccessSpecifierDecl(System::IntPtr native); - AccessSpecifierDecl(); - }; - - public ref class Class : CppSharp::Parser::AST::DeclarationContext - { - public: - - Class(::CppSharp::CppParser::AST::Class* native); - Class(System::IntPtr native); - Class(); - - property unsigned int BasesCount - { - unsigned int get(); - } - - property unsigned int FieldsCount - { - unsigned int get(); - } - - property unsigned int MethodsCount - { - unsigned int get(); - } - - property unsigned int SpecifiersCount - { - unsigned int get(); - } - - property bool IsPOD - { - bool get(); - void set(bool); - } - - property bool IsAbstract - { - bool get(); - void set(bool); - } - - property bool IsUnion - { - bool get(); - void set(bool); - } - - property bool IsDynamic - { - bool get(); - void set(bool); - } - - property bool IsPolymorphic - { - bool get(); - void set(bool); - } - - property bool HasNonTrivialDefaultConstructor - { - bool get(); - void set(bool); - } - - property bool HasNonTrivialCopyConstructor - { - bool get(); - void set(bool); - } - - property bool HasNonTrivialDestructor - { - bool get(); - void set(bool); - } - - property bool IsExternCContext - { - bool get(); - void set(bool); - } - - property CppSharp::Parser::AST::ClassLayout^ Layout - { - CppSharp::Parser::AST::ClassLayout^ get(); - void set(CppSharp::Parser::AST::ClassLayout^); - } - - CppSharp::Parser::AST::BaseClassSpecifier^ getBases(unsigned int i); - - void addBases(CppSharp::Parser::AST::BaseClassSpecifier^ s); - - CppSharp::Parser::AST::Field^ getFields(unsigned int i); - - void addFields(CppSharp::Parser::AST::Field^ s); - - CppSharp::Parser::AST::Method^ getMethods(unsigned int i); - - void addMethods(CppSharp::Parser::AST::Method^ s); - - CppSharp::Parser::AST::AccessSpecifierDecl^ getSpecifiers(unsigned int i); - - void addSpecifiers(CppSharp::Parser::AST::AccessSpecifierDecl^ s); - }; - - public ref class Template : CppSharp::Parser::AST::Declaration - { - public: - - Template(::CppSharp::CppParser::AST::Template* native); - Template(System::IntPtr native); - Template(CppSharp::Parser::AST::DeclarationKind kind); - - Template(); - - property unsigned int ParametersCount - { - unsigned int get(); - } - - property CppSharp::Parser::AST::Declaration^ TemplatedDecl - { - CppSharp::Parser::AST::Declaration^ get(); - void set(CppSharp::Parser::AST::Declaration^); - } - - CppSharp::Parser::AST::TemplateParameter^ getParameters(unsigned int i); - - void addParameters(CppSharp::Parser::AST::TemplateParameter^ s); - }; - - public ref class ClassTemplate : CppSharp::Parser::AST::Template - { - public: - - ClassTemplate(::CppSharp::CppParser::AST::ClassTemplate* native); - ClassTemplate(System::IntPtr native); - ClassTemplate(); - - property unsigned int SpecializationsCount - { - unsigned int get(); - } - - CppSharp::Parser::AST::ClassTemplateSpecialization^ getSpecializations(unsigned int i); - - void addSpecializations(CppSharp::Parser::AST::ClassTemplateSpecialization^ s); - - CppSharp::Parser::AST::ClassTemplateSpecialization^ FindSpecialization(void* ptr); - - CppSharp::Parser::AST::ClassTemplateSpecialization^ FindSpecialization(CppSharp::Parser::AST::TemplateSpecializationType^ type); - - CppSharp::Parser::AST::ClassTemplatePartialSpecialization^ FindPartialSpecialization(void* ptr); - - CppSharp::Parser::AST::ClassTemplatePartialSpecialization^ FindPartialSpecialization(CppSharp::Parser::AST::TemplateSpecializationType^ type); - }; - - public ref class ClassTemplateSpecialization : CppSharp::Parser::AST::Class - { - public: - - ClassTemplateSpecialization(::CppSharp::CppParser::AST::ClassTemplateSpecialization* native); - ClassTemplateSpecialization(System::IntPtr native); - ClassTemplateSpecialization(); - - property unsigned int ArgumentsCount - { - unsigned int get(); - } - - property CppSharp::Parser::AST::ClassTemplate^ TemplatedDecl - { - CppSharp::Parser::AST::ClassTemplate^ get(); - void set(CppSharp::Parser::AST::ClassTemplate^); - } - - property CppSharp::Parser::AST::TemplateSpecializationKind SpecializationKind - { - CppSharp::Parser::AST::TemplateSpecializationKind get(); - void set(CppSharp::Parser::AST::TemplateSpecializationKind); - } - - CppSharp::Parser::AST::TemplateArgument^ getArguments(unsigned int i); - - void addArguments(CppSharp::Parser::AST::TemplateArgument^ s); - }; - - public ref class ClassTemplatePartialSpecialization : CppSharp::Parser::AST::ClassTemplateSpecialization - { - public: - - ClassTemplatePartialSpecialization(::CppSharp::CppParser::AST::ClassTemplatePartialSpecialization* native); - ClassTemplatePartialSpecialization(System::IntPtr native); - ClassTemplatePartialSpecialization(); - }; - - public ref class FunctionTemplate : CppSharp::Parser::AST::Template - { - public: - - FunctionTemplate(::CppSharp::CppParser::AST::FunctionTemplate* native); - FunctionTemplate(System::IntPtr native); - FunctionTemplate(); - }; - - public ref class Namespace : CppSharp::Parser::AST::DeclarationContext - { - public: - - Namespace(::CppSharp::CppParser::AST::Namespace* native); - Namespace(System::IntPtr native); - Namespace(); - - property bool IsInline - { - bool get(); - void set(bool); - } - }; - - public ref class PreprocessedEntity : CppSharp::Parser::AST::Declaration - { - public: - - PreprocessedEntity(::CppSharp::CppParser::AST::PreprocessedEntity* native); - PreprocessedEntity(System::IntPtr native); - PreprocessedEntity(); - - property CppSharp::Parser::AST::MacroLocation Location - { - CppSharp::Parser::AST::MacroLocation get(); - void set(CppSharp::Parser::AST::MacroLocation); - } - }; - - public ref class MacroDefinition : CppSharp::Parser::AST::PreprocessedEntity - { - public: - - MacroDefinition(::CppSharp::CppParser::AST::MacroDefinition* native); - MacroDefinition(System::IntPtr native); - MacroDefinition(); - - property System::String^ Expression - { - System::String^ get(); - void set(System::String^); - } - }; - - public ref class MacroExpansion : CppSharp::Parser::AST::PreprocessedEntity - { - public: - - MacroExpansion(::CppSharp::CppParser::AST::MacroExpansion* native); - MacroExpansion(System::IntPtr native); - MacroExpansion(); - - property System::String^ Text - { - System::String^ get(); - void set(System::String^); - } - - property CppSharp::Parser::AST::MacroDefinition^ Definition - { - CppSharp::Parser::AST::MacroDefinition^ get(); - void set(CppSharp::Parser::AST::MacroDefinition^); - } - }; - - public ref class TranslationUnit : CppSharp::Parser::AST::Namespace - { - public: - - TranslationUnit(::CppSharp::CppParser::AST::TranslationUnit* native); - TranslationUnit(System::IntPtr native); - TranslationUnit(); - - property System::String^ FileName - { - System::String^ get(); - void set(System::String^); - } - - property unsigned int MacrosCount - { - unsigned int get(); - } - - property bool IsSystemHeader - { - bool get(); - void set(bool); - } - - CppSharp::Parser::AST::MacroDefinition^ getMacros(unsigned int i); - - void addMacros(CppSharp::Parser::AST::MacroDefinition^ s); - }; - - public ref class NativeLibrary : ICppInstance - { - public: - - property ::CppSharp::CppParser::AST::NativeLibrary* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - NativeLibrary(::CppSharp::CppParser::AST::NativeLibrary* native); - NativeLibrary(System::IntPtr native); - NativeLibrary(); - - property System::String^ FileName - { - System::String^ get(); - void set(System::String^); - } - - property unsigned int SymbolsCount - { - unsigned int get(); - } - - System::String^ getSymbols(unsigned int i); - - void addSymbols(System::String^ s); - }; - - public ref class ASTContext : ICppInstance - { - public: - - property ::CppSharp::CppParser::AST::ASTContext* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - ASTContext(::CppSharp::CppParser::AST::ASTContext* native); - ASTContext(System::IntPtr native); - ASTContext(); - - property unsigned int TranslationUnitsCount - { - unsigned int get(); - } - - CppSharp::Parser::AST::TranslationUnit^ getTranslationUnits(unsigned int i); - - void addTranslationUnits(CppSharp::Parser::AST::TranslationUnit^ s); - }; - - public ref class Comment : ICppInstance - { - public: - - property ::CppSharp::CppParser::AST::Comment* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - Comment(::CppSharp::CppParser::AST::Comment* native); - Comment(System::IntPtr native); - Comment(CppSharp::Parser::AST::CommentKind kind); - - property CppSharp::Parser::AST::CommentKind Kind - { - CppSharp::Parser::AST::CommentKind get(); - void set(CppSharp::Parser::AST::CommentKind); - } - }; - - public ref class FullComment : CppSharp::Parser::AST::Comment - { - public: - - FullComment(::CppSharp::CppParser::AST::FullComment* native); - FullComment(System::IntPtr native); - FullComment(); - }; - - public ref class RawComment : ICppInstance - { - public: - - property ::CppSharp::CppParser::AST::RawComment* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - RawComment(::CppSharp::CppParser::AST::RawComment* native); - RawComment(System::IntPtr native); - RawComment(); - - property System::String^ Text - { - System::String^ get(); - void set(System::String^); - } - - property System::String^ BriefText - { - System::String^ get(); - void set(System::String^); - } - - property CppSharp::Parser::AST::RawCommentKind RawCommentKind - { - CppSharp::Parser::AST::RawCommentKind get(); - void set(CppSharp::Parser::AST::RawCommentKind); - } - - property CppSharp::Parser::AST::FullComment^ FullComment - { - CppSharp::Parser::AST::FullComment^ get(); - void set(CppSharp::Parser::AST::FullComment^); - } - }; - } - } -} +#pragma once + +#include "CppSharp.h" +#include + +namespace CppSharp +{ + namespace Parser + { + namespace AST + { + enum struct AccessSpecifier; + enum struct CXXMethodKind; + enum struct CXXOperatorKind; + enum struct CallingConvention; + enum struct CommentKind; + enum struct CppAbi; + enum struct DeclarationKind; + enum struct MacroLocation; + enum struct PrimitiveType; + enum struct RawCommentKind; + enum struct TemplateSpecializationKind; + enum struct TypeKind; + enum struct VTableComponentKind; + ref class ASTContext; + ref class AccessSpecifierDecl; + ref class ArrayType; + ref class AttributedType; + ref class BaseClassSpecifier; + ref class BuiltinType; + ref class Class; + ref class ClassLayout; + ref class ClassTemplate; + ref class ClassTemplatePartialSpecialization; + ref class ClassTemplateSpecialization; + ref class Comment; + ref class DecayedType; + ref class Declaration; + ref class DeclarationContext; + ref class DependentNameType; + ref class Enumeration; + ref class Field; + ref class FullComment; + ref class Function; + ref class FunctionTemplate; + ref class FunctionType; + ref class InjectedClassNameType; + ref class MacroDefinition; + ref class MacroExpansion; + ref class MemberPointerType; + ref class Method; + ref class Namespace; + ref class NativeLibrary; + ref class PackExpansionType; + ref class Parameter; + ref class PointerType; + ref class PreprocessedEntity; + ref class QualifiedType; + ref class RawComment; + ref class TagType; + ref class Template; + ref class TemplateArgument; + ref class TemplateParameter; + ref class TemplateParameterSubstitutionType; + ref class TemplateParameterType; + ref class TemplateSpecializationType; + ref class TranslationUnit; + ref class Type; + ref class TypeQualifiers; + ref class TypedefDecl; + ref class TypedefType; + ref class VFTableInfo; + ref class VTableComponent; + ref class VTableLayout; + ref class Variable; + } + } +} + +namespace CppSharp +{ + namespace Parser + { + namespace AST + { + public enum struct TypeKind + { + Tag = 0, + Array = 1, + Function = 2, + Pointer = 3, + MemberPointer = 4, + Typedef = 5, + Attributed = 6, + Decayed = 7, + TemplateSpecialization = 8, + TemplateParameter = 9, + TemplateParameterSubstitution = 10, + InjectedClassName = 11, + DependentName = 12, + PackExpansion = 13, + Builtin = 14 + }; + + public enum struct DeclarationKind + { + DeclarationContext = 0, + Typedef = 1, + Parameter = 2, + Function = 3, + Method = 4, + Enumeration = 5, + EnumerationItem = 6, + Variable = 7, + Field = 8, + AccessSpecifier = 9, + Class = 10, + Template = 11, + ClassTemplate = 12, + ClassTemplateSpecialization = 13, + ClassTemplatePartialSpecialization = 14, + FunctionTemplate = 15, + Namespace = 16, + PreprocessedEntity = 17, + MacroDefinition = 18, + MacroExpansion = 19, + TranslationUnit = 20 + }; + + public enum struct AccessSpecifier + { + Private = 0, + Protected = 1, + Public = 2 + }; + + public enum struct CXXMethodKind + { + Normal = 0, + Constructor = 1, + Destructor = 2, + Conversion = 3, + Operator = 4, + UsingDirective = 5 + }; + + public enum struct CXXOperatorKind + { + None = 0, + New = 1, + Delete = 2, + Array_New = 3, + Array_Delete = 4, + Plus = 5, + Minus = 6, + Star = 7, + Slash = 8, + Percent = 9, + Caret = 10, + Amp = 11, + Pipe = 12, + Tilde = 13, + Exclaim = 14, + Equal = 15, + Less = 16, + Greater = 17, + PlusEqual = 18, + MinusEqual = 19, + StarEqual = 20, + SlashEqual = 21, + PercentEqual = 22, + CaretEqual = 23, + AmpEqual = 24, + PipeEqual = 25, + LessLess = 26, + GreaterGreater = 27, + LessLessEqual = 28, + GreaterGreaterEqual = 29, + EqualEqual = 30, + ExclaimEqual = 31, + LessEqual = 32, + GreaterEqual = 33, + AmpAmp = 34, + PipePipe = 35, + PlusPlus = 36, + MinusMinus = 37, + Comma = 38, + ArrowStar = 39, + Arrow = 40, + Call = 41, + Subscript = 42, + Conditional = 43 + }; + + public enum struct CallingConvention + { + Default = 0, + C = 1, + StdCall = 2, + ThisCall = 3, + FastCall = 4, + Unknown = 5 + }; + + public enum struct CppAbi + { + Itanium = 0, + Microsoft = 1, + ARM = 2 + }; + + public enum struct VTableComponentKind + { + VCallOffset = 0, + VBaseOffset = 1, + OffsetToTop = 2, + RTTI = 3, + FunctionPointer = 4, + CompleteDtorPointer = 5, + DeletingDtorPointer = 6, + UnusedFunctionPointer = 7 + }; + + public enum struct TemplateSpecializationKind + { + Undeclared = 0, + ImplicitInstantiation = 1, + ExplicitSpecialization = 2, + ExplicitInstantiationDeclaration = 3, + ExplicitInstantiationDefinition = 4 + }; + + public enum struct PrimitiveType + { + Null = 0, + Void = 1, + Bool = 2, + WideChar = 3, + Int8 = 4, + Char = 4, + UInt8 = 5, + UChar = 5, + Int16 = 6, + UInt16 = 7, + Int32 = 8, + UInt32 = 9, + Int64 = 10, + UInt64 = 11, + Float = 12, + Double = 13, + IntPtr = 14 + }; + + public enum struct RawCommentKind + { + Invalid = 0, + OrdinaryBCPL = 1, + OrdinaryC = 2, + BCPLSlash = 3, + BCPLExcl = 4, + JavaDoc = 5, + Qt = 6, + Merged = 7 + }; + + public enum struct CommentKind + { + FullComment = 0 + }; + + public enum struct MacroLocation + { + Unknown = 0, + ClassHead = 1, + ClassBody = 2, + FunctionHead = 3, + FunctionParameters = 4, + FunctionBody = 5 + }; + + public ref class Type : ICppInstance + { + public: + + property ::CppSharp::CppParser::AST::Type* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + Type(::CppSharp::CppParser::AST::Type* native); + Type(System::IntPtr native); + Type(CppSharp::Parser::AST::TypeKind kind); + + property CppSharp::Parser::AST::TypeKind Kind + { + CppSharp::Parser::AST::TypeKind get(); + void set(CppSharp::Parser::AST::TypeKind); + } + + property bool IsDependent + { + bool get(); + void set(bool); + } + }; + + public ref class TypeQualifiers : ICppInstance + { + public: + + property ::CppSharp::CppParser::AST::TypeQualifiers* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + TypeQualifiers(::CppSharp::CppParser::AST::TypeQualifiers* native); + TypeQualifiers(System::IntPtr native); + TypeQualifiers(); + + property bool IsConst + { + bool get(); + void set(bool); + } + + property bool IsVolatile + { + bool get(); + void set(bool); + } + + property bool IsRestrict + { + bool get(); + void set(bool); + } + }; + + public ref class QualifiedType : ICppInstance + { + public: + + property ::CppSharp::CppParser::AST::QualifiedType* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + QualifiedType(::CppSharp::CppParser::AST::QualifiedType* native); + QualifiedType(System::IntPtr native); + QualifiedType(); + + property CppSharp::Parser::AST::Type^ Type + { + CppSharp::Parser::AST::Type^ get(); + void set(CppSharp::Parser::AST::Type^); + } + + property CppSharp::Parser::AST::TypeQualifiers^ Qualifiers + { + CppSharp::Parser::AST::TypeQualifiers^ get(); + void set(CppSharp::Parser::AST::TypeQualifiers^); + } + }; + + public ref class TagType : CppSharp::Parser::AST::Type + { + public: + + TagType(::CppSharp::CppParser::AST::TagType* native); + TagType(System::IntPtr native); + TagType(); + + property CppSharp::Parser::AST::Declaration^ Declaration + { + CppSharp::Parser::AST::Declaration^ get(); + void set(CppSharp::Parser::AST::Declaration^); + } + }; + + public ref class ArrayType : CppSharp::Parser::AST::Type + { + public: + + enum struct ArraySize + { + Constant = 0, + Variable = 1, + Dependent = 2, + Incomplete = 3 + }; + + ArrayType(::CppSharp::CppParser::AST::ArrayType* native); + ArrayType(System::IntPtr native); + ArrayType(); + + property CppSharp::Parser::AST::QualifiedType^ QualifiedType + { + CppSharp::Parser::AST::QualifiedType^ get(); + void set(CppSharp::Parser::AST::QualifiedType^); + } + + property CppSharp::Parser::AST::ArrayType::ArraySize SizeType + { + CppSharp::Parser::AST::ArrayType::ArraySize get(); + void set(CppSharp::Parser::AST::ArrayType::ArraySize); + } + + property int Size + { + int get(); + void set(int); + } + }; + + public ref class FunctionType : CppSharp::Parser::AST::Type + { + public: + + FunctionType(::CppSharp::CppParser::AST::FunctionType* native); + FunctionType(System::IntPtr native); + FunctionType(); + + property unsigned int ParametersCount + { + unsigned int get(); + } + + property CppSharp::Parser::AST::QualifiedType^ ReturnType + { + CppSharp::Parser::AST::QualifiedType^ get(); + void set(CppSharp::Parser::AST::QualifiedType^); + } + + property CppSharp::Parser::AST::CallingConvention CallingConvention + { + CppSharp::Parser::AST::CallingConvention get(); + void set(CppSharp::Parser::AST::CallingConvention); + } + + CppSharp::Parser::AST::Parameter^ getParameters(unsigned int i); + + void addParameters(CppSharp::Parser::AST::Parameter^ s); + }; + + public ref class PointerType : CppSharp::Parser::AST::Type + { + public: + + enum struct TypeModifier + { + Value = 0, + Pointer = 1, + LVReference = 2, + RVReference = 3 + }; + + PointerType(::CppSharp::CppParser::AST::PointerType* native); + PointerType(System::IntPtr native); + PointerType(); + + property CppSharp::Parser::AST::QualifiedType^ QualifiedPointee + { + CppSharp::Parser::AST::QualifiedType^ get(); + void set(CppSharp::Parser::AST::QualifiedType^); + } + + property CppSharp::Parser::AST::PointerType::TypeModifier Modifier + { + CppSharp::Parser::AST::PointerType::TypeModifier get(); + void set(CppSharp::Parser::AST::PointerType::TypeModifier); + } + }; + + public ref class MemberPointerType : CppSharp::Parser::AST::Type + { + public: + + MemberPointerType(::CppSharp::CppParser::AST::MemberPointerType* native); + MemberPointerType(System::IntPtr native); + MemberPointerType(); + + property CppSharp::Parser::AST::QualifiedType^ Pointee + { + CppSharp::Parser::AST::QualifiedType^ get(); + void set(CppSharp::Parser::AST::QualifiedType^); + } + }; + + public ref class TypedefType : CppSharp::Parser::AST::Type + { + public: + + TypedefType(::CppSharp::CppParser::AST::TypedefType* native); + TypedefType(System::IntPtr native); + TypedefType(); + + property CppSharp::Parser::AST::TypedefDecl^ Declaration + { + CppSharp::Parser::AST::TypedefDecl^ get(); + void set(CppSharp::Parser::AST::TypedefDecl^); + } + }; + + public ref class AttributedType : CppSharp::Parser::AST::Type + { + public: + + AttributedType(::CppSharp::CppParser::AST::AttributedType* native); + AttributedType(System::IntPtr native); + AttributedType(); + + property CppSharp::Parser::AST::QualifiedType^ Modified + { + CppSharp::Parser::AST::QualifiedType^ get(); + void set(CppSharp::Parser::AST::QualifiedType^); + } + + property CppSharp::Parser::AST::QualifiedType^ Equivalent + { + CppSharp::Parser::AST::QualifiedType^ get(); + void set(CppSharp::Parser::AST::QualifiedType^); + } + }; + + public ref class DecayedType : CppSharp::Parser::AST::Type + { + public: + + DecayedType(::CppSharp::CppParser::AST::DecayedType* native); + DecayedType(System::IntPtr native); + DecayedType(); + + property CppSharp::Parser::AST::QualifiedType^ Decayed + { + CppSharp::Parser::AST::QualifiedType^ get(); + void set(CppSharp::Parser::AST::QualifiedType^); + } + + property CppSharp::Parser::AST::QualifiedType^ Original + { + CppSharp::Parser::AST::QualifiedType^ get(); + void set(CppSharp::Parser::AST::QualifiedType^); + } + + property CppSharp::Parser::AST::QualifiedType^ Pointee + { + CppSharp::Parser::AST::QualifiedType^ get(); + void set(CppSharp::Parser::AST::QualifiedType^); + } + }; + + public ref class TemplateArgument : ICppInstance + { + public: + + enum struct ArgumentKind + { + Type = 0, + Declaration = 1, + NullPtr = 2, + Integral = 3, + Template = 4, + TemplateExpansion = 5, + Expression = 6, + Pack = 7 + }; + + property ::CppSharp::CppParser::AST::TemplateArgument* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + TemplateArgument(::CppSharp::CppParser::AST::TemplateArgument* native); + TemplateArgument(System::IntPtr native); + TemplateArgument(); + + property CppSharp::Parser::AST::TemplateArgument::ArgumentKind Kind + { + CppSharp::Parser::AST::TemplateArgument::ArgumentKind get(); + void set(CppSharp::Parser::AST::TemplateArgument::ArgumentKind); + } + + property CppSharp::Parser::AST::QualifiedType^ Type + { + CppSharp::Parser::AST::QualifiedType^ get(); + void set(CppSharp::Parser::AST::QualifiedType^); + } + + property CppSharp::Parser::AST::Declaration^ Declaration + { + CppSharp::Parser::AST::Declaration^ get(); + void set(CppSharp::Parser::AST::Declaration^); + } + + property int Integral + { + int get(); + void set(int); + } + }; + + public ref class TemplateSpecializationType : CppSharp::Parser::AST::Type + { + public: + + TemplateSpecializationType(::CppSharp::CppParser::AST::TemplateSpecializationType* native); + TemplateSpecializationType(System::IntPtr native); + TemplateSpecializationType(); + + property unsigned int ArgumentsCount + { + unsigned int get(); + } + + property CppSharp::Parser::AST::Template^ Template + { + CppSharp::Parser::AST::Template^ get(); + void set(CppSharp::Parser::AST::Template^); + } + + property CppSharp::Parser::AST::Type^ Desugared + { + CppSharp::Parser::AST::Type^ get(); + void set(CppSharp::Parser::AST::Type^); + } + + CppSharp::Parser::AST::TemplateArgument^ getArguments(unsigned int i); + + void addArguments(CppSharp::Parser::AST::TemplateArgument^ s); + }; + + public ref class TemplateParameter : ICppInstance + { + public: + + property ::CppSharp::CppParser::AST::TemplateParameter* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + TemplateParameter(::CppSharp::CppParser::AST::TemplateParameter* native); + TemplateParameter(System::IntPtr native); + TemplateParameter(); + + property System::String^ Name + { + System::String^ get(); + void set(System::String^); + } + + static bool operator==(CppSharp::Parser::AST::TemplateParameter^ __op, CppSharp::Parser::AST::TemplateParameter^ param); + }; + + public ref class TemplateParameterType : CppSharp::Parser::AST::Type + { + public: + + TemplateParameterType(::CppSharp::CppParser::AST::TemplateParameterType* native); + TemplateParameterType(System::IntPtr native); + TemplateParameterType(); + + property CppSharp::Parser::AST::TemplateParameter^ Parameter + { + CppSharp::Parser::AST::TemplateParameter^ get(); + void set(CppSharp::Parser::AST::TemplateParameter^); + } + }; + + public ref class TemplateParameterSubstitutionType : CppSharp::Parser::AST::Type + { + public: + + TemplateParameterSubstitutionType(::CppSharp::CppParser::AST::TemplateParameterSubstitutionType* native); + TemplateParameterSubstitutionType(System::IntPtr native); + TemplateParameterSubstitutionType(); + + property CppSharp::Parser::AST::QualifiedType^ Replacement + { + CppSharp::Parser::AST::QualifiedType^ get(); + void set(CppSharp::Parser::AST::QualifiedType^); + } + }; + + public ref class InjectedClassNameType : CppSharp::Parser::AST::Type + { + public: + + InjectedClassNameType(::CppSharp::CppParser::AST::InjectedClassNameType* native); + InjectedClassNameType(System::IntPtr native); + InjectedClassNameType(); + + property CppSharp::Parser::AST::TemplateSpecializationType^ TemplateSpecialization + { + CppSharp::Parser::AST::TemplateSpecializationType^ get(); + void set(CppSharp::Parser::AST::TemplateSpecializationType^); + } + + property CppSharp::Parser::AST::Class^ Class + { + CppSharp::Parser::AST::Class^ get(); + void set(CppSharp::Parser::AST::Class^); + } + }; + + public ref class DependentNameType : CppSharp::Parser::AST::Type + { + public: + + DependentNameType(::CppSharp::CppParser::AST::DependentNameType* native); + DependentNameType(System::IntPtr native); + DependentNameType(); + }; + + public ref class PackExpansionType : CppSharp::Parser::AST::Type + { + public: + + PackExpansionType(::CppSharp::CppParser::AST::PackExpansionType* native); + PackExpansionType(System::IntPtr native); + PackExpansionType(); + }; + + public ref class BuiltinType : CppSharp::Parser::AST::Type + { + public: + + BuiltinType(::CppSharp::CppParser::AST::BuiltinType* native); + BuiltinType(System::IntPtr native); + BuiltinType(); + + property CppSharp::Parser::AST::PrimitiveType Type + { + CppSharp::Parser::AST::PrimitiveType get(); + void set(CppSharp::Parser::AST::PrimitiveType); + } + }; + + public ref class VTableComponent : ICppInstance + { + public: + + property ::CppSharp::CppParser::AST::VTableComponent* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + VTableComponent(::CppSharp::CppParser::AST::VTableComponent* native); + VTableComponent(System::IntPtr native); + VTableComponent(); + + property CppSharp::Parser::AST::VTableComponentKind Kind + { + CppSharp::Parser::AST::VTableComponentKind get(); + void set(CppSharp::Parser::AST::VTableComponentKind); + } + + property unsigned int Offset + { + unsigned int get(); + void set(unsigned int); + } + + property CppSharp::Parser::AST::Declaration^ Declaration + { + CppSharp::Parser::AST::Declaration^ get(); + void set(CppSharp::Parser::AST::Declaration^); + } + }; + + public ref class VTableLayout : ICppInstance + { + public: + + property ::CppSharp::CppParser::AST::VTableLayout* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + VTableLayout(::CppSharp::CppParser::AST::VTableLayout* native); + VTableLayout(System::IntPtr native); + VTableLayout(); + + property unsigned int ComponentsCount + { + unsigned int get(); + } + + CppSharp::Parser::AST::VTableComponent^ getComponents(unsigned int i); + + void addComponents(CppSharp::Parser::AST::VTableComponent^ s); + }; + + public ref class VFTableInfo : ICppInstance + { + public: + + property ::CppSharp::CppParser::AST::VFTableInfo* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + VFTableInfo(::CppSharp::CppParser::AST::VFTableInfo* native); + VFTableInfo(System::IntPtr native); + VFTableInfo(); + + property unsigned long long VBTableIndex + { + unsigned long long get(); + void set(unsigned long long); + } + + property unsigned int VFPtrOffset + { + unsigned int get(); + void set(unsigned int); + } + + property unsigned int VFPtrFullOffset + { + unsigned int get(); + void set(unsigned int); + } + + property CppSharp::Parser::AST::VTableLayout^ Layout + { + CppSharp::Parser::AST::VTableLayout^ get(); + void set(CppSharp::Parser::AST::VTableLayout^); + } + }; + + public ref class ClassLayout : ICppInstance + { + public: + + property ::CppSharp::CppParser::AST::ClassLayout* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + ClassLayout(::CppSharp::CppParser::AST::ClassLayout* native); + ClassLayout(System::IntPtr native); + ClassLayout(); + + property unsigned int VFTablesCount + { + unsigned int get(); + } + + property CppSharp::Parser::AST::CppAbi ABI + { + CppSharp::Parser::AST::CppAbi get(); + void set(CppSharp::Parser::AST::CppAbi); + } + + property CppSharp::Parser::AST::VTableLayout^ Layout + { + CppSharp::Parser::AST::VTableLayout^ get(); + void set(CppSharp::Parser::AST::VTableLayout^); + } + + property bool HasOwnVFPtr + { + bool get(); + void set(bool); + } + + property int VBPtrOffset + { + int get(); + void set(int); + } + + property int Alignment + { + int get(); + void set(int); + } + + property int Size + { + int get(); + void set(int); + } + + property int DataSize + { + int get(); + void set(int); + } + + CppSharp::Parser::AST::VFTableInfo^ getVFTables(unsigned int i); + + void addVFTables(CppSharp::Parser::AST::VFTableInfo^ s); + }; + + public ref class Declaration : ICppInstance + { + public: + + property ::CppSharp::CppParser::AST::Declaration* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + Declaration(::CppSharp::CppParser::AST::Declaration* native); + Declaration(System::IntPtr native); + Declaration(CppSharp::Parser::AST::DeclarationKind kind); + + property System::String^ Name + { + System::String^ get(); + void set(System::String^); + } + + property System::String^ DebugText + { + System::String^ get(); + void set(System::String^); + } + + property unsigned int PreprocessedEntitiesCount + { + unsigned int get(); + } + + property CppSharp::Parser::AST::DeclarationKind Kind + { + CppSharp::Parser::AST::DeclarationKind get(); + void set(CppSharp::Parser::AST::DeclarationKind); + } + + property CppSharp::Parser::AST::AccessSpecifier Access + { + CppSharp::Parser::AST::AccessSpecifier get(); + void set(CppSharp::Parser::AST::AccessSpecifier); + } + + property CppSharp::Parser::AST::DeclarationContext^ _Namespace + { + CppSharp::Parser::AST::DeclarationContext^ get(); + void set(CppSharp::Parser::AST::DeclarationContext^); + } + + property CppSharp::Parser::AST::RawComment^ Comment + { + CppSharp::Parser::AST::RawComment^ get(); + void set(CppSharp::Parser::AST::RawComment^); + } + + property bool IsIncomplete + { + bool get(); + void set(bool); + } + + property bool IsDependent + { + bool get(); + void set(bool); + } + + property CppSharp::Parser::AST::Declaration^ CompleteDeclaration + { + CppSharp::Parser::AST::Declaration^ get(); + void set(CppSharp::Parser::AST::Declaration^); + } + + property unsigned int DefinitionOrder + { + unsigned int get(); + void set(unsigned int); + } + + property void* OriginalPtr + { + void* get(); + void set(void*); + } + + CppSharp::Parser::AST::PreprocessedEntity^ getPreprocessedEntities(unsigned int i); + + void addPreprocessedEntities(CppSharp::Parser::AST::PreprocessedEntity^ s); + }; + + public ref class DeclarationContext : CppSharp::Parser::AST::Declaration + { + public: + + DeclarationContext(::CppSharp::CppParser::AST::DeclarationContext* native); + DeclarationContext(System::IntPtr native); + DeclarationContext(CppSharp::Parser::AST::DeclarationKind kind); + + property unsigned int NamespacesCount + { + unsigned int get(); + } + + property unsigned int EnumsCount + { + unsigned int get(); + } + + property unsigned int FunctionsCount + { + unsigned int get(); + } + + property unsigned int ClassesCount + { + unsigned int get(); + } + + property unsigned int TemplatesCount + { + unsigned int get(); + } + + property unsigned int TypedefsCount + { + unsigned int get(); + } + + property unsigned int VariablesCount + { + unsigned int get(); + } + + property bool IsAnonymous + { + bool get(); + void set(bool); + } + + CppSharp::Parser::AST::Namespace^ getNamespaces(unsigned int i); + + void addNamespaces(CppSharp::Parser::AST::Namespace^ s); + + CppSharp::Parser::AST::Enumeration^ getEnums(unsigned int i); + + void addEnums(CppSharp::Parser::AST::Enumeration^ s); + + CppSharp::Parser::AST::Function^ getFunctions(unsigned int i); + + void addFunctions(CppSharp::Parser::AST::Function^ s); + + CppSharp::Parser::AST::Class^ getClasses(unsigned int i); + + void addClasses(CppSharp::Parser::AST::Class^ s); + + CppSharp::Parser::AST::Template^ getTemplates(unsigned int i); + + void addTemplates(CppSharp::Parser::AST::Template^ s); + + CppSharp::Parser::AST::TypedefDecl^ getTypedefs(unsigned int i); + + void addTypedefs(CppSharp::Parser::AST::TypedefDecl^ s); + + CppSharp::Parser::AST::Variable^ getVariables(unsigned int i); + + void addVariables(CppSharp::Parser::AST::Variable^ s); + }; + + public ref class TypedefDecl : CppSharp::Parser::AST::Declaration + { + public: + + TypedefDecl(::CppSharp::CppParser::AST::TypedefDecl* native); + TypedefDecl(System::IntPtr native); + TypedefDecl(); + + property CppSharp::Parser::AST::QualifiedType^ QualifiedType + { + CppSharp::Parser::AST::QualifiedType^ get(); + void set(CppSharp::Parser::AST::QualifiedType^); + } + }; + + public ref class Parameter : CppSharp::Parser::AST::Declaration + { + public: + + Parameter(::CppSharp::CppParser::AST::Parameter* native); + Parameter(System::IntPtr native); + Parameter(); + + property CppSharp::Parser::AST::QualifiedType^ QualifiedType + { + CppSharp::Parser::AST::QualifiedType^ get(); + void set(CppSharp::Parser::AST::QualifiedType^); + } + + property bool IsIndirect + { + bool get(); + void set(bool); + } + + property bool HasDefaultValue + { + bool get(); + void set(bool); + } + + property unsigned int Index + { + unsigned int get(); + void set(unsigned int); + } + }; + + public ref class Function : CppSharp::Parser::AST::Declaration + { + public: + + Function(::CppSharp::CppParser::AST::Function* native); + Function(System::IntPtr native); + Function(); + + property System::String^ Mangled + { + System::String^ get(); + void set(System::String^); + } + + property System::String^ Signature + { + System::String^ get(); + void set(System::String^); + } + + property unsigned int ParametersCount + { + unsigned int get(); + } + + property CppSharp::Parser::AST::QualifiedType^ ReturnType + { + CppSharp::Parser::AST::QualifiedType^ get(); + void set(CppSharp::Parser::AST::QualifiedType^); + } + + property bool IsReturnIndirect + { + bool get(); + void set(bool); + } + + property bool IsVariadic + { + bool get(); + void set(bool); + } + + property bool IsInline + { + bool get(); + void set(bool); + } + + property bool IsPure + { + bool get(); + void set(bool); + } + + property bool IsDeleted + { + bool get(); + void set(bool); + } + + property CppSharp::Parser::AST::CXXOperatorKind OperatorKind + { + CppSharp::Parser::AST::CXXOperatorKind get(); + void set(CppSharp::Parser::AST::CXXOperatorKind); + } + + property CppSharp::Parser::AST::CallingConvention CallingConvention + { + CppSharp::Parser::AST::CallingConvention get(); + void set(CppSharp::Parser::AST::CallingConvention); + } + + CppSharp::Parser::AST::Parameter^ getParameters(unsigned int i); + + void addParameters(CppSharp::Parser::AST::Parameter^ s); + }; + + public ref class Method : CppSharp::Parser::AST::Function + { + public: + + Method(::CppSharp::CppParser::AST::Method* native); + Method(System::IntPtr native); + Method(); + + property CppSharp::Parser::AST::AccessSpecifierDecl^ AccessDecl + { + CppSharp::Parser::AST::AccessSpecifierDecl^ get(); + void set(CppSharp::Parser::AST::AccessSpecifierDecl^); + } + + property bool IsVirtual + { + bool get(); + void set(bool); + } + + property bool IsStatic + { + bool get(); + void set(bool); + } + + property bool IsConst + { + bool get(); + void set(bool); + } + + property bool IsImplicit + { + bool get(); + void set(bool); + } + + property bool IsExplicit + { + bool get(); + void set(bool); + } + + property bool IsOverride + { + bool get(); + void set(bool); + } + + property CppSharp::Parser::AST::CXXMethodKind MethodKind + { + CppSharp::Parser::AST::CXXMethodKind get(); + void set(CppSharp::Parser::AST::CXXMethodKind); + } + + property bool IsDefaultConstructor + { + bool get(); + void set(bool); + } + + property bool IsCopyConstructor + { + bool get(); + void set(bool); + } + + property bool IsMoveConstructor + { + bool get(); + void set(bool); + } + + property CppSharp::Parser::AST::QualifiedType^ ConversionType + { + CppSharp::Parser::AST::QualifiedType^ get(); + void set(CppSharp::Parser::AST::QualifiedType^); + } + }; + + public ref class Enumeration : CppSharp::Parser::AST::Declaration + { + public: + + [System::Flags] + enum struct EnumModifiers + { + Anonymous = 1, + Scoped = 2, + Flags = 4 + }; + + ref class Item : CppSharp::Parser::AST::Declaration + { + public: + + Item(::CppSharp::CppParser::AST::Enumeration::Item* native); + Item(System::IntPtr native); + Item(); + + property System::String^ Expression + { + System::String^ get(); + void set(System::String^); + } + + property unsigned long long Value + { + unsigned long long get(); + void set(unsigned long long); + } + }; + + Enumeration(::CppSharp::CppParser::AST::Enumeration* native); + Enumeration(System::IntPtr native); + Enumeration(); + + property unsigned int ItemsCount + { + unsigned int get(); + } + + property CppSharp::Parser::AST::Enumeration::EnumModifiers Modifiers + { + CppSharp::Parser::AST::Enumeration::EnumModifiers get(); + void set(CppSharp::Parser::AST::Enumeration::EnumModifiers); + } + + property CppSharp::Parser::AST::Type^ Type + { + CppSharp::Parser::AST::Type^ get(); + void set(CppSharp::Parser::AST::Type^); + } + + property CppSharp::Parser::AST::BuiltinType^ BuiltinType + { + CppSharp::Parser::AST::BuiltinType^ get(); + void set(CppSharp::Parser::AST::BuiltinType^); + } + + CppSharp::Parser::AST::Enumeration::Item^ getItems(unsigned int i); + + void addItems(CppSharp::Parser::AST::Enumeration::Item^ s); + }; + + public ref class Variable : CppSharp::Parser::AST::Declaration + { + public: + + Variable(::CppSharp::CppParser::AST::Variable* native); + Variable(System::IntPtr native); + Variable(); + + property System::String^ Mangled + { + System::String^ get(); + void set(System::String^); + } + + property CppSharp::Parser::AST::QualifiedType^ QualifiedType + { + CppSharp::Parser::AST::QualifiedType^ get(); + void set(CppSharp::Parser::AST::QualifiedType^); + } + }; + + public ref class BaseClassSpecifier : ICppInstance + { + public: + + property ::CppSharp::CppParser::AST::BaseClassSpecifier* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + BaseClassSpecifier(::CppSharp::CppParser::AST::BaseClassSpecifier* native); + BaseClassSpecifier(System::IntPtr native); + BaseClassSpecifier(); + + property CppSharp::Parser::AST::AccessSpecifier Access + { + CppSharp::Parser::AST::AccessSpecifier get(); + void set(CppSharp::Parser::AST::AccessSpecifier); + } + + property bool IsVirtual + { + bool get(); + void set(bool); + } + + property CppSharp::Parser::AST::Type^ Type + { + CppSharp::Parser::AST::Type^ get(); + void set(CppSharp::Parser::AST::Type^); + } + }; + + public ref class Field : CppSharp::Parser::AST::Declaration + { + public: + + Field(::CppSharp::CppParser::AST::Field* native); + Field(System::IntPtr native); + Field(); + + property CppSharp::Parser::AST::QualifiedType^ QualifiedType + { + CppSharp::Parser::AST::QualifiedType^ get(); + void set(CppSharp::Parser::AST::QualifiedType^); + } + + property unsigned int Offset + { + unsigned int get(); + void set(unsigned int); + } + + property CppSharp::Parser::AST::Class^ Class + { + CppSharp::Parser::AST::Class^ get(); + void set(CppSharp::Parser::AST::Class^); + } + }; + + public ref class AccessSpecifierDecl : CppSharp::Parser::AST::Declaration + { + public: + + AccessSpecifierDecl(::CppSharp::CppParser::AST::AccessSpecifierDecl* native); + AccessSpecifierDecl(System::IntPtr native); + AccessSpecifierDecl(); + }; + + public ref class Class : CppSharp::Parser::AST::DeclarationContext + { + public: + + Class(::CppSharp::CppParser::AST::Class* native); + Class(System::IntPtr native); + Class(); + + property unsigned int BasesCount + { + unsigned int get(); + } + + property unsigned int FieldsCount + { + unsigned int get(); + } + + property unsigned int MethodsCount + { + unsigned int get(); + } + + property unsigned int SpecifiersCount + { + unsigned int get(); + } + + property bool IsPOD + { + bool get(); + void set(bool); + } + + property bool IsAbstract + { + bool get(); + void set(bool); + } + + property bool IsUnion + { + bool get(); + void set(bool); + } + + property bool IsDynamic + { + bool get(); + void set(bool); + } + + property bool IsPolymorphic + { + bool get(); + void set(bool); + } + + property bool HasNonTrivialDefaultConstructor + { + bool get(); + void set(bool); + } + + property bool HasNonTrivialCopyConstructor + { + bool get(); + void set(bool); + } + + property bool HasNonTrivialDestructor + { + bool get(); + void set(bool); + } + + property bool IsExternCContext + { + bool get(); + void set(bool); + } + + property CppSharp::Parser::AST::ClassLayout^ Layout + { + CppSharp::Parser::AST::ClassLayout^ get(); + void set(CppSharp::Parser::AST::ClassLayout^); + } + + CppSharp::Parser::AST::BaseClassSpecifier^ getBases(unsigned int i); + + void addBases(CppSharp::Parser::AST::BaseClassSpecifier^ s); + + CppSharp::Parser::AST::Field^ getFields(unsigned int i); + + void addFields(CppSharp::Parser::AST::Field^ s); + + CppSharp::Parser::AST::Method^ getMethods(unsigned int i); + + void addMethods(CppSharp::Parser::AST::Method^ s); + + CppSharp::Parser::AST::AccessSpecifierDecl^ getSpecifiers(unsigned int i); + + void addSpecifiers(CppSharp::Parser::AST::AccessSpecifierDecl^ s); + }; + + public ref class Template : CppSharp::Parser::AST::Declaration + { + public: + + Template(::CppSharp::CppParser::AST::Template* native); + Template(System::IntPtr native); + Template(CppSharp::Parser::AST::DeclarationKind kind); + + Template(); + + property unsigned int ParametersCount + { + unsigned int get(); + } + + property CppSharp::Parser::AST::Declaration^ TemplatedDecl + { + CppSharp::Parser::AST::Declaration^ get(); + void set(CppSharp::Parser::AST::Declaration^); + } + + CppSharp::Parser::AST::TemplateParameter^ getParameters(unsigned int i); + + void addParameters(CppSharp::Parser::AST::TemplateParameter^ s); + }; + + public ref class ClassTemplate : CppSharp::Parser::AST::Template + { + public: + + ClassTemplate(::CppSharp::CppParser::AST::ClassTemplate* native); + ClassTemplate(System::IntPtr native); + ClassTemplate(); + + property unsigned int SpecializationsCount + { + unsigned int get(); + } + + CppSharp::Parser::AST::ClassTemplateSpecialization^ getSpecializations(unsigned int i); + + void addSpecializations(CppSharp::Parser::AST::ClassTemplateSpecialization^ s); + + CppSharp::Parser::AST::ClassTemplateSpecialization^ FindSpecialization(void* ptr); + + CppSharp::Parser::AST::ClassTemplateSpecialization^ FindSpecialization(CppSharp::Parser::AST::TemplateSpecializationType^ type); + + CppSharp::Parser::AST::ClassTemplatePartialSpecialization^ FindPartialSpecialization(void* ptr); + + CppSharp::Parser::AST::ClassTemplatePartialSpecialization^ FindPartialSpecialization(CppSharp::Parser::AST::TemplateSpecializationType^ type); + }; + + public ref class ClassTemplateSpecialization : CppSharp::Parser::AST::Class + { + public: + + ClassTemplateSpecialization(::CppSharp::CppParser::AST::ClassTemplateSpecialization* native); + ClassTemplateSpecialization(System::IntPtr native); + ClassTemplateSpecialization(); + + property unsigned int ArgumentsCount + { + unsigned int get(); + } + + property CppSharp::Parser::AST::ClassTemplate^ TemplatedDecl + { + CppSharp::Parser::AST::ClassTemplate^ get(); + void set(CppSharp::Parser::AST::ClassTemplate^); + } + + property CppSharp::Parser::AST::TemplateSpecializationKind SpecializationKind + { + CppSharp::Parser::AST::TemplateSpecializationKind get(); + void set(CppSharp::Parser::AST::TemplateSpecializationKind); + } + + CppSharp::Parser::AST::TemplateArgument^ getArguments(unsigned int i); + + void addArguments(CppSharp::Parser::AST::TemplateArgument^ s); + }; + + public ref class ClassTemplatePartialSpecialization : CppSharp::Parser::AST::ClassTemplateSpecialization + { + public: + + ClassTemplatePartialSpecialization(::CppSharp::CppParser::AST::ClassTemplatePartialSpecialization* native); + ClassTemplatePartialSpecialization(System::IntPtr native); + ClassTemplatePartialSpecialization(); + }; + + public ref class FunctionTemplate : CppSharp::Parser::AST::Template + { + public: + + FunctionTemplate(::CppSharp::CppParser::AST::FunctionTemplate* native); + FunctionTemplate(System::IntPtr native); + FunctionTemplate(); + }; + + public ref class Namespace : CppSharp::Parser::AST::DeclarationContext + { + public: + + Namespace(::CppSharp::CppParser::AST::Namespace* native); + Namespace(System::IntPtr native); + Namespace(); + + property bool IsInline + { + bool get(); + void set(bool); + } + }; + + public ref class PreprocessedEntity : CppSharp::Parser::AST::Declaration + { + public: + + PreprocessedEntity(::CppSharp::CppParser::AST::PreprocessedEntity* native); + PreprocessedEntity(System::IntPtr native); + PreprocessedEntity(); + + property CppSharp::Parser::AST::MacroLocation Location + { + CppSharp::Parser::AST::MacroLocation get(); + void set(CppSharp::Parser::AST::MacroLocation); + } + }; + + public ref class MacroDefinition : CppSharp::Parser::AST::PreprocessedEntity + { + public: + + MacroDefinition(::CppSharp::CppParser::AST::MacroDefinition* native); + MacroDefinition(System::IntPtr native); + MacroDefinition(); + + property System::String^ Expression + { + System::String^ get(); + void set(System::String^); + } + }; + + public ref class MacroExpansion : CppSharp::Parser::AST::PreprocessedEntity + { + public: + + MacroExpansion(::CppSharp::CppParser::AST::MacroExpansion* native); + MacroExpansion(System::IntPtr native); + MacroExpansion(); + + property System::String^ Text + { + System::String^ get(); + void set(System::String^); + } + + property CppSharp::Parser::AST::MacroDefinition^ Definition + { + CppSharp::Parser::AST::MacroDefinition^ get(); + void set(CppSharp::Parser::AST::MacroDefinition^); + } + }; + + public ref class TranslationUnit : CppSharp::Parser::AST::Namespace + { + public: + + TranslationUnit(::CppSharp::CppParser::AST::TranslationUnit* native); + TranslationUnit(System::IntPtr native); + TranslationUnit(); + + property System::String^ FileName + { + System::String^ get(); + void set(System::String^); + } + + property unsigned int MacrosCount + { + unsigned int get(); + } + + property bool IsSystemHeader + { + bool get(); + void set(bool); + } + + CppSharp::Parser::AST::MacroDefinition^ getMacros(unsigned int i); + + void addMacros(CppSharp::Parser::AST::MacroDefinition^ s); + }; + + public ref class NativeLibrary : ICppInstance + { + public: + + property ::CppSharp::CppParser::AST::NativeLibrary* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + NativeLibrary(::CppSharp::CppParser::AST::NativeLibrary* native); + NativeLibrary(System::IntPtr native); + NativeLibrary(); + + property System::String^ FileName + { + System::String^ get(); + void set(System::String^); + } + + property unsigned int SymbolsCount + { + unsigned int get(); + } + + System::String^ getSymbols(unsigned int i); + + void addSymbols(System::String^ s); + }; + + public ref class ASTContext : ICppInstance + { + public: + + property ::CppSharp::CppParser::AST::ASTContext* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + ASTContext(::CppSharp::CppParser::AST::ASTContext* native); + ASTContext(System::IntPtr native); + ASTContext(); + + property unsigned int TranslationUnitsCount + { + unsigned int get(); + } + + CppSharp::Parser::AST::TranslationUnit^ getTranslationUnits(unsigned int i); + + void addTranslationUnits(CppSharp::Parser::AST::TranslationUnit^ s); + }; + + public ref class Comment : ICppInstance + { + public: + + property ::CppSharp::CppParser::AST::Comment* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + Comment(::CppSharp::CppParser::AST::Comment* native); + Comment(System::IntPtr native); + Comment(CppSharp::Parser::AST::CommentKind kind); + + property CppSharp::Parser::AST::CommentKind Kind + { + CppSharp::Parser::AST::CommentKind get(); + void set(CppSharp::Parser::AST::CommentKind); + } + }; + + public ref class FullComment : CppSharp::Parser::AST::Comment + { + public: + + FullComment(::CppSharp::CppParser::AST::FullComment* native); + FullComment(System::IntPtr native); + FullComment(); + }; + + public ref class RawComment : ICppInstance + { + public: + + property ::CppSharp::CppParser::AST::RawComment* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + RawComment(::CppSharp::CppParser::AST::RawComment* native); + RawComment(System::IntPtr native); + RawComment(); + + property System::String^ Text + { + System::String^ get(); + void set(System::String^); + } + + property System::String^ BriefText + { + System::String^ get(); + void set(System::String^); + } + + property CppSharp::Parser::AST::RawCommentKind RawCommentKind + { + CppSharp::Parser::AST::RawCommentKind get(); + void set(CppSharp::Parser::AST::RawCommentKind); + } + + property CppSharp::Parser::AST::FullComment^ FullComment + { + CppSharp::Parser::AST::FullComment^ get(); + void set(CppSharp::Parser::AST::FullComment^); + } + }; + } + } +} diff --git a/src/CppParser/Bindings/CLI/CppParser.cpp b/src/CppParser/Bindings/CLI/CppParser.cpp index 1c8e1935..a2bb17fa 100644 --- a/src/CppParser/Bindings/CLI/CppParser.cpp +++ b/src/CppParser/Bindings/CLI/CppParser.cpp @@ -1,439 +1,439 @@ -#include "CppParser.h" -#include "AST.h" -#include "Target.h" - -using namespace System; -using namespace System::Runtime::InteropServices; - -CppSharp::Parser::ParserOptions::ParserOptions(::CppSharp::CppParser::ParserOptions* native) -{ - NativePtr = native; -} - -CppSharp::Parser::ParserOptions::ParserOptions(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::ParserOptions*)native.ToPointer(); - NativePtr = __native; -} - -CppSharp::Parser::ParserOptions::ParserOptions() -{ - NativePtr = new ::CppSharp::CppParser::ParserOptions(); -} - -System::String^ CppSharp::Parser::ParserOptions::getArguments(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getArguments(i); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::ParserOptions::addArguments(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::ParserOptions*)NativePtr)->addArguments(arg0); -} - -System::String^ CppSharp::Parser::ParserOptions::getIncludeDirs(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getIncludeDirs(i); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::ParserOptions::addIncludeDirs(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::ParserOptions*)NativePtr)->addIncludeDirs(arg0); -} - -System::String^ CppSharp::Parser::ParserOptions::getSystemIncludeDirs(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getSystemIncludeDirs(i); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::ParserOptions::addSystemIncludeDirs(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::ParserOptions*)NativePtr)->addSystemIncludeDirs(arg0); -} - -System::String^ CppSharp::Parser::ParserOptions::getDefines(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getDefines(i); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::ParserOptions::addDefines(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::ParserOptions*)NativePtr)->addDefines(arg0); -} - -System::String^ CppSharp::Parser::ParserOptions::getLibraryDirs(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getLibraryDirs(i); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::ParserOptions::addLibraryDirs(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::ParserOptions*)NativePtr)->addLibraryDirs(arg0); -} - -System::IntPtr CppSharp::Parser::ParserOptions::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::ParserOptions::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::ParserOptions*)object.ToPointer(); -} - -unsigned int CppSharp::Parser::ParserOptions::ArgumentsCount::get() -{ - auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getArgumentsCount(); - return __ret; -} - -System::String^ CppSharp::Parser::ParserOptions::FileName::get() -{ - auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getFileName(); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::ParserOptions::FileName::set(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::ParserOptions*)NativePtr)->setFileName(arg0); -} - -unsigned int CppSharp::Parser::ParserOptions::IncludeDirsCount::get() -{ - auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getIncludeDirsCount(); - return __ret; -} - -unsigned int CppSharp::Parser::ParserOptions::SystemIncludeDirsCount::get() -{ - auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getSystemIncludeDirsCount(); - return __ret; -} - -unsigned int CppSharp::Parser::ParserOptions::DefinesCount::get() -{ - auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getDefinesCount(); - return __ret; -} - -unsigned int CppSharp::Parser::ParserOptions::LibraryDirsCount::get() -{ - auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getLibraryDirsCount(); - return __ret; -} - -System::String^ CppSharp::Parser::ParserOptions::TargetTriple::get() -{ - auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getTargetTriple(); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::ParserOptions::TargetTriple::set(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::ParserOptions*)NativePtr)->setTargetTriple(arg0); -} - -CppSharp::Parser::AST::ASTContext^ CppSharp::Parser::ParserOptions::ASTContext::get() -{ - return (((::CppSharp::CppParser::ParserOptions*)NativePtr)->ASTContext == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ASTContext((::CppSharp::CppParser::AST::ASTContext*)((::CppSharp::CppParser::ParserOptions*)NativePtr)->ASTContext); -} - -void CppSharp::Parser::ParserOptions::ASTContext::set(CppSharp::Parser::AST::ASTContext^ value) -{ - ((::CppSharp::CppParser::ParserOptions*)NativePtr)->ASTContext = (::CppSharp::CppParser::AST::ASTContext*)value->NativePtr; -} - -int CppSharp::Parser::ParserOptions::ToolSetToUse::get() -{ - return ((::CppSharp::CppParser::ParserOptions*)NativePtr)->ToolSetToUse; -} - -void CppSharp::Parser::ParserOptions::ToolSetToUse::set(int value) -{ - ((::CppSharp::CppParser::ParserOptions*)NativePtr)->ToolSetToUse = value; -} - -CppSharp::Parser::AST::CppAbi CppSharp::Parser::ParserOptions::Abi::get() -{ - return (CppSharp::Parser::AST::CppAbi)((::CppSharp::CppParser::ParserOptions*)NativePtr)->Abi; -} - -void CppSharp::Parser::ParserOptions::Abi::set(CppSharp::Parser::AST::CppAbi value) -{ - ((::CppSharp::CppParser::ParserOptions*)NativePtr)->Abi = (::CppSharp::CppParser::AST::CppAbi)value; -} - -bool CppSharp::Parser::ParserOptions::NoStandardIncludes::get() -{ - return ((::CppSharp::CppParser::ParserOptions*)NativePtr)->NoStandardIncludes; -} - -void CppSharp::Parser::ParserOptions::NoStandardIncludes::set(bool value) -{ - ((::CppSharp::CppParser::ParserOptions*)NativePtr)->NoStandardIncludes = value; -} - -bool CppSharp::Parser::ParserOptions::NoBuiltinIncludes::get() -{ - return ((::CppSharp::CppParser::ParserOptions*)NativePtr)->NoBuiltinIncludes; -} - -void CppSharp::Parser::ParserOptions::NoBuiltinIncludes::set(bool value) -{ - ((::CppSharp::CppParser::ParserOptions*)NativePtr)->NoBuiltinIncludes = value; -} - -bool CppSharp::Parser::ParserOptions::MicrosoftMode::get() -{ - return ((::CppSharp::CppParser::ParserOptions*)NativePtr)->MicrosoftMode; -} - -void CppSharp::Parser::ParserOptions::MicrosoftMode::set(bool value) -{ - ((::CppSharp::CppParser::ParserOptions*)NativePtr)->MicrosoftMode = value; -} - -bool CppSharp::Parser::ParserOptions::Verbose::get() -{ - return ((::CppSharp::CppParser::ParserOptions*)NativePtr)->Verbose; -} - -void CppSharp::Parser::ParserOptions::Verbose::set(bool value) -{ - ((::CppSharp::CppParser::ParserOptions*)NativePtr)->Verbose = value; -} - -CppSharp::Parser::ParserDiagnostic::ParserDiagnostic(::CppSharp::CppParser::ParserDiagnostic* native) -{ - NativePtr = native; -} - -CppSharp::Parser::ParserDiagnostic::ParserDiagnostic(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::ParserDiagnostic*)native.ToPointer(); - NativePtr = __native; -} - -CppSharp::Parser::ParserDiagnostic::ParserDiagnostic() -{ - NativePtr = new ::CppSharp::CppParser::ParserDiagnostic(); -} - -System::IntPtr CppSharp::Parser::ParserDiagnostic::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::ParserDiagnostic::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::ParserDiagnostic*)object.ToPointer(); -} - -System::String^ CppSharp::Parser::ParserDiagnostic::FileName::get() -{ - auto __ret = ((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->getFileName(); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::ParserDiagnostic::FileName::set(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->setFileName(arg0); -} - -System::String^ CppSharp::Parser::ParserDiagnostic::Message::get() -{ - auto __ret = ((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->getMessage(); - if (__ret == nullptr) return nullptr; - return clix::marshalString(__ret); -} - -void CppSharp::Parser::ParserDiagnostic::Message::set(System::String^ s) -{ - auto _arg0 = clix::marshalString(s); - auto arg0 = _arg0.c_str(); - ((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->setMessage(arg0); -} - -CppSharp::Parser::ParserDiagnosticLevel CppSharp::Parser::ParserDiagnostic::Level::get() -{ - return (CppSharp::Parser::ParserDiagnosticLevel)((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->Level; -} - -void CppSharp::Parser::ParserDiagnostic::Level::set(CppSharp::Parser::ParserDiagnosticLevel value) -{ - ((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->Level = (::CppSharp::CppParser::ParserDiagnosticLevel)value; -} - -int CppSharp::Parser::ParserDiagnostic::LineNumber::get() -{ - return ((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->LineNumber; -} - -void CppSharp::Parser::ParserDiagnostic::LineNumber::set(int value) -{ - ((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->LineNumber = value; -} - -int CppSharp::Parser::ParserDiagnostic::ColumnNumber::get() -{ - return ((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->ColumnNumber; -} - -void CppSharp::Parser::ParserDiagnostic::ColumnNumber::set(int value) -{ - ((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->ColumnNumber = value; -} - -CppSharp::Parser::ParserResult::ParserResult(::CppSharp::CppParser::ParserResult* native) -{ - NativePtr = native; -} - -CppSharp::Parser::ParserResult::ParserResult(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::ParserResult*)native.ToPointer(); - NativePtr = __native; -} - -CppSharp::Parser::ParserResult::ParserResult() -{ - NativePtr = new ::CppSharp::CppParser::ParserResult(); -} - -CppSharp::Parser::ParserDiagnostic^ CppSharp::Parser::ParserResult::getDiagnostics(unsigned int i) -{ - auto __ret = ((::CppSharp::CppParser::ParserResult*)NativePtr)->getDiagnostics(i); - auto ____ret = new ::CppSharp::CppParser::ParserDiagnostic(__ret); - return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::ParserDiagnostic((::CppSharp::CppParser::ParserDiagnostic*)____ret); -} - -void CppSharp::Parser::ParserResult::addDiagnostics(CppSharp::Parser::ParserDiagnostic^ s) -{ - auto &arg0 = *(::CppSharp::CppParser::ParserDiagnostic*)s->NativePtr; - ((::CppSharp::CppParser::ParserResult*)NativePtr)->addDiagnostics(arg0); -} - -System::IntPtr CppSharp::Parser::ParserResult::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::ParserResult::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::ParserResult*)object.ToPointer(); -} - -unsigned int CppSharp::Parser::ParserResult::DiagnosticsCount::get() -{ - auto __ret = ((::CppSharp::CppParser::ParserResult*)NativePtr)->getDiagnosticsCount(); - return __ret; -} - -CppSharp::Parser::ParserResultKind CppSharp::Parser::ParserResult::Kind::get() -{ - return (CppSharp::Parser::ParserResultKind)((::CppSharp::CppParser::ParserResult*)NativePtr)->Kind; -} - -void CppSharp::Parser::ParserResult::Kind::set(CppSharp::Parser::ParserResultKind value) -{ - ((::CppSharp::CppParser::ParserResult*)NativePtr)->Kind = (::CppSharp::CppParser::ParserResultKind)value; -} - -CppSharp::Parser::AST::ASTContext^ CppSharp::Parser::ParserResult::ASTContext::get() -{ - return (((::CppSharp::CppParser::ParserResult*)NativePtr)->ASTContext == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ASTContext((::CppSharp::CppParser::AST::ASTContext*)((::CppSharp::CppParser::ParserResult*)NativePtr)->ASTContext); -} - -void CppSharp::Parser::ParserResult::ASTContext::set(CppSharp::Parser::AST::ASTContext^ value) -{ - ((::CppSharp::CppParser::ParserResult*)NativePtr)->ASTContext = (::CppSharp::CppParser::AST::ASTContext*)value->NativePtr; -} - -CppSharp::Parser::AST::NativeLibrary^ CppSharp::Parser::ParserResult::Library::get() -{ - return (((::CppSharp::CppParser::ParserResult*)NativePtr)->Library == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::NativeLibrary((::CppSharp::CppParser::AST::NativeLibrary*)((::CppSharp::CppParser::ParserResult*)NativePtr)->Library); -} - -void CppSharp::Parser::ParserResult::Library::set(CppSharp::Parser::AST::NativeLibrary^ value) -{ - ((::CppSharp::CppParser::ParserResult*)NativePtr)->Library = (::CppSharp::CppParser::AST::NativeLibrary*)value->NativePtr; -} - -CppSharp::Parser::ClangParser::ClangParser(::CppSharp::CppParser::ClangParser* native) -{ - NativePtr = native; -} - -CppSharp::Parser::ClangParser::ClangParser(System::IntPtr native) -{ - auto __native = (::CppSharp::CppParser::ClangParser*)native.ToPointer(); - NativePtr = __native; -} - -CppSharp::Parser::ParserResult^ CppSharp::Parser::ClangParser::ParseHeader(CppSharp::Parser::ParserOptions^ Opts) -{ - auto arg0 = (::CppSharp::CppParser::ParserOptions*)Opts->NativePtr; - auto __ret = ::CppSharp::CppParser::ClangParser::ParseHeader(arg0); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::ParserResult((::CppSharp::CppParser::ParserResult*)__ret); -} - -CppSharp::Parser::ParserResult^ CppSharp::Parser::ClangParser::ParseLibrary(CppSharp::Parser::ParserOptions^ Opts) -{ - auto arg0 = (::CppSharp::CppParser::ParserOptions*)Opts->NativePtr; - auto __ret = ::CppSharp::CppParser::ClangParser::ParseLibrary(arg0); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::ParserResult((::CppSharp::CppParser::ParserResult*)__ret); -} - -CppSharp::Parser::ParserTargetInfo^ CppSharp::Parser::ClangParser::GetTargetInfo(CppSharp::Parser::ParserOptions^ Opts) -{ - auto arg0 = (::CppSharp::CppParser::ParserOptions*)Opts->NativePtr; - auto __ret = ::CppSharp::CppParser::ClangParser::GetTargetInfo(arg0); - if (__ret == nullptr) return nullptr; - return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::ParserTargetInfo((::CppSharp::CppParser::ParserTargetInfo*)__ret); -} - -CppSharp::Parser::ClangParser::ClangParser() -{ - NativePtr = new ::CppSharp::CppParser::ClangParser(); -} - -System::IntPtr CppSharp::Parser::ClangParser::__Instance::get() -{ - return System::IntPtr(NativePtr); -} - -void CppSharp::Parser::ClangParser::__Instance::set(System::IntPtr object) -{ - NativePtr = (::CppSharp::CppParser::ClangParser*)object.ToPointer(); -} +#include "CppParser.h" +#include "AST.h" +#include "Target.h" + +using namespace System; +using namespace System::Runtime::InteropServices; + +CppSharp::Parser::ParserOptions::ParserOptions(::CppSharp::CppParser::ParserOptions* native) +{ + NativePtr = native; +} + +CppSharp::Parser::ParserOptions::ParserOptions(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::ParserOptions*)native.ToPointer(); + NativePtr = __native; +} + +CppSharp::Parser::ParserOptions::ParserOptions() +{ + NativePtr = new ::CppSharp::CppParser::ParserOptions(); +} + +System::String^ CppSharp::Parser::ParserOptions::getArguments(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getArguments(i); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::ParserOptions::addArguments(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::ParserOptions*)NativePtr)->addArguments(arg0); +} + +System::String^ CppSharp::Parser::ParserOptions::getIncludeDirs(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getIncludeDirs(i); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::ParserOptions::addIncludeDirs(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::ParserOptions*)NativePtr)->addIncludeDirs(arg0); +} + +System::String^ CppSharp::Parser::ParserOptions::getSystemIncludeDirs(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getSystemIncludeDirs(i); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::ParserOptions::addSystemIncludeDirs(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::ParserOptions*)NativePtr)->addSystemIncludeDirs(arg0); +} + +System::String^ CppSharp::Parser::ParserOptions::getDefines(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getDefines(i); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::ParserOptions::addDefines(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::ParserOptions*)NativePtr)->addDefines(arg0); +} + +System::String^ CppSharp::Parser::ParserOptions::getLibraryDirs(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getLibraryDirs(i); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::ParserOptions::addLibraryDirs(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::ParserOptions*)NativePtr)->addLibraryDirs(arg0); +} + +System::IntPtr CppSharp::Parser::ParserOptions::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::ParserOptions::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::ParserOptions*)object.ToPointer(); +} + +unsigned int CppSharp::Parser::ParserOptions::ArgumentsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getArgumentsCount(); + return __ret; +} + +System::String^ CppSharp::Parser::ParserOptions::FileName::get() +{ + auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getFileName(); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::ParserOptions::FileName::set(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::ParserOptions*)NativePtr)->setFileName(arg0); +} + +unsigned int CppSharp::Parser::ParserOptions::IncludeDirsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getIncludeDirsCount(); + return __ret; +} + +unsigned int CppSharp::Parser::ParserOptions::SystemIncludeDirsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getSystemIncludeDirsCount(); + return __ret; +} + +unsigned int CppSharp::Parser::ParserOptions::DefinesCount::get() +{ + auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getDefinesCount(); + return __ret; +} + +unsigned int CppSharp::Parser::ParserOptions::LibraryDirsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getLibraryDirsCount(); + return __ret; +} + +System::String^ CppSharp::Parser::ParserOptions::TargetTriple::get() +{ + auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getTargetTriple(); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::ParserOptions::TargetTriple::set(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::ParserOptions*)NativePtr)->setTargetTriple(arg0); +} + +CppSharp::Parser::AST::ASTContext^ CppSharp::Parser::ParserOptions::ASTContext::get() +{ + return (((::CppSharp::CppParser::ParserOptions*)NativePtr)->ASTContext == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ASTContext((::CppSharp::CppParser::AST::ASTContext*)((::CppSharp::CppParser::ParserOptions*)NativePtr)->ASTContext); +} + +void CppSharp::Parser::ParserOptions::ASTContext::set(CppSharp::Parser::AST::ASTContext^ value) +{ + ((::CppSharp::CppParser::ParserOptions*)NativePtr)->ASTContext = (::CppSharp::CppParser::AST::ASTContext*)value->NativePtr; +} + +int CppSharp::Parser::ParserOptions::ToolSetToUse::get() +{ + return ((::CppSharp::CppParser::ParserOptions*)NativePtr)->ToolSetToUse; +} + +void CppSharp::Parser::ParserOptions::ToolSetToUse::set(int value) +{ + ((::CppSharp::CppParser::ParserOptions*)NativePtr)->ToolSetToUse = value; +} + +CppSharp::Parser::AST::CppAbi CppSharp::Parser::ParserOptions::Abi::get() +{ + return (CppSharp::Parser::AST::CppAbi)((::CppSharp::CppParser::ParserOptions*)NativePtr)->Abi; +} + +void CppSharp::Parser::ParserOptions::Abi::set(CppSharp::Parser::AST::CppAbi value) +{ + ((::CppSharp::CppParser::ParserOptions*)NativePtr)->Abi = (::CppSharp::CppParser::AST::CppAbi)value; +} + +bool CppSharp::Parser::ParserOptions::NoStandardIncludes::get() +{ + return ((::CppSharp::CppParser::ParserOptions*)NativePtr)->NoStandardIncludes; +} + +void CppSharp::Parser::ParserOptions::NoStandardIncludes::set(bool value) +{ + ((::CppSharp::CppParser::ParserOptions*)NativePtr)->NoStandardIncludes = value; +} + +bool CppSharp::Parser::ParserOptions::NoBuiltinIncludes::get() +{ + return ((::CppSharp::CppParser::ParserOptions*)NativePtr)->NoBuiltinIncludes; +} + +void CppSharp::Parser::ParserOptions::NoBuiltinIncludes::set(bool value) +{ + ((::CppSharp::CppParser::ParserOptions*)NativePtr)->NoBuiltinIncludes = value; +} + +bool CppSharp::Parser::ParserOptions::MicrosoftMode::get() +{ + return ((::CppSharp::CppParser::ParserOptions*)NativePtr)->MicrosoftMode; +} + +void CppSharp::Parser::ParserOptions::MicrosoftMode::set(bool value) +{ + ((::CppSharp::CppParser::ParserOptions*)NativePtr)->MicrosoftMode = value; +} + +bool CppSharp::Parser::ParserOptions::Verbose::get() +{ + return ((::CppSharp::CppParser::ParserOptions*)NativePtr)->Verbose; +} + +void CppSharp::Parser::ParserOptions::Verbose::set(bool value) +{ + ((::CppSharp::CppParser::ParserOptions*)NativePtr)->Verbose = value; +} + +CppSharp::Parser::ParserDiagnostic::ParserDiagnostic(::CppSharp::CppParser::ParserDiagnostic* native) +{ + NativePtr = native; +} + +CppSharp::Parser::ParserDiagnostic::ParserDiagnostic(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::ParserDiagnostic*)native.ToPointer(); + NativePtr = __native; +} + +CppSharp::Parser::ParserDiagnostic::ParserDiagnostic() +{ + NativePtr = new ::CppSharp::CppParser::ParserDiagnostic(); +} + +System::IntPtr CppSharp::Parser::ParserDiagnostic::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::ParserDiagnostic::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::ParserDiagnostic*)object.ToPointer(); +} + +System::String^ CppSharp::Parser::ParserDiagnostic::FileName::get() +{ + auto __ret = ((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->getFileName(); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::ParserDiagnostic::FileName::set(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->setFileName(arg0); +} + +System::String^ CppSharp::Parser::ParserDiagnostic::Message::get() +{ + auto __ret = ((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->getMessage(); + if (__ret == nullptr) return nullptr; + return clix::marshalString(__ret); +} + +void CppSharp::Parser::ParserDiagnostic::Message::set(System::String^ s) +{ + auto _arg0 = clix::marshalString(s); + auto arg0 = _arg0.c_str(); + ((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->setMessage(arg0); +} + +CppSharp::Parser::ParserDiagnosticLevel CppSharp::Parser::ParserDiagnostic::Level::get() +{ + return (CppSharp::Parser::ParserDiagnosticLevel)((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->Level; +} + +void CppSharp::Parser::ParserDiagnostic::Level::set(CppSharp::Parser::ParserDiagnosticLevel value) +{ + ((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->Level = (::CppSharp::CppParser::ParserDiagnosticLevel)value; +} + +int CppSharp::Parser::ParserDiagnostic::LineNumber::get() +{ + return ((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->LineNumber; +} + +void CppSharp::Parser::ParserDiagnostic::LineNumber::set(int value) +{ + ((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->LineNumber = value; +} + +int CppSharp::Parser::ParserDiagnostic::ColumnNumber::get() +{ + return ((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->ColumnNumber; +} + +void CppSharp::Parser::ParserDiagnostic::ColumnNumber::set(int value) +{ + ((::CppSharp::CppParser::ParserDiagnostic*)NativePtr)->ColumnNumber = value; +} + +CppSharp::Parser::ParserResult::ParserResult(::CppSharp::CppParser::ParserResult* native) +{ + NativePtr = native; +} + +CppSharp::Parser::ParserResult::ParserResult(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::ParserResult*)native.ToPointer(); + NativePtr = __native; +} + +CppSharp::Parser::ParserResult::ParserResult() +{ + NativePtr = new ::CppSharp::CppParser::ParserResult(); +} + +CppSharp::Parser::ParserDiagnostic^ CppSharp::Parser::ParserResult::getDiagnostics(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::ParserResult*)NativePtr)->getDiagnostics(i); + auto ____ret = new ::CppSharp::CppParser::ParserDiagnostic(__ret); + return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::ParserDiagnostic((::CppSharp::CppParser::ParserDiagnostic*)____ret); +} + +void CppSharp::Parser::ParserResult::addDiagnostics(CppSharp::Parser::ParserDiagnostic^ s) +{ + auto &arg0 = *(::CppSharp::CppParser::ParserDiagnostic*)s->NativePtr; + ((::CppSharp::CppParser::ParserResult*)NativePtr)->addDiagnostics(arg0); +} + +System::IntPtr CppSharp::Parser::ParserResult::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::ParserResult::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::ParserResult*)object.ToPointer(); +} + +unsigned int CppSharp::Parser::ParserResult::DiagnosticsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::ParserResult*)NativePtr)->getDiagnosticsCount(); + return __ret; +} + +CppSharp::Parser::ParserResultKind CppSharp::Parser::ParserResult::Kind::get() +{ + return (CppSharp::Parser::ParserResultKind)((::CppSharp::CppParser::ParserResult*)NativePtr)->Kind; +} + +void CppSharp::Parser::ParserResult::Kind::set(CppSharp::Parser::ParserResultKind value) +{ + ((::CppSharp::CppParser::ParserResult*)NativePtr)->Kind = (::CppSharp::CppParser::ParserResultKind)value; +} + +CppSharp::Parser::AST::ASTContext^ CppSharp::Parser::ParserResult::ASTContext::get() +{ + return (((::CppSharp::CppParser::ParserResult*)NativePtr)->ASTContext == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ASTContext((::CppSharp::CppParser::AST::ASTContext*)((::CppSharp::CppParser::ParserResult*)NativePtr)->ASTContext); +} + +void CppSharp::Parser::ParserResult::ASTContext::set(CppSharp::Parser::AST::ASTContext^ value) +{ + ((::CppSharp::CppParser::ParserResult*)NativePtr)->ASTContext = (::CppSharp::CppParser::AST::ASTContext*)value->NativePtr; +} + +CppSharp::Parser::AST::NativeLibrary^ CppSharp::Parser::ParserResult::Library::get() +{ + return (((::CppSharp::CppParser::ParserResult*)NativePtr)->Library == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::NativeLibrary((::CppSharp::CppParser::AST::NativeLibrary*)((::CppSharp::CppParser::ParserResult*)NativePtr)->Library); +} + +void CppSharp::Parser::ParserResult::Library::set(CppSharp::Parser::AST::NativeLibrary^ value) +{ + ((::CppSharp::CppParser::ParserResult*)NativePtr)->Library = (::CppSharp::CppParser::AST::NativeLibrary*)value->NativePtr; +} + +CppSharp::Parser::ClangParser::ClangParser(::CppSharp::CppParser::ClangParser* native) +{ + NativePtr = native; +} + +CppSharp::Parser::ClangParser::ClangParser(System::IntPtr native) +{ + auto __native = (::CppSharp::CppParser::ClangParser*)native.ToPointer(); + NativePtr = __native; +} + +CppSharp::Parser::ParserResult^ CppSharp::Parser::ClangParser::ParseHeader(CppSharp::Parser::ParserOptions^ Opts) +{ + auto arg0 = (::CppSharp::CppParser::ParserOptions*)Opts->NativePtr; + auto __ret = ::CppSharp::CppParser::ClangParser::ParseHeader(arg0); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::ParserResult((::CppSharp::CppParser::ParserResult*)__ret); +} + +CppSharp::Parser::ParserResult^ CppSharp::Parser::ClangParser::ParseLibrary(CppSharp::Parser::ParserOptions^ Opts) +{ + auto arg0 = (::CppSharp::CppParser::ParserOptions*)Opts->NativePtr; + auto __ret = ::CppSharp::CppParser::ClangParser::ParseLibrary(arg0); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::ParserResult((::CppSharp::CppParser::ParserResult*)__ret); +} + +CppSharp::Parser::ParserTargetInfo^ CppSharp::Parser::ClangParser::GetTargetInfo(CppSharp::Parser::ParserOptions^ Opts) +{ + auto arg0 = (::CppSharp::CppParser::ParserOptions*)Opts->NativePtr; + auto __ret = ::CppSharp::CppParser::ClangParser::GetTargetInfo(arg0); + if (__ret == nullptr) return nullptr; + return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::ParserTargetInfo((::CppSharp::CppParser::ParserTargetInfo*)__ret); +} + +CppSharp::Parser::ClangParser::ClangParser() +{ + NativePtr = new ::CppSharp::CppParser::ClangParser(); +} + +System::IntPtr CppSharp::Parser::ClangParser::__Instance::get() +{ + return System::IntPtr(NativePtr); +} + +void CppSharp::Parser::ClangParser::__Instance::set(System::IntPtr object) +{ + NativePtr = (::CppSharp::CppParser::ClangParser*)object.ToPointer(); +} diff --git a/src/CppParser/Bindings/CLI/CppParser.h b/src/CppParser/Bindings/CLI/CppParser.h index 0c51cc71..e0f0f359 100644 --- a/src/CppParser/Bindings/CLI/CppParser.h +++ b/src/CppParser/Bindings/CLI/CppParser.h @@ -1,283 +1,283 @@ -#pragma once - -#include "CppSharp.h" -#include - -namespace CppSharp -{ - namespace Parser - { - enum struct ParserDiagnosticLevel; - enum struct ParserResultKind; - enum struct SourceLocationKind; - ref class ClangParser; - ref class Parser; - ref class ParserDiagnostic; - ref class ParserOptions; - ref class ParserResult; - ref class ParserTargetInfo; - namespace AST - { - enum struct CppAbi; - ref class ASTContext; - ref class NativeLibrary; - } - } -} - -namespace CppSharp -{ - namespace Parser - { - public enum struct ParserDiagnosticLevel - { - Ignored = 0, - Note = 1, - Warning = 2, - Error = 3, - Fatal = 4 - }; - - public enum struct ParserResultKind - { - Success = 0, - Error = 1, - FileNotFound = 2 - }; - - public enum struct SourceLocationKind - { - Invalid = 0, - Builtin = 1, - CommandLine = 2, - System = 3, - User = 4 - }; - - public ref class ParserOptions : ICppInstance - { - public: - - property ::CppSharp::CppParser::ParserOptions* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - ParserOptions(::CppSharp::CppParser::ParserOptions* native); - ParserOptions(System::IntPtr native); - ParserOptions(); - - property unsigned int ArgumentsCount - { - unsigned int get(); - } - - property System::String^ FileName - { - System::String^ get(); - void set(System::String^); - } - - property unsigned int IncludeDirsCount - { - unsigned int get(); - } - - property unsigned int SystemIncludeDirsCount - { - unsigned int get(); - } - - property unsigned int DefinesCount - { - unsigned int get(); - } - - property unsigned int LibraryDirsCount - { - unsigned int get(); - } - - property System::String^ TargetTriple - { - System::String^ get(); - void set(System::String^); - } - - property CppSharp::Parser::AST::ASTContext^ ASTContext - { - CppSharp::Parser::AST::ASTContext^ get(); - void set(CppSharp::Parser::AST::ASTContext^); - } - - property int ToolSetToUse - { - int get(); - void set(int); - } - - property CppSharp::Parser::AST::CppAbi Abi - { - CppSharp::Parser::AST::CppAbi get(); - void set(CppSharp::Parser::AST::CppAbi); - } - - property bool NoStandardIncludes - { - bool get(); - void set(bool); - } - - property bool NoBuiltinIncludes - { - bool get(); - void set(bool); - } - - property bool MicrosoftMode - { - bool get(); - void set(bool); - } - - property bool Verbose - { - bool get(); - void set(bool); - } - - System::String^ getArguments(unsigned int i); - - void addArguments(System::String^ s); - - System::String^ getIncludeDirs(unsigned int i); - - void addIncludeDirs(System::String^ s); - - System::String^ getSystemIncludeDirs(unsigned int i); - - void addSystemIncludeDirs(System::String^ s); - - System::String^ getDefines(unsigned int i); - - void addDefines(System::String^ s); - - System::String^ getLibraryDirs(unsigned int i); - - void addLibraryDirs(System::String^ s); - }; - - public ref class ParserDiagnostic : ICppInstance - { - public: - - property ::CppSharp::CppParser::ParserDiagnostic* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - ParserDiagnostic(::CppSharp::CppParser::ParserDiagnostic* native); - ParserDiagnostic(System::IntPtr native); - ParserDiagnostic(); - - property System::String^ FileName - { - System::String^ get(); - void set(System::String^); - } - - property System::String^ Message - { - System::String^ get(); - void set(System::String^); - } - - property CppSharp::Parser::ParserDiagnosticLevel Level - { - CppSharp::Parser::ParserDiagnosticLevel get(); - void set(CppSharp::Parser::ParserDiagnosticLevel); - } - - property int LineNumber - { - int get(); - void set(int); - } - - property int ColumnNumber - { - int get(); - void set(int); - } - }; - - public ref class ParserResult : ICppInstance - { - public: - - property ::CppSharp::CppParser::ParserResult* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - ParserResult(::CppSharp::CppParser::ParserResult* native); - ParserResult(System::IntPtr native); - ParserResult(); - - property unsigned int DiagnosticsCount - { - unsigned int get(); - } - - property CppSharp::Parser::ParserResultKind Kind - { - CppSharp::Parser::ParserResultKind get(); - void set(CppSharp::Parser::ParserResultKind); - } - - property CppSharp::Parser::AST::ASTContext^ ASTContext - { - CppSharp::Parser::AST::ASTContext^ get(); - void set(CppSharp::Parser::AST::ASTContext^); - } - - property CppSharp::Parser::AST::NativeLibrary^ Library - { - CppSharp::Parser::AST::NativeLibrary^ get(); - void set(CppSharp::Parser::AST::NativeLibrary^); - } - - CppSharp::Parser::ParserDiagnostic^ getDiagnostics(unsigned int i); - - void addDiagnostics(CppSharp::Parser::ParserDiagnostic^ s); - }; - - public ref class ClangParser : ICppInstance - { - public: - - property ::CppSharp::CppParser::ClangParser* NativePtr; - property System::IntPtr __Instance - { - virtual System::IntPtr get(); - virtual void set(System::IntPtr instance); - } - - ClangParser(::CppSharp::CppParser::ClangParser* native); - ClangParser(System::IntPtr native); - ClangParser(); - - static CppSharp::Parser::ParserResult^ ParseHeader(CppSharp::Parser::ParserOptions^ Opts); - - static CppSharp::Parser::ParserResult^ ParseLibrary(CppSharp::Parser::ParserOptions^ Opts); - - static CppSharp::Parser::ParserTargetInfo^ GetTargetInfo(CppSharp::Parser::ParserOptions^ Opts); - }; - } -} +#pragma once + +#include "CppSharp.h" +#include + +namespace CppSharp +{ + namespace Parser + { + enum struct ParserDiagnosticLevel; + enum struct ParserResultKind; + enum struct SourceLocationKind; + ref class ClangParser; + ref class Parser; + ref class ParserDiagnostic; + ref class ParserOptions; + ref class ParserResult; + ref class ParserTargetInfo; + namespace AST + { + enum struct CppAbi; + ref class ASTContext; + ref class NativeLibrary; + } + } +} + +namespace CppSharp +{ + namespace Parser + { + public enum struct ParserDiagnosticLevel + { + Ignored = 0, + Note = 1, + Warning = 2, + Error = 3, + Fatal = 4 + }; + + public enum struct ParserResultKind + { + Success = 0, + Error = 1, + FileNotFound = 2 + }; + + public enum struct SourceLocationKind + { + Invalid = 0, + Builtin = 1, + CommandLine = 2, + System = 3, + User = 4 + }; + + public ref class ParserOptions : ICppInstance + { + public: + + property ::CppSharp::CppParser::ParserOptions* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + ParserOptions(::CppSharp::CppParser::ParserOptions* native); + ParserOptions(System::IntPtr native); + ParserOptions(); + + property unsigned int ArgumentsCount + { + unsigned int get(); + } + + property System::String^ FileName + { + System::String^ get(); + void set(System::String^); + } + + property unsigned int IncludeDirsCount + { + unsigned int get(); + } + + property unsigned int SystemIncludeDirsCount + { + unsigned int get(); + } + + property unsigned int DefinesCount + { + unsigned int get(); + } + + property unsigned int LibraryDirsCount + { + unsigned int get(); + } + + property System::String^ TargetTriple + { + System::String^ get(); + void set(System::String^); + } + + property CppSharp::Parser::AST::ASTContext^ ASTContext + { + CppSharp::Parser::AST::ASTContext^ get(); + void set(CppSharp::Parser::AST::ASTContext^); + } + + property int ToolSetToUse + { + int get(); + void set(int); + } + + property CppSharp::Parser::AST::CppAbi Abi + { + CppSharp::Parser::AST::CppAbi get(); + void set(CppSharp::Parser::AST::CppAbi); + } + + property bool NoStandardIncludes + { + bool get(); + void set(bool); + } + + property bool NoBuiltinIncludes + { + bool get(); + void set(bool); + } + + property bool MicrosoftMode + { + bool get(); + void set(bool); + } + + property bool Verbose + { + bool get(); + void set(bool); + } + + System::String^ getArguments(unsigned int i); + + void addArguments(System::String^ s); + + System::String^ getIncludeDirs(unsigned int i); + + void addIncludeDirs(System::String^ s); + + System::String^ getSystemIncludeDirs(unsigned int i); + + void addSystemIncludeDirs(System::String^ s); + + System::String^ getDefines(unsigned int i); + + void addDefines(System::String^ s); + + System::String^ getLibraryDirs(unsigned int i); + + void addLibraryDirs(System::String^ s); + }; + + public ref class ParserDiagnostic : ICppInstance + { + public: + + property ::CppSharp::CppParser::ParserDiagnostic* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + ParserDiagnostic(::CppSharp::CppParser::ParserDiagnostic* native); + ParserDiagnostic(System::IntPtr native); + ParserDiagnostic(); + + property System::String^ FileName + { + System::String^ get(); + void set(System::String^); + } + + property System::String^ Message + { + System::String^ get(); + void set(System::String^); + } + + property CppSharp::Parser::ParserDiagnosticLevel Level + { + CppSharp::Parser::ParserDiagnosticLevel get(); + void set(CppSharp::Parser::ParserDiagnosticLevel); + } + + property int LineNumber + { + int get(); + void set(int); + } + + property int ColumnNumber + { + int get(); + void set(int); + } + }; + + public ref class ParserResult : ICppInstance + { + public: + + property ::CppSharp::CppParser::ParserResult* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + ParserResult(::CppSharp::CppParser::ParserResult* native); + ParserResult(System::IntPtr native); + ParserResult(); + + property unsigned int DiagnosticsCount + { + unsigned int get(); + } + + property CppSharp::Parser::ParserResultKind Kind + { + CppSharp::Parser::ParserResultKind get(); + void set(CppSharp::Parser::ParserResultKind); + } + + property CppSharp::Parser::AST::ASTContext^ ASTContext + { + CppSharp::Parser::AST::ASTContext^ get(); + void set(CppSharp::Parser::AST::ASTContext^); + } + + property CppSharp::Parser::AST::NativeLibrary^ Library + { + CppSharp::Parser::AST::NativeLibrary^ get(); + void set(CppSharp::Parser::AST::NativeLibrary^); + } + + CppSharp::Parser::ParserDiagnostic^ getDiagnostics(unsigned int i); + + void addDiagnostics(CppSharp::Parser::ParserDiagnostic^ s); + }; + + public ref class ClangParser : ICppInstance + { + public: + + property ::CppSharp::CppParser::ClangParser* NativePtr; + property System::IntPtr __Instance + { + virtual System::IntPtr get(); + virtual void set(System::IntPtr instance); + } + + ClangParser(::CppSharp::CppParser::ClangParser* native); + ClangParser(System::IntPtr native); + ClangParser(); + + static CppSharp::Parser::ParserResult^ ParseHeader(CppSharp::Parser::ParserOptions^ Opts); + + static CppSharp::Parser::ParserResult^ ParseLibrary(CppSharp::Parser::ParserOptions^ Opts); + + static CppSharp::Parser::ParserTargetInfo^ GetTargetInfo(CppSharp::Parser::ParserOptions^ Opts); + }; + } +} diff --git a/src/Generator/AST/Utils.cs b/src/Generator/AST/Utils.cs index e6a8d7f8..12fffbe4 100644 --- a/src/Generator/AST/Utils.cs +++ b/src/Generator/AST/Utils.cs @@ -1,15 +1,15 @@  using System; -using System.Linq; -using Mono.Options; - +using System.Linq; +using Mono.Options; + namespace CppSharp.AST { public static class ASTUtils - { + { public static bool CheckIgnoreFunction(Function function, DriverOptions options) { - if (!function.IsGenerated) return true; + if (!function.IsGenerated) return true; if (function is Method) return CheckIgnoreMethod(function as Method, options); @@ -19,7 +19,7 @@ namespace CppSharp.AST public static bool CheckIgnoreMethod(Method method, DriverOptions options) { - if (!method.IsGenerated) return true; + if (!method.IsGenerated) return true; var isEmptyCtor = method.IsConstructor && method.Parameters.Count == 0; @@ -39,24 +39,24 @@ namespace CppSharp.AST if (method.Access == AccessSpecifier.Private && !method.IsOverride) return true; - //Ignore copy constructor if a base class don't has or has a private copy constructor - if (method.IsCopyConstructor) - { - if (!options.GenerateCopyConstructors) - return true; - - var baseClass = @class; - while (baseClass != null && baseClass.HasBaseClass) - { - baseClass = baseClass.BaseClass; - var copyConstructor = baseClass.Methods.FirstOrDefault(m => m.IsCopyConstructor); - if (copyConstructor == null - || copyConstructor.Access == AccessSpecifier.Private - || !copyConstructor.IsDeclared) - return true; - } - } - + //Ignore copy constructor if a base class don't has or has a private copy constructor + if (method.IsCopyConstructor) + { + if (!options.GenerateCopyConstructors) + return true; + + var baseClass = @class; + while (baseClass != null && baseClass.HasBaseClass) + { + baseClass = baseClass.BaseClass; + var copyConstructor = baseClass.Methods.FirstOrDefault(m => m.IsCopyConstructor); + if (copyConstructor == null + || copyConstructor.Access == AccessSpecifier.Private + || !copyConstructor.IsDeclared) + return true; + } + } + return false; } @@ -66,8 +66,8 @@ namespace CppSharp.AST return true; if (field.Class.IsValueType && field.IsDeclared) - return false; - + return false; + return !field.IsGenerated && (!useInternals || !field.IsInternal); } @@ -200,7 +200,7 @@ namespace CppSharp.AST case CXXOperatorKind.Conversion: return "implicit operator"; - case CXXOperatorKind.ExplicitConversion: + case CXXOperatorKind.ExplicitConversion: return "explicit operator"; } diff --git a/src/Generator/Driver.cs b/src/Generator/Driver.cs index 531432e1..19eb58c1 100644 --- a/src/Generator/Driver.cs +++ b/src/Generator/Driver.cs @@ -71,27 +71,27 @@ namespace CppSharp for (var i = 0; i < options.LibraryDirs.Count; i++) options.LibraryDirs[i] = Path.GetFullPath(options.LibraryDirs[i]); - if (options.NoGenIncludeDirs != null) - for (var i = 0; i < options.NoGenIncludeDirs.Count; i++) - options.NoGenIncludeDirs[i] = Path.GetFullPath(options.NoGenIncludeDirs[i]); -#endif - - if (options.NoGenIncludeDirs != null) - foreach (var incDir in options.NoGenIncludeDirs) -#if OLD_PARSER - options.IncludeDirs.Add(incDir); -#else - options.addIncludeDirs(incDir); -#endif - + if (options.NoGenIncludeDirs != null) + for (var i = 0; i < options.NoGenIncludeDirs.Count; i++) + options.NoGenIncludeDirs[i] = Path.GetFullPath(options.NoGenIncludeDirs[i]); +#endif + + if (options.NoGenIncludeDirs != null) + foreach (var incDir in options.NoGenIncludeDirs) +#if OLD_PARSER + options.IncludeDirs.Add(incDir); +#else + options.addIncludeDirs(incDir); +#endif + if (string.IsNullOrWhiteSpace(options.OutputNamespace)) options.OutputNamespace = options.LibraryName; } public void Setup() { - ValidateOptions(Options); - + ValidateOptions(Options); + TypeDatabase.SetupTypeMaps(); Generator = CreateGeneratorFromKind(Options.GeneratorKind); } @@ -276,9 +276,9 @@ namespace CppSharp TranslationUnitPasses.AddPass(new FindSymbolsPass()); TranslationUnitPasses.AddPass(new CheckStaticClass()); TranslationUnitPasses.AddPass(new MoveOperatorToClassPass()); - TranslationUnitPasses.AddPass(new MoveFunctionToClassPass()); - - if (Options.GenerateConversionOperators) + TranslationUnitPasses.AddPass(new MoveFunctionToClassPass()); + + if (Options.GenerateConversionOperators) TranslationUnitPasses.AddPass(new ConstructorToConversionOperatorPass()); TranslationUnitPasses.AddPass(new CheckAmbiguousFunctions()); @@ -303,12 +303,12 @@ namespace CppSharp } if (Options.GenerateVirtualTables) - TranslationUnitPasses.AddPass(new CheckVTableComponentsPass()); - - if (Options.GenerateProperties) + TranslationUnitPasses.AddPass(new CheckVTableComponentsPass()); + + if (Options.GenerateProperties) TranslationUnitPasses.AddPass(new GetterSetterToPropertyPass()); - if (Options.GeneratePropertiesAdvanced) + if (Options.GeneratePropertiesAdvanced) TranslationUnitPasses.AddPass(new GetterSetterToPropertyAdvancedPass()); } @@ -332,7 +332,7 @@ namespace CppSharp public void WriteCode(List outputs) { - var outputPath = Path.GetFullPath(Options.OutputDir); + var outputPath = Path.GetFullPath(Options.OutputDir); if (!Directory.Exists(outputPath)) Directory.CreateDirectory(outputPath); @@ -341,31 +341,31 @@ namespace CppSharp { var fileBase = output.TranslationUnit.FileNameWithoutExtension; - if (Options.UseHeaderDirectories) - { - var dir = Path.Combine(outputPath, output.TranslationUnit.FileRelativeDirectory); - Directory.CreateDirectory(dir); - fileBase = Path.Combine(output.TranslationUnit.FileRelativeDirectory, fileBase); - } - + if (Options.UseHeaderDirectories) + { + var dir = Path.Combine(outputPath, output.TranslationUnit.FileRelativeDirectory); + Directory.CreateDirectory(dir); + fileBase = Path.Combine(output.TranslationUnit.FileRelativeDirectory, fileBase); + } + if (Options.GenerateName != null) fileBase = Options.GenerateName(output.TranslationUnit); foreach (var template in output.Templates) { - var fileRelativePath = string.Format("{0}.{1}", fileBase, template.FileExtension); - Diagnostics.EmitMessage("Generated '{0}'", fileRelativePath); + var fileRelativePath = string.Format("{0}.{1}", fileBase, template.FileExtension); + Diagnostics.EmitMessage("Generated '{0}'", fileRelativePath); - var file = Path.Combine(outputPath, fileRelativePath); + var file = Path.Combine(outputPath, fileRelativePath); File.WriteAllText(file, template.Generate()); Options.CodeFiles.Add(file); } } } - public void CompileCode() - { - if (!Options.CompileCode) + public void CompileCode() + { + if (!Options.CompileCode) return; var assemblyFile = string.IsNullOrEmpty(Options.LibraryName) ? diff --git a/src/Generator/Generator.lua b/src/Generator/Generator.lua index 857ac5dd..73329919 100644 --- a/src/Generator/Generator.lua +++ b/src/Generator/Generator.lua @@ -1,17 +1,17 @@ -project "CppSharp.Generator" - - kind "SharedLib" - language "C#" - location "." - - SetupManagedProject() - - files { "**.cs", "**verbs.txt" } - excludes { "Filter.cs" } - - links { "System", "System.Core", "CppSharp", "CppSharp.AST" } - - SetupParser() - - configuration '**verbs.txt' - buildaction "Embed" +project "CppSharp.Generator" + + kind "SharedLib" + language "C#" + location "." + + SetupManagedProject() + + files { "**.cs", "**verbs.txt" } + excludes { "Filter.cs" } + + links { "System", "System.Core", "CppSharp", "CppSharp.AST" } + + SetupParser() + + configuration '**verbs.txt' + buildaction "Embed" diff --git a/src/Generator/Generators/CLI/CLIMarshal.cs b/src/Generator/Generators/CLI/CLIMarshal.cs index 5f50d497..f2993dcf 100644 --- a/src/Generator/Generators/CLI/CLIMarshal.cs +++ b/src/Generator/Generators/CLI/CLIMarshal.cs @@ -1,5 +1,5 @@ using System; -using System.Linq; +using System.Linq; using System.Text; using CppSharp.AST; using CppSharp.AST.Extensions; @@ -90,35 +90,35 @@ namespace CppSharp.Generators.CLI } if (pointee.IsPrimitiveType(out primitive)) - { - var returnVarName = Context.ReturnVarName; - if (quals.IsConst != Context.ReturnType.Qualifiers.IsConst) - { - var nativeTypePrinter = new CppTypePrinter(Context.Driver.TypeDatabase, false); - var constlessPointer = new PointerType() - { - IsDependent = pointer.IsDependent, - Modifier = pointer.Modifier, - QualifiedPointee = new QualifiedType(Context.ReturnType.Type.GetPointee()) - }; - var nativeConstlessTypeName = constlessPointer.Visit(nativeTypePrinter, new TypeQualifiers()); - returnVarName = string.Format("const_cast<{0}>({1})", - nativeConstlessTypeName, Context.ReturnVarName); - } - if (pointer.Pointee is TypedefType) - { - var desugaredPointer = new PointerType() - { - IsDependent = pointer.IsDependent, - Modifier = pointer.Modifier, - QualifiedPointee = new QualifiedType(pointee) - }; - var nativeTypePrinter = new CppTypePrinter(Context.Driver.TypeDatabase); - var nativeTypeName = desugaredPointer.Visit(nativeTypePrinter, quals); - Context.Return.Write("reinterpret_cast<{0}>({1})", nativeTypeName, - returnVarName); - } - else + { + var returnVarName = Context.ReturnVarName; + if (quals.IsConst != Context.ReturnType.Qualifiers.IsConst) + { + var nativeTypePrinter = new CppTypePrinter(Context.Driver.TypeDatabase, false); + var constlessPointer = new PointerType() + { + IsDependent = pointer.IsDependent, + Modifier = pointer.Modifier, + QualifiedPointee = new QualifiedType(Context.ReturnType.Type.GetPointee()) + }; + var nativeConstlessTypeName = constlessPointer.Visit(nativeTypePrinter, new TypeQualifiers()); + returnVarName = string.Format("const_cast<{0}>({1})", + nativeConstlessTypeName, Context.ReturnVarName); + } + if (pointer.Pointee is TypedefType) + { + var desugaredPointer = new PointerType() + { + IsDependent = pointer.IsDependent, + Modifier = pointer.Modifier, + QualifiedPointee = new QualifiedType(pointee) + }; + var nativeTypePrinter = new CppTypePrinter(Context.Driver.TypeDatabase); + var nativeTypeName = desugaredPointer.Visit(nativeTypePrinter, quals); + Context.Return.Write("reinterpret_cast<{0}>({1})", nativeTypeName, + returnVarName); + } + else Context.Return.Write(returnVarName); return true; } @@ -165,7 +165,7 @@ namespace CppSharp.Generators.CLI case PrimitiveType.Int64: case PrimitiveType.UInt64: case PrimitiveType.Float: - case PrimitiveType.Double: + case PrimitiveType.Double: case PrimitiveType.Null: Context.Return.Write(Context.ReturnVarName); return true; @@ -444,15 +444,15 @@ namespace CppSharp.Generators.CLI var cppTypeName = pointer.Visit(cppTypePrinter, quals); return VisitDelegateType(function, cppTypeName); - } - - Enumeration @enum; - if (pointee.TryGetEnum(out @enum)) - { - ArgumentPrefix.Write("&"); - Context.Return.Write("(::{0})*{1}", @enum.QualifiedOriginalName, - Context.Parameter.Name); - return true; + } + + Enumeration @enum; + if (pointee.TryGetEnum(out @enum)) + { + ArgumentPrefix.Write("&"); + Context.Return.Write("(::{0})*{1}", @enum.QualifiedOriginalName, + Context.Parameter.Name); + return true; } Class @class; @@ -461,9 +461,9 @@ namespace CppSharp.Generators.CLI if (Context.Function == null) Context.Return.Write("&"); return pointee.Visit(this, quals); - } - - var finalPointee = pointer.GetFinalPointee(); + } + + var finalPointee = pointer.GetFinalPointee(); if (finalPointee.IsPrimitiveType()) { var cppTypePrinter = new CppTypePrinter(Context.Driver.TypeDatabase); @@ -641,7 +641,7 @@ namespace CppSharp.Generators.CLI { foreach (var @base in @class.Bases.Where(b => b.IsClass && b.Class.IsDeclared)) { - MarshalValueClassProperties(@base.Class, marshalVar); + MarshalValueClassProperties(@base.Class, marshalVar); } foreach (var property in @class.Properties.Where( p => !ASTUtils.CheckIgnoreProperty(p))) diff --git a/src/Generator/Generators/CLI/CLISourcesTemplate.cs b/src/Generator/Generators/CLI/CLISourcesTemplate.cs index 3ad35f77..af2a89b8 100644 --- a/src/Generator/Generators/CLI/CLISourcesTemplate.cs +++ b/src/Generator/Generators/CLI/CLISourcesTemplate.cs @@ -843,7 +843,7 @@ namespace CppSharp.Generators.CLI CheckArgumentRange(function); var retType = function.ReturnType; - if (publicRetType == null) + if (publicRetType == null) publicRetType = retType.Type; var needsReturn = !retType.Type.IsPrimitiveType(PrimitiveType.Void); @@ -977,8 +977,8 @@ namespace CppSharp.Generators.CLI if (retType.Type.IsPointer() && retType.Type.GetPointee().Equals(publicRetType) && publicRetType.IsPrimitiveType()) - WriteLine("return *({0});", marshal.Context.Return); - else if (retType.Type.IsReference() && publicRetType.IsReference()) + WriteLine("return *({0});", marshal.Context.Return); + else if (retType.Type.IsReference() && publicRetType.IsReference()) WriteLine("return ({0})({1});", publicRetType, marshal.Context.Return); else WriteLine("return {0};", marshal.Context.Return); diff --git a/src/Generator/Generators/CLI/CLITypePrinter.cs b/src/Generator/Generators/CLI/CLITypePrinter.cs index f1dee991..8d4fd89d 100644 --- a/src/Generator/Generators/CLI/CLITypePrinter.cs +++ b/src/Generator/Generators/CLI/CLITypePrinter.cs @@ -1,398 +1,398 @@ -using System; -using System.Collections.Generic; -using CppSharp.AST; -using CppSharp.AST.Extensions; -using CppSharp.Types; -using Type = CppSharp.AST.Type; - -namespace CppSharp.Generators.CLI -{ - public class CLITypePrinterContext : TypePrinterContext - { - public CLITypePrinterContext() - { - - } - - public CLITypePrinterContext(TypePrinterContextKind kind) - : base(kind) - { - } - } - - public class CLITypePrinter : ITypePrinter, IDeclVisitor - { - public Driver Driver { get; set; } - public CLITypePrinterContext Context { get; set; } - - readonly ITypeMapDatabase TypeMapDatabase; - readonly DriverOptions Options; - - public CLITypePrinter(Driver driver) - { - Driver = driver; - TypeMapDatabase = driver.TypeDatabase; - Options = driver.Options; - Context = new CLITypePrinterContext(); - } - - public CLITypePrinter(Driver driver, CLITypePrinterContext context) - : this(driver) - { - Context = context; - } - - public string VisitTagType(TagType tag, TypeQualifiers quals) - { - TypeMap typeMap = null; - if (TypeMapDatabase.FindTypeMap(tag, out typeMap)) - { - typeMap.Type = tag; - Context.Type = tag; - return typeMap.CLISignature(Context); - } - - Declaration decl = tag.Declaration; - - if (decl == null) - return string.Empty; - - return VisitDeclaration(decl, quals); - } - - public string VisitArrayType(ArrayType array, TypeQualifiers quals) - { - return string.Format("cli::array<{0}>^", array.Type.Visit(this)); - } - - public string VisitFunctionType(FunctionType function, TypeQualifiers quals) - { - var arguments = function.Parameters; - var returnType = function.ReturnType; - var args = string.Empty; - - if (arguments.Count > 0) - args = VisitParameters(function.Parameters, hasNames: false); - - if (returnType.Type.IsPrimitiveType(PrimitiveType.Void)) - { - if (!string.IsNullOrEmpty(args)) - args = string.Format("<{0}>", args); - return string.Format("System::Action{0}", args); - } - - if (!string.IsNullOrEmpty(args)) - args = string.Format(", {0}", args); - - return string.Format("System::Func<{0}{1}>", returnType.Visit(this), args); - } - - public string VisitParameters(IEnumerable @params, - bool hasNames) - { - var args = new List(); - - foreach (var param in @params) - args.Add(VisitParameter(param, hasNames)); - - return string.Join(", ", args); - } - - public string VisitParameter(Parameter param, bool hasName = true) - { - Context.Parameter = param; - var type = param.Type.Visit(this, param.QualifiedType.Qualifiers); - Context.Parameter = null; - - var str = string.Empty; - if(param.Usage == ParameterUsage.Out) - str += "[System::Runtime::InteropServices::Out] "; - - str += type; - - if(param.Usage == ParameterUsage.Out || - param.Usage == ParameterUsage.InOut) - str += "%"; - - if (hasName && !string.IsNullOrEmpty(param.Name)) - str += " " + param.Name; - - return str; - } - - public string VisitDelegate(FunctionType function) - { - return string.Format("delegate {0} {{0}}({1})", - function.ReturnType.Visit(this), - VisitParameters(function.Parameters, hasNames: true)); - } - - public string VisitPointerType(PointerType pointer, TypeQualifiers quals) - { - var pointee = pointer.Pointee.Desugar(); - - if (pointee is FunctionType) - { - var function = pointee as FunctionType; - return string.Format("{0}^", function.Visit(this, quals)); - } - - if (pointee.IsPrimitiveType(PrimitiveType.Char) && quals.IsConst) - { - return "System::String^"; - } - - // From http://msdn.microsoft.com/en-us/library/y31yhkeb.aspx - // Any of the following types may be a pointer type: - // * sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal, or bool. - // * Any enum type. - // * Any pointer type. - // * Any user-defined struct type that contains fields of unmanaged types only. - var finalPointee = pointer.GetFinalPointee(); - if (finalPointee.IsPrimitiveType()) - { - // Skip one indirection if passed by reference - var param = Context.Parameter; - if (param != null && (param.IsOut || param.IsInOut) - && pointee == finalPointee) - return pointee.Visit(this, quals); - - return pointee.Visit(this, quals) + "*"; - } - - Enumeration @enum; - if (pointee.TryGetEnum(out @enum)) - { - var typeName = @enum.Visit(this); - return string.Format("{0}*", typeName); - } - - return pointer.Pointee.Visit(this, quals); - } - - public string VisitMemberPointerType(MemberPointerType member, - TypeQualifiers quals) - { - throw new NotImplementedException(); - } - - public string VisitBuiltinType(BuiltinType builtin, TypeQualifiers quals) - { - return VisitPrimitiveType(builtin.Type); - } - - public string VisitPrimitiveType(PrimitiveType primitive) - { - switch (primitive) - { - case PrimitiveType.Bool: return "bool"; - case PrimitiveType.Void: return "void"; - case PrimitiveType.Char16: - case PrimitiveType.WideChar: return "System::Char"; - case PrimitiveType.Int8: return Options.MarshalCharAsManagedChar ? "System::Char" : "char"; - case PrimitiveType.UInt8: return "unsigned char"; - case PrimitiveType.Int16: return "short"; - case PrimitiveType.UInt16: return "unsigned short"; - case PrimitiveType.Int32: return "int"; - case PrimitiveType.UInt32: return "unsigned int"; - case PrimitiveType.Int64: return "long long"; - case PrimitiveType.UInt64: return "unsigned long long"; - case PrimitiveType.Float: return "float"; - case PrimitiveType.Double: return "double"; - case PrimitiveType.IntPtr: return "IntPtr"; - case PrimitiveType.UIntPtr: return "UIntPtr"; - case PrimitiveType.Null: return "void*"; - } - - throw new NotSupportedException(); - } - - public string VisitTypedefType(TypedefType typedef, TypeQualifiers quals) - { - var decl = typedef.Declaration; - - TypeMap typeMap = null; - if (TypeMapDatabase.FindTypeMap(decl, out typeMap)) - { - typeMap.Type = typedef; - Context.Type = typedef; - return typeMap.CLISignature(Context); - } - - FunctionType func; - if (decl.Type.IsPointerTo(out func)) - { - // TODO: Use SafeIdentifier() - return string.Format("{0}^", VisitDeclaration(decl)); - } - - return decl.Type.Visit(this); - } - - public string VisitAttributedType(AttributedType attributed, TypeQualifiers quals) - { - return attributed.Modified.Visit(this); - } - - public string VisitDecayedType(DecayedType decayed, TypeQualifiers quals) - { - return decayed.Decayed.Visit(this); - } - - public string VisitTemplateSpecializationType(TemplateSpecializationType template, - TypeQualifiers quals) - { - var decl = template.Template.TemplatedDecl; - - TypeMap typeMap = null; - if (TypeMapDatabase.FindTypeMap(template, out typeMap)) - { - typeMap.Declaration = decl; - typeMap.Type = template; - Context.Type = template; - return typeMap.CLISignature(Context); - } - - return decl.Name; - } - - public string VisitTemplateParameterType(TemplateParameterType param, - TypeQualifiers quals) - { - return param.Parameter.Name; - } - - public string VisitTemplateParameterSubstitutionType( - TemplateParameterSubstitutionType param, TypeQualifiers quals) - { - throw new NotImplementedException(); - } - - public string VisitInjectedClassNameType(InjectedClassNameType injected, TypeQualifiers quals) - { - throw new NotImplementedException(); - } - - public string VisitDependentNameType(DependentNameType dependent, TypeQualifiers quals) - { - throw new NotImplementedException(); - } - - public string VisitPackExpansionType(PackExpansionType packExpansionType, TypeQualifiers quals) - { - return string.Empty; - } - - public string VisitCILType(CILType type, TypeQualifiers quals) - { - var result = type.Type.FullName.Replace(".", "::"); - if (!type.Type.IsValueType) - result += "^"; - return result; - } - - public string VisitPrimitiveType(PrimitiveType type, TypeQualifiers quals) - { - return VisitPrimitiveType(type); - } - - public string VisitDeclaration(Declaration decl, TypeQualifiers quals) - { - return VisitDeclaration(decl); - } - - public string VisitDeclaration(Declaration decl) - { - var names = new List(); - - if (Options.GenerateLibraryNamespace) - names.Add(Driver.Options.OutputNamespace); - - if (!string.IsNullOrEmpty(decl.Namespace.QualifiedName)) - names.Add(decl.Namespace.QualifiedName); - - names.Add(decl.Visit(this)); - - return string.Join("::", names); - } - - public string VisitClassDecl(Class @class) - { - if (@class.CompleteDeclaration != null) - return VisitClassDecl(@class.CompleteDeclaration as Class); - - return string.Format("{0}{1}", @class.Name, @class.IsRefType ? "^" - : string.Empty); - } - - public string VisitFieldDecl(Field field) - { - throw new NotImplementedException(); - } - - public string VisitFunctionDecl(Function function) - { - throw new NotImplementedException(); - } - - public string VisitMethodDecl(Method method) - { - throw new NotImplementedException(); - } - - public string VisitParameterDecl(Parameter parameter) - { - throw new NotImplementedException(); - } - - public string VisitTypedefDecl(TypedefDecl typedef) - { - return typedef.Name; - } - - public string VisitEnumDecl(Enumeration @enum) - { - return @enum.Name; - } - - public string VisitVariableDecl(Variable variable) - { - throw new NotImplementedException(); - } - - public string VisitClassTemplateDecl(ClassTemplate template) - { - throw new NotImplementedException(); - } - - public string VisitFunctionTemplateDecl(FunctionTemplate template) - { - throw new NotImplementedException(); - } - - public string VisitMacroDefinition(MacroDefinition macro) - { - throw new NotImplementedException(); - } - - public string VisitNamespace(Namespace @namespace) - { - throw new NotImplementedException(); - } - - public string VisitEvent(Event @event) - { - throw new NotImplementedException(); - } - - public string VisitProperty(Property property) - { - throw new NotImplementedException(); - } - - public string ToString(Type type) - { - return type.Visit(this); - } - } -} +using System; +using System.Collections.Generic; +using CppSharp.AST; +using CppSharp.AST.Extensions; +using CppSharp.Types; +using Type = CppSharp.AST.Type; + +namespace CppSharp.Generators.CLI +{ + public class CLITypePrinterContext : TypePrinterContext + { + public CLITypePrinterContext() + { + + } + + public CLITypePrinterContext(TypePrinterContextKind kind) + : base(kind) + { + } + } + + public class CLITypePrinter : ITypePrinter, IDeclVisitor + { + public Driver Driver { get; set; } + public CLITypePrinterContext Context { get; set; } + + readonly ITypeMapDatabase TypeMapDatabase; + readonly DriverOptions Options; + + public CLITypePrinter(Driver driver) + { + Driver = driver; + TypeMapDatabase = driver.TypeDatabase; + Options = driver.Options; + Context = new CLITypePrinterContext(); + } + + public CLITypePrinter(Driver driver, CLITypePrinterContext context) + : this(driver) + { + Context = context; + } + + public string VisitTagType(TagType tag, TypeQualifiers quals) + { + TypeMap typeMap = null; + if (TypeMapDatabase.FindTypeMap(tag, out typeMap)) + { + typeMap.Type = tag; + Context.Type = tag; + return typeMap.CLISignature(Context); + } + + Declaration decl = tag.Declaration; + + if (decl == null) + return string.Empty; + + return VisitDeclaration(decl, quals); + } + + public string VisitArrayType(ArrayType array, TypeQualifiers quals) + { + return string.Format("cli::array<{0}>^", array.Type.Visit(this)); + } + + public string VisitFunctionType(FunctionType function, TypeQualifiers quals) + { + var arguments = function.Parameters; + var returnType = function.ReturnType; + var args = string.Empty; + + if (arguments.Count > 0) + args = VisitParameters(function.Parameters, hasNames: false); + + if (returnType.Type.IsPrimitiveType(PrimitiveType.Void)) + { + if (!string.IsNullOrEmpty(args)) + args = string.Format("<{0}>", args); + return string.Format("System::Action{0}", args); + } + + if (!string.IsNullOrEmpty(args)) + args = string.Format(", {0}", args); + + return string.Format("System::Func<{0}{1}>", returnType.Visit(this), args); + } + + public string VisitParameters(IEnumerable @params, + bool hasNames) + { + var args = new List(); + + foreach (var param in @params) + args.Add(VisitParameter(param, hasNames)); + + return string.Join(", ", args); + } + + public string VisitParameter(Parameter param, bool hasName = true) + { + Context.Parameter = param; + var type = param.Type.Visit(this, param.QualifiedType.Qualifiers); + Context.Parameter = null; + + var str = string.Empty; + if(param.Usage == ParameterUsage.Out) + str += "[System::Runtime::InteropServices::Out] "; + + str += type; + + if(param.Usage == ParameterUsage.Out || + param.Usage == ParameterUsage.InOut) + str += "%"; + + if (hasName && !string.IsNullOrEmpty(param.Name)) + str += " " + param.Name; + + return str; + } + + public string VisitDelegate(FunctionType function) + { + return string.Format("delegate {0} {{0}}({1})", + function.ReturnType.Visit(this), + VisitParameters(function.Parameters, hasNames: true)); + } + + public string VisitPointerType(PointerType pointer, TypeQualifiers quals) + { + var pointee = pointer.Pointee.Desugar(); + + if (pointee is FunctionType) + { + var function = pointee as FunctionType; + return string.Format("{0}^", function.Visit(this, quals)); + } + + if (pointee.IsPrimitiveType(PrimitiveType.Char) && quals.IsConst) + { + return "System::String^"; + } + + // From http://msdn.microsoft.com/en-us/library/y31yhkeb.aspx + // Any of the following types may be a pointer type: + // * sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal, or bool. + // * Any enum type. + // * Any pointer type. + // * Any user-defined struct type that contains fields of unmanaged types only. + var finalPointee = pointer.GetFinalPointee(); + if (finalPointee.IsPrimitiveType()) + { + // Skip one indirection if passed by reference + var param = Context.Parameter; + if (param != null && (param.IsOut || param.IsInOut) + && pointee == finalPointee) + return pointee.Visit(this, quals); + + return pointee.Visit(this, quals) + "*"; + } + + Enumeration @enum; + if (pointee.TryGetEnum(out @enum)) + { + var typeName = @enum.Visit(this); + return string.Format("{0}*", typeName); + } + + return pointer.Pointee.Visit(this, quals); + } + + public string VisitMemberPointerType(MemberPointerType member, + TypeQualifiers quals) + { + throw new NotImplementedException(); + } + + public string VisitBuiltinType(BuiltinType builtin, TypeQualifiers quals) + { + return VisitPrimitiveType(builtin.Type); + } + + public string VisitPrimitiveType(PrimitiveType primitive) + { + switch (primitive) + { + case PrimitiveType.Bool: return "bool"; + case PrimitiveType.Void: return "void"; + case PrimitiveType.Char16: + case PrimitiveType.WideChar: return "System::Char"; + case PrimitiveType.Int8: return Options.MarshalCharAsManagedChar ? "System::Char" : "char"; + case PrimitiveType.UInt8: return "unsigned char"; + case PrimitiveType.Int16: return "short"; + case PrimitiveType.UInt16: return "unsigned short"; + case PrimitiveType.Int32: return "int"; + case PrimitiveType.UInt32: return "unsigned int"; + case PrimitiveType.Int64: return "long long"; + case PrimitiveType.UInt64: return "unsigned long long"; + case PrimitiveType.Float: return "float"; + case PrimitiveType.Double: return "double"; + case PrimitiveType.IntPtr: return "IntPtr"; + case PrimitiveType.UIntPtr: return "UIntPtr"; + case PrimitiveType.Null: return "void*"; + } + + throw new NotSupportedException(); + } + + public string VisitTypedefType(TypedefType typedef, TypeQualifiers quals) + { + var decl = typedef.Declaration; + + TypeMap typeMap = null; + if (TypeMapDatabase.FindTypeMap(decl, out typeMap)) + { + typeMap.Type = typedef; + Context.Type = typedef; + return typeMap.CLISignature(Context); + } + + FunctionType func; + if (decl.Type.IsPointerTo(out func)) + { + // TODO: Use SafeIdentifier() + return string.Format("{0}^", VisitDeclaration(decl)); + } + + return decl.Type.Visit(this); + } + + public string VisitAttributedType(AttributedType attributed, TypeQualifiers quals) + { + return attributed.Modified.Visit(this); + } + + public string VisitDecayedType(DecayedType decayed, TypeQualifiers quals) + { + return decayed.Decayed.Visit(this); + } + + public string VisitTemplateSpecializationType(TemplateSpecializationType template, + TypeQualifiers quals) + { + var decl = template.Template.TemplatedDecl; + + TypeMap typeMap = null; + if (TypeMapDatabase.FindTypeMap(template, out typeMap)) + { + typeMap.Declaration = decl; + typeMap.Type = template; + Context.Type = template; + return typeMap.CLISignature(Context); + } + + return decl.Name; + } + + public string VisitTemplateParameterType(TemplateParameterType param, + TypeQualifiers quals) + { + return param.Parameter.Name; + } + + public string VisitTemplateParameterSubstitutionType( + TemplateParameterSubstitutionType param, TypeQualifiers quals) + { + throw new NotImplementedException(); + } + + public string VisitInjectedClassNameType(InjectedClassNameType injected, TypeQualifiers quals) + { + throw new NotImplementedException(); + } + + public string VisitDependentNameType(DependentNameType dependent, TypeQualifiers quals) + { + throw new NotImplementedException(); + } + + public string VisitPackExpansionType(PackExpansionType packExpansionType, TypeQualifiers quals) + { + return string.Empty; + } + + public string VisitCILType(CILType type, TypeQualifiers quals) + { + var result = type.Type.FullName.Replace(".", "::"); + if (!type.Type.IsValueType) + result += "^"; + return result; + } + + public string VisitPrimitiveType(PrimitiveType type, TypeQualifiers quals) + { + return VisitPrimitiveType(type); + } + + public string VisitDeclaration(Declaration decl, TypeQualifiers quals) + { + return VisitDeclaration(decl); + } + + public string VisitDeclaration(Declaration decl) + { + var names = new List(); + + if (Options.GenerateLibraryNamespace) + names.Add(Driver.Options.OutputNamespace); + + if (!string.IsNullOrEmpty(decl.Namespace.QualifiedName)) + names.Add(decl.Namespace.QualifiedName); + + names.Add(decl.Visit(this)); + + return string.Join("::", names); + } + + public string VisitClassDecl(Class @class) + { + if (@class.CompleteDeclaration != null) + return VisitClassDecl(@class.CompleteDeclaration as Class); + + return string.Format("{0}{1}", @class.Name, @class.IsRefType ? "^" + : string.Empty); + } + + public string VisitFieldDecl(Field field) + { + throw new NotImplementedException(); + } + + public string VisitFunctionDecl(Function function) + { + throw new NotImplementedException(); + } + + public string VisitMethodDecl(Method method) + { + throw new NotImplementedException(); + } + + public string VisitParameterDecl(Parameter parameter) + { + throw new NotImplementedException(); + } + + public string VisitTypedefDecl(TypedefDecl typedef) + { + return typedef.Name; + } + + public string VisitEnumDecl(Enumeration @enum) + { + return @enum.Name; + } + + public string VisitVariableDecl(Variable variable) + { + throw new NotImplementedException(); + } + + public string VisitClassTemplateDecl(ClassTemplate template) + { + throw new NotImplementedException(); + } + + public string VisitFunctionTemplateDecl(FunctionTemplate template) + { + throw new NotImplementedException(); + } + + public string VisitMacroDefinition(MacroDefinition macro) + { + throw new NotImplementedException(); + } + + public string VisitNamespace(Namespace @namespace) + { + throw new NotImplementedException(); + } + + public string VisitEvent(Event @event) + { + throw new NotImplementedException(); + } + + public string VisitProperty(Property property) + { + throw new NotImplementedException(); + } + + public string ToString(Type type) + { + return type.Visit(this); + } + } +} diff --git a/src/Generator/Generators/CLI/CLITypeReferences.cs b/src/Generator/Generators/CLI/CLITypeReferences.cs index ffabdea4..0f1016af 100644 --- a/src/Generator/Generators/CLI/CLITypeReferences.cs +++ b/src/Generator/Generators/CLI/CLITypeReferences.cs @@ -1,6 +1,6 @@ -using System; -using System.Collections.Generic; -using System.IO; +using System; +using System.Collections.Generic; +using System.IO; using CppSharp.AST; using CppSharp.AST.Extensions; using CppSharp.Generators.AST; @@ -27,7 +27,7 @@ namespace CppSharp.Generators.CLI public class CLITypeReferenceCollector : AstVisitor { private readonly ITypeMapDatabase TypeMapDatabase; - private readonly DriverOptions DriverOptions; + private readonly DriverOptions DriverOptions; private TranslationUnit TranslationUnit; private Dictionary typeReferences; @@ -36,10 +36,10 @@ namespace CppSharp.Generators.CLI get { return typeReferences.Values; } } - public CLITypeReferenceCollector(ITypeMapDatabase typeMapDatabase, DriverOptions driverOptions) + public CLITypeReferenceCollector(ITypeMapDatabase typeMapDatabase, DriverOptions driverOptions) { TypeMapDatabase = typeMapDatabase; - DriverOptions = driverOptions; + DriverOptions = driverOptions; typeReferences = new Dictionary(); } @@ -110,11 +110,11 @@ namespace CppSharp.Generators.CLI return; } - var translationUnit = decl.Namespace.TranslationUnit; + var translationUnit = decl.Namespace.TranslationUnit; + + if (translationUnit.IsSystemHeader) + return; - if (translationUnit.IsSystemHeader) - return; - if (!decl.IsGenerated) return; @@ -126,32 +126,32 @@ namespace CppSharp.Generators.CLI { typeRef.Include = new Include { - File = GetIncludePath(translationUnit), - TranslationUnit = translationUnit, - Kind = translationUnit.IsGenerated - ? Include.IncludeKind.Quoted - : Include.IncludeKind.Angled, + File = GetIncludePath(translationUnit), + TranslationUnit = translationUnit, + Kind = translationUnit.IsGenerated + ? Include.IncludeKind.Quoted + : Include.IncludeKind.Angled, }; } typeRef.Include.InHeader |= IsIncludeInHeader(record); } - private string GetIncludePath(TranslationUnit translationUnit) - { - if (!DriverOptions.UseHeaderDirectories) - return translationUnit.FileName; - - var rel = PathHelpers.GetRelativePath( - TranslationUnit.FileRelativeDirectory, - translationUnit.FileRelativeDirectory); - - if (string.IsNullOrEmpty(rel)) - return translationUnit.FileName; - - return Path.Combine(rel, translationUnit.FileName); - } - + private string GetIncludePath(TranslationUnit translationUnit) + { + if (!DriverOptions.UseHeaderDirectories) + return translationUnit.FileName; + + var rel = PathHelpers.GetRelativePath( + TranslationUnit.FileRelativeDirectory, + translationUnit.FileRelativeDirectory); + + if (string.IsNullOrEmpty(rel)) + return translationUnit.FileName; + + return Path.Combine(rel, translationUnit.FileName); + } + private bool IsBuiltinTypedef(Declaration decl) { var typedefDecl = decl as TypedefDecl; diff --git a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs index b4e0d928..f97d191a 100644 --- a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs +++ b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs @@ -6,8 +6,8 @@ using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Web.Util; -using CppSharp.AST; -using CppSharp.AST.Extensions; +using CppSharp.AST; +using CppSharp.AST.Extensions; using CppSharp.Types; using CppSharp.Utils; using Attribute = CppSharp.AST.Attribute; @@ -184,7 +184,7 @@ namespace CppSharp.Generators.CSharp // Generate all the enum declarations. foreach (var @enum in context.Enums) - { + { if (!@enum.IsGenerated || @enum.IsIncomplete) continue; @@ -200,7 +200,7 @@ namespace CppSharp.Generators.CSharp // Generate all the struct/class declarations. foreach (var @class in context.Classes) { - if (@class.IsIncomplete) + if (@class.IsIncomplete) continue; if (@class.IsInterface) @@ -222,7 +222,7 @@ namespace CppSharp.Generators.CSharp // Generate all the internal function declarations. foreach (var function in context.Functions) - { + { if (!function.IsGenerated && !function.IsInternal ) continue; GenerateInternalFunction(function); @@ -232,7 +232,7 @@ namespace CppSharp.Generators.CSharp PopBlock(NewLineKind.BeforeNextBlock); foreach (var function in context.Functions) - { + { if (!function.IsGenerated) continue; GenerateFunction(function); @@ -243,7 +243,7 @@ namespace CppSharp.Generators.CSharp } foreach (var @event in context.Events) - { + { if (!@event.IsGenerated) continue; GenerateEvent(@event); @@ -359,7 +359,7 @@ namespace CppSharp.Generators.CSharp if (Options.GenerateVirtualTables && @class.IsDynamic) GenerateVTable(@class); } - exit: + exit: WriteCloseBraceIndent(); PopBlock(NewLineKind.BeforeNextBlock); } @@ -384,7 +384,7 @@ namespace CppSharp.Generators.CSharp } private void GenerateInterface(Class @class) - { + { if (!@class.IsGenerated || @class.IsIncomplete) return; @@ -413,7 +413,7 @@ namespace CppSharp.Generators.CSharp WriteLine(");"); PopBlock(NewLineKind.BeforeNextBlock); - } + } foreach (var prop in @class.Properties.Where(p => p.IsGenerated)) { PushBlock(CSharpBlockKind.Property); @@ -454,9 +454,9 @@ namespace CppSharp.Generators.CSharp var typePrinter = TypePrinter; typePrinter.PushContext(CSharpTypePrinterContextKind.Native); - GenerateClassFields(@class, GenerateClassInternalsField, true); - if (Options.GenerateVirtualTables && @class.IsDynamic) - GenerateVTablePointers(@class); + GenerateClassFields(@class, GenerateClassInternalsField, true); + if (Options.GenerateVirtualTables && @class.IsDynamic) + GenerateVTablePointers(@class); var functions = GatherClassInternalFunctions(@class); @@ -486,9 +486,9 @@ namespace CppSharp.Generators.CSharp functions.Add(method); }; - foreach (var ctor in @class.Constructors) - { - if (@class.IsStatic) + foreach (var ctor in @class.Constructors) + { + if (@class.IsStatic) continue; if (ctor.IsMoveConstructor) @@ -579,7 +579,7 @@ namespace CppSharp.Generators.CSharp private void GenerateStructMarshalingProperties(Class @class) { foreach (var @base in @class.Bases) - { + { if (!@base.IsClass || !@base.Class.IsDeclared) continue; @@ -588,7 +588,7 @@ namespace CppSharp.Generators.CSharp for (int i = 0; i < @class.Properties.Count; i++) { - var property = @class.Properties[i]; + var property = @class.Properties[i]; if (!property.IsGenerated || property.Field == null) continue; var nativeField = string.Format("{0}->{1}", @@ -630,7 +630,7 @@ namespace CppSharp.Generators.CSharp private void GenerateStructInternalMarshalingProperties(Class @class, string marshalVar) { foreach (var @base in @class.Bases) - { + { if (!@base.IsClass || !@base.Class.IsDeclared) continue; @@ -639,7 +639,7 @@ namespace CppSharp.Generators.CSharp } foreach (var property in @class.Properties) - { + { if (!property.IsGenerated || property.Field == null) continue; @@ -701,8 +701,8 @@ namespace CppSharp.Generators.CSharp public static bool ShouldGenerateClassNativeField(Class @class) { - if (@class.IsStatic) - return false; + if (@class.IsStatic) + return false; return @class.IsRefType && (!@class.HasBase || !HasRefBase(@class)); } @@ -711,26 +711,26 @@ namespace CppSharp.Generators.CSharp if (@class.IsUnion) WriteLine("[StructLayout(LayoutKind.Explicit)]"); - Write(@class.IsInternal ? "internal " : Helpers.GetAccess(@class.Access)); + Write(@class.IsInternal ? "internal " : Helpers.GetAccess(@class.Access)); Write("unsafe "); if (Driver.Options.GenerateAbstractImpls && @class.IsAbstract) Write("abstract "); - if (@class.IsStatic) - Write("static "); - - // This token needs to directly precede the "class" token. + if (@class.IsStatic) + Write("static "); + + // This token needs to directly precede the "class" token. if (Options.GeneratePartialClasses) Write("partial "); Write(@class.IsInterface ? "interface " : (@class.IsValueType ? "struct " : "class ")); Write("{0}", @class.Name); - var bases = new List(); - - var needsBase = @class.HasBaseClass && !@class.IsValueType && @class.IsGenerated - && !@class.Bases[0].Class.IsValueType + var bases = new List(); + + var needsBase = @class.HasBaseClass && !@class.IsValueType && @class.IsGenerated + && !@class.Bases[0].Class.IsValueType && @class.Bases[0].Class.IsGenerated; if (needsBase) @@ -739,12 +739,12 @@ namespace CppSharp.Generators.CSharp from @base in @class.Bases where @base.IsClass select QualifiedIdentifier(@base.Class)); - } - - if (@class.IsGenerated) + } + + if (@class.IsGenerated) { - if (@class.IsRefType) - bases.Add("IDisposable"); + if (@class.IsRefType) + bases.Add("IDisposable"); if (Options.GenerateClassMarshals) { @@ -752,37 +752,37 @@ namespace CppSharp.Generators.CSharp } } - if (bases.Count > 0 && !@class.IsStatic) + if (bases.Count > 0 && !@class.IsStatic) Write(" : {0}", string.Join(", ", bases)); } - public void GenerateClassFields(Class @class, Action action, bool nativeFields = false) + public void GenerateClassFields(Class @class, Action action, bool nativeFields = false) { - foreach (var @base in @class.Bases.Where(b => !(b.Type is DependentNameType))) + foreach (var @base in @class.Bases.Where(b => !(b.Type is DependentNameType))) { - TypeMap typeMap; - if ((!Driver.TypeDatabase.FindTypeMap(@base.Type, out typeMap) && !@base.Class.IsDeclared) || - @base.Class.OriginalClass == @class) + TypeMap typeMap; + if ((!Driver.TypeDatabase.FindTypeMap(@base.Type, out typeMap) && !@base.Class.IsDeclared) || + @base.Class.OriginalClass == @class) continue; - GenerateClassFields(@base.Class, action, nativeFields); + GenerateClassFields(@base.Class, action, nativeFields); } foreach (var field in @class.Fields) - { - if (ASTUtils.CheckIgnoreField(field, nativeFields)) continue; + { + if (ASTUtils.CheckIgnoreField(field, nativeFields)) continue; action(field); } } - private void GenerateClassInternalsField(Field field) - { - // we do not support dependent fields yet, see https://github.com/mono/CppSharp/issues/197 - Class @class; - if (field.Type.IsDependent && !field.Type.IsPointer() && - !(field.Type.TryGetClass(out @class) && @class.IsUnion)) - return; - + private void GenerateClassInternalsField(Field field) + { + // we do not support dependent fields yet, see https://github.com/mono/CppSharp/issues/197 + Class @class; + if (field.Type.IsDependent && !field.Type.IsPointer() && + !(field.Type.TryGetClass(out @class) && @class.IsUnion)) + return; + var safeIdentifier = Helpers.SafeIdentifier(field.OriginalName); PushBlock(CSharpBlockKind.Field); @@ -797,11 +797,11 @@ namespace CppSharp.Generators.CSharp if (field.Expression != null) { var fieldValuePrinted = field.Expression.CSharpValue(ExpressionPrinter); - Write("public {0} {1} = {2};", fieldTypePrinted.Type, safeIdentifier, fieldValuePrinted); + Write("public {0} {1} = {2};", fieldTypePrinted.Type, safeIdentifier, fieldValuePrinted); } else { - Write("public {0} {1};", fieldTypePrinted.Type, safeIdentifier); + Write("public {0} {1};", fieldTypePrinted.Type, safeIdentifier); } PopBlock(NewLineKind.BeforeNextBlock); @@ -974,7 +974,7 @@ namespace CppSharp.Generators.CSharp private void GenerateIndexerSetter(QualifiedType returnType, Function function) { - Type type; + Type type; function.Type.IsPointerTo(out type); PrimitiveType primitiveType; string internalFunction = GetFunctionNativeIdentifier(function); @@ -1120,7 +1120,7 @@ namespace CppSharp.Generators.CSharp { var staticMethods = new List(); foreach (var method in @class.Methods) - { + { if (ASTUtils.CheckIgnoreMethod(method, Options)) continue; @@ -1145,7 +1145,7 @@ namespace CppSharp.Generators.CSharp public void GenerateClassVariables(Class @class) { foreach (var variable in @class.Variables) - { + { if (!variable.IsGenerated) continue; if (variable.Access != AccessSpecifier.Public) @@ -1160,7 +1160,7 @@ namespace CppSharp.Generators.CSharp private void GenerateClassProperties(Class @class) { if (@class.IsValueType) - { + { foreach (var @base in @class.Bases.Where(b => b.IsClass && b.Class.IsDeclared)) { GenerateClassProperties(@base.Class); @@ -1171,7 +1171,7 @@ namespace CppSharp.Generators.CSharp } private void GenerateProperties(Class @class) - { + { foreach (var prop in @class.Properties.Where(p => p.IsGenerated)) { if (prop.IsInRefTypeAndBackedByValueClassField()) @@ -1225,7 +1225,7 @@ namespace CppSharp.Generators.CSharp } else { - if (prop.HasGetter) + if (prop.HasGetter) GeneratePropertyGetter(prop.QualifiedType, prop.GetMethod, @class); if (prop.HasSetter) @@ -1289,8 +1289,8 @@ namespace CppSharp.Generators.CSharp const string dictionary = "System.Collections.Generic.Dictionary"; - WriteLine("private static void*[] _OldVTables;"); - WriteLine("private static void*[] _NewVTables;"); + WriteLine("private static void*[] _OldVTables;"); + WriteLine("private static void*[] _NewVTables;"); WriteLine("private static void*[] _Thunks;"); WriteLine("private static {0} _References;", dictionary); NewLine(); @@ -1340,7 +1340,7 @@ namespace CppSharp.Generators.CSharp // Get the _Thunks WriteLine("if (_Thunks == null)"); - WriteStartBraceIndent(); + WriteStartBraceIndent(); WriteLine("_Thunks = new void*[{0}];", wrappedEntries.Count); var uniqueEntries = new HashSet(); @@ -1379,24 +1379,24 @@ namespace CppSharp.Generators.CSharp } private void SaveOriginalVTablePointersMS(Class @class) - { + { WriteLine("_OldVTables = new void*[{0}];", @class.Layout.VFTables.Count); for (int i = 0; i < @class.Layout.VFTables.Count; i++) - { + { WriteLine("_OldVTables[{0}] = native->vfptr{0}.ToPointer();", i); } } private void SaveOriginalVTablePointersItanium() - { + { WriteLine("_OldVTables = new void*[1];"); WriteLine("_OldVTables[0] = native->vfptr0.ToPointer();"); } private void AllocateNewVTablesMS(Class @class) - { + { WriteLine("_NewVTables = new void*[{0}];", @class.Layout.VFTables.Count); for (int tableIndex = 0; tableIndex < @class.Layout.VFTables.Count; tableIndex++) @@ -1412,10 +1412,10 @@ namespace CppSharp.Generators.CSharp var entry = vfptr.Layout.Components[entryIndex]; var offsetInBytes = VTables.GetVTableComponentIndex(@class, entry) * (Driver.Options.Is32Bit ? 4 : 8); - if (entry.Ignore) + if (entry.Ignore) WriteLine("*(void**)(vfptr{0} + {1}) = *(void**)(native->vfptr{0} + {1});", tableIndex, offsetInBytes); - else + else WriteLine("*(void**)(vfptr{0} + {1}) = _Thunks[{2}];", tableIndex, offsetInBytes, entryIndex); } @@ -1424,7 +1424,7 @@ namespace CppSharp.Generators.CSharp WriteCloseBraceIndent(); NewLine(); - for (var i = 0; i < @class.Layout.VFTables.Count; i++) + for (var i = 0; i < @class.Layout.VFTables.Count; i++) WriteLine("native->vfptr{0} = new IntPtr(_NewVTables[{0}]);", i); } @@ -1434,7 +1434,7 @@ namespace CppSharp.Generators.CSharp // reserve space for the offset-to-top and RTTI pointers as well var size = entries.Count; - WriteLine("var vfptr{0} = Marshal.AllocHGlobal({1} * {2});", 0, size, Driver.Options.Is32Bit ? 4 : 8); + WriteLine("var vfptr{0} = Marshal.AllocHGlobal({1} * {2});", 0, size, Driver.Options.Is32Bit ? 4 : 8); WriteLine("_NewVTables[0] = vfptr0.ToPointer();"); for (int i = 0; i < entries.Count; i++) @@ -1442,15 +1442,15 @@ namespace CppSharp.Generators.CSharp var entry = entries[i]; var offsetInBytes = VTables.GetVTableComponentIndex(@class, entry) * (Driver.Options.Is32Bit ? 4 : 8); - if (entry.Ignore) + if (entry.Ignore) WriteLine("*(void**)(vfptr0 + {0}) = *(void**)(native->vfptr0 + {0});", offsetInBytes); - else + else WriteLine("*(void**)(vfptr0 + {0}) = _Thunks[{1}];", offsetInBytes, i); } WriteCloseBraceIndent(); - NewLine(); - + NewLine(); + WriteLine("native->vfptr0 = new IntPtr(_NewVTables[0]);"); } @@ -1483,7 +1483,7 @@ namespace CppSharp.Generators.CSharp var marshals = new List(); for (int i = 0; i < method.Parameters.Count; i++) { - var param = method.Parameters[i]; + var param = method.Parameters[i]; if (!param.IsGenerated) continue; @@ -1566,16 +1566,16 @@ namespace CppSharp.Generators.CSharp private void GenerateVTableMethodDelegates(Class @class, Method method) { - PushBlock(CSharpBlockKind.VTableDelegate); - - // This works around a parser bug, see https://github.com/mono/CppSharp/issues/202 - if (method.Signature != null) - { + PushBlock(CSharpBlockKind.VTableDelegate); + + // This works around a parser bug, see https://github.com/mono/CppSharp/issues/202 + if (method.Signature != null) + { var cleanSig = method.Signature.ReplaceLineBreaks(""); cleanSig = Regex.Replace(cleanSig, @"\s+", " "); - WriteLine("// {0}", cleanSig); - } + WriteLine("// {0}", cleanSig); + } WriteLine("[SuppressUnmanagedCodeSecurity]"); WriteLine("[UnmanagedFunctionPointerAttribute(global::System.Runtime.InteropServices.CallingConvention.{0})]", method.CallingConvention.ToInteropCallConv()); @@ -1759,14 +1759,14 @@ namespace CppSharp.Generators.CSharp public void GenerateClassConstructors(Class @class) { - if (@class.IsStatic) - return; - + if (@class.IsStatic) + return; + // Output a default constructor that takes the native pointer. GenerateNativeConstructor(@class); foreach (var ctor in @class.Constructors) - { + { if (ASTUtils.CheckIgnoreMethod(ctor, Options)) continue; @@ -1929,8 +1929,8 @@ namespace CppSharp.Generators.CSharp } private bool GenerateClassConstructorBase(Class @class, Method method) - { - var hasBase = @class.HasBaseClass; + { + var hasBase = @class.HasBaseClass; if (hasBase && !@class.IsValueType) { @@ -2072,23 +2072,23 @@ namespace CppSharp.Generators.CSharp WriteCloseBraceIndent(); PopBlock(NewLineKind.BeforeNextBlock); - } - - private void CheckArgumentRange(Function method) - { - if (Driver.Options.MarshalCharAsManagedChar) - { - foreach (var param in method.Parameters.Where( - p => p.Type.IsPrimitiveType(PrimitiveType.Int8))) - { - WriteLine("if ({0} < char.MinValue || {0} > sbyte.MaxValue)", param.Name); - WriteLineIndent( - "throw new global::System.ArgumentException(\"{0} must be in the range {1} - {2}.\");", - param.Name, (int) char.MinValue, sbyte.MaxValue); - } - } - } - + } + + private void CheckArgumentRange(Function method) + { + if (Driver.Options.MarshalCharAsManagedChar) + { + foreach (var param in method.Parameters.Where( + p => p.Type.IsPrimitiveType(PrimitiveType.Int8))) + { + WriteLine("if ({0} < char.MinValue || {0} > sbyte.MaxValue)", param.Name); + WriteLineIndent( + "throw new global::System.ArgumentException(\"{0} must be in the range {1} - {2}.\");", + param.Name, (int) char.MinValue, sbyte.MaxValue); + } + } + } + private static AccessSpecifier GetValidMethodAccess(Method method) { switch (method.Access) @@ -2130,24 +2130,24 @@ namespace CppSharp.Generators.CSharp private void GenerateOperator(Method method, Class @class) { if (method.IsSynthetized) - { - if (method.Kind == CXXMethodKind.Conversion) - { - // To avoid ambiguity when having the multiple inheritance pass enabled + { + if (method.Kind == CXXMethodKind.Conversion) + { + // To avoid ambiguity when having the multiple inheritance pass enabled var @interface = @class.Namespace.Classes.Find(c => c.OriginalClass == @class); - if (@interface != null) - WriteLine("return new {0}(({2}){1});", method.ConversionType, - method.Parameters[0].Name, @interface.Name); - else - WriteLine("return new {0}({1});", method.ConversionType, - method.Parameters[0].Name); - } - else - { - var @operator = Operators.GetOperatorOverloadPair(method.OperatorKind); - - WriteLine("return !({0} {1} {2});", method.Parameters[0].Name, - @operator, method.Parameters[1].Name); + if (@interface != null) + WriteLine("return new {0}(({2}){1});", method.ConversionType, + method.Parameters[0].Name, @interface.Name); + else + WriteLine("return new {0}({1});", method.ConversionType, + method.Parameters[0].Name); + } + else + { + var @operator = Operators.GetOperatorOverloadPair(method.OperatorKind); + + WriteLine("return !({0} {1} {2});", method.Parameters[0].Name, + @operator, method.Parameters[1].Name); } return; } @@ -2177,7 +2177,7 @@ namespace CppSharp.Generators.CSharp GenerateVTableClassSetupCall(@class); } - public void GenerateInternalFunctionCall(Function function, + public void GenerateInternalFunctionCall(Function function, List parameters = null, Type returnType = null) { if (parameters == null) @@ -2189,7 +2189,7 @@ namespace CppSharp.Generators.CSharp GenerateFunctionCall(functionName, parameters, function, returnType); } - public void GenerateFunctionCall(string functionName, List parameters, + public void GenerateFunctionCall(string functionName, List parameters, Function function, Type returnType = null) { if (function.IsPure) @@ -2198,8 +2198,8 @@ namespace CppSharp.Generators.CSharp return; } - var retType = function.OriginalReturnType; - if (returnType == null) + var retType = function.OriginalReturnType; + if (returnType == null) returnType = retType.Type; var needsReturn = !retType.Type.IsPrimitiveType(PrimitiveType.Void); @@ -2220,12 +2220,12 @@ namespace CppSharp.Generators.CSharp var @params = GenerateFunctionParamsMarshal(parameters, function); - var originalFunction = function.OriginalFunction ?? function; - - if (originalFunction.HasIndirectReturnTypeParameter) - { - var indirectRetType = originalFunction.Parameters.First( - parameter => parameter.Kind == ParameterKind.IndirectReturnType); + var originalFunction = function.OriginalFunction ?? function; + + if (originalFunction.HasIndirectReturnTypeParameter) + { + var indirectRetType = originalFunction.Parameters.First( + parameter => parameter.Kind == ParameterKind.IndirectReturnType); Class retClass; indirectRetType.Type.Desugar().TryGetClass(out retClass); @@ -2247,37 +2247,37 @@ namespace CppSharp.Generators.CSharp name += param.Name; names.Add(name); - } - - var needsFixedThis = needsInstance && isValueType; - - if (originalFunction.HasIndirectReturnTypeParameter) - { - var name = string.Format("new IntPtr(&{0})", GeneratedIdentifier("ret")); - names.Insert(0, name); - } - - if (needsInstance) - { + } + + var needsFixedThis = needsInstance && isValueType; + + if (originalFunction.HasIndirectReturnTypeParameter) + { + var name = string.Format("new IntPtr(&{0})", GeneratedIdentifier("ret")); + names.Insert(0, name); + } + + if (needsInstance) + { var instanceIndex = GetInstanceParamIndex(function); if (needsFixedThis) - { + { names.Insert(instanceIndex, string.Format("new global::System.IntPtr(&{0})", GeneratedIdentifier("fixedInstance"))); } else { if (operatorParam != null) - { + { names.Insert(instanceIndex, operatorParam.Name + "." + Helpers.InstanceIdentifier); } else - { + { names.Insert(instanceIndex, Helpers.InstanceIdentifier); } } - } + } if (needsFixedThis) { @@ -2359,31 +2359,31 @@ namespace CppSharp.Generators.CSharp if (!string.IsNullOrWhiteSpace(marshal.Context.SupportBefore)) Write(marshal.Context.SupportBefore); - // Special case for indexer - needs to dereference if the internal - // function is a pointer type and the property is not. - if (retType.Type.IsAddress() && - retType.Type.GetPointee().Equals(returnType) && - returnType.IsPrimitiveType()) + // Special case for indexer - needs to dereference if the internal + // function is a pointer type and the property is not. + if (retType.Type.IsAddress() && + retType.Type.GetPointee().Equals(returnType) && + returnType.IsPrimitiveType()) WriteLine("return *{0};", marshal.Context.Return); else WriteLine("return {0};", marshal.Context.Return); } - } - - private int GetInstanceParamIndex(Function function) - { - var method = function as Method; - - if (Options.IsMicrosoftAbi) - return 0; - - var indirectReturnType = method.Parameters.FirstOrDefault( - parameter => parameter.Kind == ParameterKind.IndirectReturnType); - var indirectReturnTypeIndex = method.Parameters.IndexOf(indirectReturnType); - - return indirectReturnTypeIndex >= 0 ? ++indirectReturnTypeIndex : 0; - } - + } + + private int GetInstanceParamIndex(Function function) + { + var method = function as Method; + + if (Options.IsMicrosoftAbi) + return 0; + + var indirectReturnType = method.Parameters.FirstOrDefault( + parameter => parameter.Kind == ParameterKind.IndirectReturnType); + var indirectReturnTypeIndex = method.Parameters.IndexOf(indirectReturnType); + + return indirectReturnTypeIndex >= 0 ? ++indirectReturnTypeIndex : 0; + } + private void GenerateFunctionCallOutParams(IEnumerable @params, ICollection cleanups) { @@ -2522,7 +2522,7 @@ namespace CppSharp.Generators.CSharp #endregion public bool GenerateTypedef(TypedefDecl typedef) - { + { if (!typedef.IsGenerated) return false; @@ -2540,17 +2540,17 @@ namespace CppSharp.Generators.CSharp } else if (typedef.Type.IsPointerTo(out functionType)) { - PushBlock(CSharpBlockKind.Typedef); - var attributedType = typedef.Type.GetPointee() as AttributedType; - if (attributedType != null) - { - var equivalentFunctionType = attributedType.Equivalent.Type as FunctionType; - var callingConvention = equivalentFunctionType.CallingConvention.ToInteropCallConv(); - if (callingConvention != System.Runtime.InteropServices.CallingConvention.Winapi) - { - WriteLine("[UnmanagedFunctionPointerAttribute(global::System.Runtime.InteropServices.CallingConvention.{0})]", - callingConvention); - } + PushBlock(CSharpBlockKind.Typedef); + var attributedType = typedef.Type.GetPointee() as AttributedType; + if (attributedType != null) + { + var equivalentFunctionType = attributedType.Equivalent.Type as FunctionType; + var callingConvention = equivalentFunctionType.CallingConvention.ToInteropCallConv(); + if (callingConvention != System.Runtime.InteropServices.CallingConvention.Winapi) + { + WriteLine("[UnmanagedFunctionPointerAttribute(global::System.Runtime.InteropServices.CallingConvention.{0})]", + callingConvention); + } } TypePrinter.PushContext(CSharpTypePrinterContextKind.Native); WriteLine("{0}unsafe {1};", @@ -2565,7 +2565,7 @@ namespace CppSharp.Generators.CSharp } public void GenerateEnum(Enumeration @enum) - { + { if (!@enum.IsGenerated) return; PushBlock(CSharpBlockKind.Enum); @@ -2631,7 +2631,7 @@ namespace CppSharp.Generators.CSharp if (method.IsConstructor && !method.IsCopyConstructor) functionName = "ctor"; else if (method.IsCopyConstructor) - functionName = "cctor"; + functionName = "cctor"; else if (method.IsDestructor) functionName = "dtor"; else @@ -2649,7 +2649,7 @@ namespace CppSharp.Generators.CSharp if (index >= 0) identifier += "_" + index.ToString(CultureInfo.InvariantCulture); - else if (function.Index.HasValue) + else if (function.Index.HasValue) identifier += "_" + function.Index.Value; return identifier; @@ -2685,8 +2685,8 @@ namespace CppSharp.Generators.CSharp if (Options.GenerateInternalImports) libName = "__Internal"; - Write("[DllImport(\"{0}\", ", libName); - + Write("[DllImport(\"{0}\", ", libName); + var callConv = function.CallingConvention.ToInteropCallConv(); WriteLine("CallingConvention = global::System.Runtime.InteropServices.CallingConvention.{0},", callConv); @@ -2705,20 +2705,20 @@ namespace CppSharp.Generators.CSharp var retType = retParam.CSharpType(typePrinter); var method = function as Method; - var isInstanceMethod = method != null && !method.IsStatic; - - if (isInstanceMethod && Options.IsMicrosoftAbi) + var isInstanceMethod = method != null && !method.IsStatic; + + if (isInstanceMethod && Options.IsMicrosoftAbi) { @params.Add("global::System.IntPtr instance"); - if (method.IsConstructor) + if (method.IsConstructor) retType = "global::System.IntPtr"; } - if (!function.HasIndirectReturnTypeParameter && - isInstanceMethod && Options.IsItaniumAbi) - @params.Add("global::System.IntPtr instance"); - + if (!function.HasIndirectReturnTypeParameter && + isInstanceMethod && Options.IsItaniumAbi) + @params.Add("global::System.IntPtr instance"); + foreach (var param in function.Parameters) { if (param.Kind == ParameterKind.OperatorParameter) @@ -2727,12 +2727,12 @@ namespace CppSharp.Generators.CSharp var typeName = param.CSharpType(typePrinter); @params.Add(string.Format("{0} {1}", typeName, param.Name)); - - if (param.Kind == ParameterKind.IndirectReturnType && - isInstanceMethod && Options.IsItaniumAbi) - @params.Add("global::System.IntPtr instance"); - } - + + if (param.Kind == ParameterKind.IndirectReturnType && + isInstanceMethod && Options.IsItaniumAbi) + @params.Add("global::System.IntPtr instance"); + } + if (method != null && method.IsConstructor) { var @class = method.Namespace as Class; diff --git a/src/Generator/Generators/CSharp/CSharpTypePrinter.cs b/src/Generator/Generators/CSharp/CSharpTypePrinter.cs index ff7f36a8..d7965d84 100644 --- a/src/Generator/Generators/CSharp/CSharpTypePrinter.cs +++ b/src/Generator/Generators/CSharp/CSharpTypePrinter.cs @@ -1,587 +1,587 @@ -using System; -using System.Collections.Generic; -using CppSharp.AST; -using CppSharp.AST.Extensions; -using CppSharp.Types; -using Type = CppSharp.AST.Type; - -namespace CppSharp.Generators.CSharp -{ - public enum CSharpTypePrinterContextKind - { - Native, - Managed, - ManagedPointer, - GenericDelegate - } - - public class CSharpTypePrinterContext : TypePrinterContext - { - public CSharpTypePrinterContextKind CSharpKind; - public QualifiedType FullType; - - public CSharpTypePrinterContext() - { - - } - - public CSharpTypePrinterContext(TypePrinterContextKind kind, - CSharpTypePrinterContextKind csharpKind) : base(kind) - { - CSharpKind = csharpKind; - } - } - - public class CSharpTypePrinterResult - { - public string Type; - public TypeMap TypeMap; - public string NameSuffix; - - public static implicit operator CSharpTypePrinterResult(string type) - { - return new CSharpTypePrinterResult() {Type = type}; - } - - public override string ToString() - { - return Type; - } - } - - public class CSharpTypePrinter : ITypePrinter, - IDeclVisitor - { - public ASTContext AstContext { get; set; } - private readonly ITypeMapDatabase TypeMapDatabase; - private readonly DriverOptions driverOptions; - - private readonly Stack contexts; - - public CSharpTypePrinterContextKind ContextKind - { - get { return contexts.Peek(); } - } - - public CSharpTypePrinterContext Context; - - public CSharpTypePrinter(ITypeMapDatabase database, DriverOptions driverOptions, ASTContext context) - { - TypeMapDatabase = database; - this.driverOptions = driverOptions; - AstContext = context; - - contexts = new Stack(); - PushContext(CSharpTypePrinterContextKind.Managed); - - Context = new CSharpTypePrinterContext(); - } - - public void PushContext(CSharpTypePrinterContextKind contextKind) - { - contexts.Push(contextKind); - } - - public CSharpTypePrinterContextKind PopContext() - { - return contexts.Pop(); - } - - public CSharpTypePrinterResult VisitTagType(TagType tag, TypeQualifiers quals) - { - if (tag.Declaration == null) - return string.Empty; - - TypeMap typeMap; - if (TypeMapDatabase.FindTypeMap(tag.Declaration, out typeMap)) - { - typeMap.Type = tag; - Context.CSharpKind = ContextKind; - Context.Type = tag; - - string type = typeMap.CSharpSignature(Context); - if (!string.IsNullOrEmpty(type)) - { - return new CSharpTypePrinterResult - { - Type = type, - TypeMap = typeMap - }; - } - } - - return tag.Declaration.Visit(this); - } - - public CSharpTypePrinterResult VisitArrayType(ArrayType array, - TypeQualifiers quals) - { - if (ContextKind == CSharpTypePrinterContextKind.Native && - array.SizeType == ArrayType.ArraySize.Constant) - { - if (array.Type.Desugar().IsPointerToPrimitiveType()) - { - return new CSharpTypePrinterResult - { - Type = string.Format("{0}*", array.Type.Visit(this, quals)) - }; - } - // Do not write the fixed keyword multiple times for nested array types - var fixedKeyword = array.Type is ArrayType ? string.Empty : "fixed "; - return new CSharpTypePrinterResult() - { - Type = string.Format("{0}{1}", fixedKeyword, array.Type.Visit(this, quals)), - NameSuffix = string.Format("[{0}]", array.Size) - }; - } - - return string.Format("{0}[]", array.Type.Visit(this)); - - // C# only supports fixed arrays in unsafe sections - // and they are constrained to a set of built-in types. - } - - public CSharpTypePrinterResult VisitFunctionType(FunctionType function, - TypeQualifiers quals) - { - var arguments = function.Parameters; - var returnType = function.ReturnType; - var args = string.Empty; - - PushContext(CSharpTypePrinterContextKind.GenericDelegate); - - if (arguments.Count > 0) - args = VisitParameters(function.Parameters, hasNames: false).Type; - - PopContext(); - - if (ContextKind != CSharpTypePrinterContextKind.Managed) - return "global::System.IntPtr"; - - if (returnType.Type.IsPrimitiveType(PrimitiveType.Void)) - { - if (!string.IsNullOrEmpty(args)) - args = string.Format("<{0}>", args); - return string.Format("Action{0}", args); - } - - if (!string.IsNullOrEmpty(args)) - args = string.Format(", {0}", args); - - return string.Format("Func<{0}{1}>", returnType.Visit(this), args); - } - - public static bool IsConstCharString(PointerType pointer) - { - var pointee = pointer.Pointee.Desugar(); - - return (pointee.IsPrimitiveType(PrimitiveType.Char) || - pointee.IsPrimitiveType(PrimitiveType.WideChar)) && - pointer.QualifiedPointee.Qualifiers.IsConst; - } - - public static bool IsConstCharString(QualifiedType qualType) - { - var desugared = qualType.Type.Desugar(); - - if (!(desugared is PointerType)) - return false; - - var pointer = desugared as PointerType; - return IsConstCharString(pointer); - } - - public CSharpTypePrinterResult VisitPointerType(PointerType pointer, - TypeQualifiers quals) - { - var pointee = pointer.Pointee; - - if (pointee is FunctionType) - { - var function = pointee as FunctionType; - return string.Format("{0}", function.Visit(this, quals)); - } - - var isManagedContext = ContextKind == CSharpTypePrinterContextKind.Managed; - - if (IsConstCharString(pointer)) - return isManagedContext ? "string" : "global::System.IntPtr"; - - var desugared = pointee.Desugar(); - - // From http://msdn.microsoft.com/en-us/library/y31yhkeb.aspx - // Any of the following types may be a pointer type: - // * sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal, or bool. - // * Any enum type. - // * Any pointer type. - // * Any user-defined struct type that contains fields of unmanaged types only. - var finalPointee = pointer.GetFinalPointee(); - if (finalPointee.IsPrimitiveType()) - { - // Skip one indirection if passed by reference - var param = Context.Parameter; - if (isManagedContext && param != null && (param.IsOut || param.IsInOut) - && pointee == finalPointee) - return pointee.Visit(this, quals); - - if (ContextKind == CSharpTypePrinterContextKind.GenericDelegate) - return "global::System.IntPtr"; - - return pointee.Visit(this, quals) + "*"; - } - - Enumeration @enum; - if (desugared.TryGetEnum(out @enum)) - { - return @enum.Name + "*"; - } - - Class @class; - if ((desugared.IsDependent || desugared.TryGetClass(out @class)) - && ContextKind == CSharpTypePrinterContextKind.Native) - { - return "global::System.IntPtr"; - } - - return pointee.Visit(this, quals); - } - - public CSharpTypePrinterResult VisitMemberPointerType(MemberPointerType member, - TypeQualifiers quals) - { - FunctionType functionType; - if (member.IsPointerTo(out functionType)) - { - return functionType.Visit(this, quals); - } - throw new InvalidOperationException("A function pointer not pointing to a function type."); - } - - public CSharpTypePrinterResult VisitBuiltinType(BuiltinType builtin, - TypeQualifiers quals) - { - return VisitPrimitiveType(builtin.Type, quals); - } - - public CSharpTypePrinterResult VisitTypedefType(TypedefType typedef, - TypeQualifiers quals) - { - var decl = typedef.Declaration; - - TypeMap typeMap; - if (TypeMapDatabase.FindTypeMap(decl, out typeMap)) - { - typeMap.Type = typedef; - Context.CSharpKind = ContextKind; - Context.Type = typedef; - - string type = typeMap.CSharpSignature(Context); - if (!string.IsNullOrEmpty(type)) - { - return new CSharpTypePrinterResult - { - Type = type, - TypeMap = typeMap - }; - } - } - - FunctionType func; - if (decl.Type.IsPointerTo(out func)) - { - if (ContextKind == CSharpTypePrinterContextKind.Native) - return "global::System.IntPtr"; - // TODO: Use SafeIdentifier() - return VisitDeclaration(decl); - } - - return decl.Type.Visit(this); - } - - public CSharpTypePrinterResult VisitAttributedType(AttributedType attributed, TypeQualifiers quals) - { - return attributed.Modified.Visit(this); - } - - public CSharpTypePrinterResult VisitDecayedType(DecayedType decayed, TypeQualifiers quals) - { - return decayed.Decayed.Visit(this); - } - - public CSharpTypePrinterResult VisitTemplateSpecializationType( - TemplateSpecializationType template, TypeQualifiers quals) - { - var decl = template.Template.TemplatedDecl; - - TypeMap typeMap = null; - if (TypeMapDatabase.FindTypeMap(template, out typeMap)) - { - typeMap.Declaration = decl; - typeMap.Type = template; - Context.Type = template; - Context.CSharpKind = ContextKind; - - string type = GetCSharpSignature(typeMap); - if (!string.IsNullOrEmpty(type)) - { - return new CSharpTypePrinterResult - { - Type = type, - TypeMap = typeMap - }; - } - } - - return decl.Name + (ContextKind == CSharpTypePrinterContextKind.Native ? - ".Internal" : string.Empty); - } - - private string GetCSharpSignature(TypeMap typeMap) - { - Context.CSharpKind = ContextKind; - return typeMap.CSharpSignature(Context); - } - - public CSharpTypePrinterResult VisitTemplateParameterType( - TemplateParameterType param, TypeQualifiers quals) - { - return param.Parameter.Name; - } - - public CSharpTypePrinterResult VisitTemplateParameterSubstitutionType( - TemplateParameterSubstitutionType param, TypeQualifiers quals) - { - var type = param.Replacement.Type; - return type.Visit(this, param.Replacement.Qualifiers); - } - - public CSharpTypePrinterResult VisitInjectedClassNameType( - InjectedClassNameType injected, TypeQualifiers quals) - { - return injected.Class.Name; - } - - public CSharpTypePrinterResult VisitDependentNameType(DependentNameType dependent, - TypeQualifiers quals) - { - throw new NotImplementedException(); - } - - public CSharpTypePrinterResult VisitPackExpansionType(PackExpansionType packExpansionType, TypeQualifiers quals) - { - return string.Empty; - } - - public CSharpTypePrinterResult VisitCILType(CILType type, TypeQualifiers quals) - { - return type.Type.FullName; - } - - public CSharpTypePrinterResult VisitPrimitiveType(PrimitiveType primitive, - TypeQualifiers quals) - { - switch (primitive) - { - case PrimitiveType.Bool: return "bool"; - case PrimitiveType.Void: return "void"; - case PrimitiveType.Char16: - case PrimitiveType.WideChar: return "char"; - case PrimitiveType.Int8: return driverOptions.MarshalCharAsManagedChar ? "char" : "sbyte"; - case PrimitiveType.UInt8: return "byte"; - case PrimitiveType.Int16: return "short"; - case PrimitiveType.UInt16: return "ushort"; - case PrimitiveType.Int32: return "int"; - case PrimitiveType.UInt32: return "uint"; - case PrimitiveType.Int64: return "long"; - case PrimitiveType.UInt64: return "ulong"; - case PrimitiveType.Float: return "float"; - case PrimitiveType.Double: return "double"; - case PrimitiveType.IntPtr: return "global::System.IntPtr"; - case PrimitiveType.UIntPtr: return "global::System.UIntPtr"; - case PrimitiveType.Null: return "void*"; - } - - throw new NotSupportedException(); - } - - public CSharpTypePrinterResult VisitDeclaration(Declaration decl, - TypeQualifiers quals) - { - return VisitDeclaration(decl); - } - - public CSharpTypePrinterResult VisitDeclaration(Declaration decl) - { - return GetNestedQualifiedName(decl); - } - - public CSharpTypePrinterResult VisitClassDecl(Class @class) - { - if (ContextKind == CSharpTypePrinterContextKind.Native) - return string.Format("{0}.Internal", - GetNestedQualifiedName(@class.OriginalClass ?? @class)); - - return GetNestedQualifiedName(@class); - } - - public CSharpTypePrinterResult VisitFieldDecl(Field field) - { - throw new NotImplementedException(); - } - - public CSharpTypePrinterResult VisitFunctionDecl(Function function) - { - throw new NotImplementedException(); - } - - public CSharpTypePrinterResult VisitMethodDecl(Method method) - { - throw new NotImplementedException(); - } - - public CSharpTypePrinterResult VisitParameterDecl(Parameter parameter) - { - var paramType = parameter.Type; - - if (parameter.Kind == ParameterKind.IndirectReturnType) - return "global::System.IntPtr"; - - Context.Parameter = parameter; - var ret = paramType.Visit(this); - Context.Parameter = null; - - return ret; - } - - public CSharpTypePrinterResult VisitTypedefDecl(TypedefDecl typedef) - { - return GetNestedQualifiedName(typedef); - } - - public CSharpTypePrinterResult VisitEnumDecl(Enumeration @enum) - { - return GetNestedQualifiedName(@enum); - } - - static private string GetNestedQualifiedName(Declaration decl) - { - var names = new List { decl.Name }; - - var ctx = decl.Namespace; - while (ctx != null) - { - if (ctx is TranslationUnit) - break; - - if (!string.IsNullOrWhiteSpace(ctx.Name)) - names.Add(ctx.Name); - - ctx = ctx.Namespace; - } - - names.Reverse(); - return string.Join(".", names); - } - - public CSharpTypePrinterResult VisitVariableDecl(Variable variable) - { - throw new NotImplementedException(); - } - - public CSharpTypePrinterResult VisitClassTemplateDecl(ClassTemplate template) - { - throw new NotImplementedException(); - } - - public CSharpTypePrinterResult VisitFunctionTemplateDecl(FunctionTemplate template) - { - throw new NotImplementedException(); - } - - public CSharpTypePrinterResult VisitMacroDefinition(MacroDefinition macro) - { - throw new NotImplementedException(); - } - - public CSharpTypePrinterResult VisitNamespace(Namespace @namespace) - { - throw new NotImplementedException(); - } - - public CSharpTypePrinterResult VisitEvent(Event @event) - { - throw new NotImplementedException(); - } - - public CSharpTypePrinterResult VisitProperty(Property property) - { - throw new NotImplementedException(); - } - - public CSharpTypePrinterResult VisitParameters(IEnumerable @params, - bool hasNames) - { - var args = new List(); - - foreach (var param in @params) - { - Context.Parameter = param; - args.Add(VisitParameter(param, hasNames).Type); - } - - Context.Parameter = null; - return string.Join(", ", args); - } - - public CSharpTypePrinterResult VisitParameter(Parameter arg, bool hasName) - { - var type = arg.Type.Visit(this, arg.QualifiedType.Qualifiers); - var name = arg.Name; - - if (hasName && !string.IsNullOrEmpty(name)) - return string.Format("{0} {1}", type, name); - - return type; - } - - public CSharpTypePrinterResult VisitDelegate(FunctionType function) - { - return string.Format("delegate {0} {{0}}({1})", - function.ReturnType.Visit(this), - VisitParameters(function.Parameters, hasNames: true)); - } - - public string ToString(Type type) - { - return type.Visit(this).Type; - } - } - - public static class CSharpTypePrinterExtensions - { - public static CSharpTypePrinterResult CSharpType(this QualifiedType type, - CSharpTypePrinter printer) - { - printer.Context.FullType = type; - return type.Visit(printer); - } - - public static CSharpTypePrinterResult CSharpType(this Type type, - CSharpTypePrinter printer) - { - return CSharpType(new QualifiedType(type), printer); - } - - public static CSharpTypePrinterResult CSharpType(this Declaration decl, - CSharpTypePrinter printer) - { - if (decl is ITypedDecl) - { - var type = (decl as ITypedDecl).QualifiedType; - printer.Context.FullType = type; - } - - return decl.Visit(printer); - } - } +using System; +using System.Collections.Generic; +using CppSharp.AST; +using CppSharp.AST.Extensions; +using CppSharp.Types; +using Type = CppSharp.AST.Type; + +namespace CppSharp.Generators.CSharp +{ + public enum CSharpTypePrinterContextKind + { + Native, + Managed, + ManagedPointer, + GenericDelegate + } + + public class CSharpTypePrinterContext : TypePrinterContext + { + public CSharpTypePrinterContextKind CSharpKind; + public QualifiedType FullType; + + public CSharpTypePrinterContext() + { + + } + + public CSharpTypePrinterContext(TypePrinterContextKind kind, + CSharpTypePrinterContextKind csharpKind) : base(kind) + { + CSharpKind = csharpKind; + } + } + + public class CSharpTypePrinterResult + { + public string Type; + public TypeMap TypeMap; + public string NameSuffix; + + public static implicit operator CSharpTypePrinterResult(string type) + { + return new CSharpTypePrinterResult() {Type = type}; + } + + public override string ToString() + { + return Type; + } + } + + public class CSharpTypePrinter : ITypePrinter, + IDeclVisitor + { + public ASTContext AstContext { get; set; } + private readonly ITypeMapDatabase TypeMapDatabase; + private readonly DriverOptions driverOptions; + + private readonly Stack contexts; + + public CSharpTypePrinterContextKind ContextKind + { + get { return contexts.Peek(); } + } + + public CSharpTypePrinterContext Context; + + public CSharpTypePrinter(ITypeMapDatabase database, DriverOptions driverOptions, ASTContext context) + { + TypeMapDatabase = database; + this.driverOptions = driverOptions; + AstContext = context; + + contexts = new Stack(); + PushContext(CSharpTypePrinterContextKind.Managed); + + Context = new CSharpTypePrinterContext(); + } + + public void PushContext(CSharpTypePrinterContextKind contextKind) + { + contexts.Push(contextKind); + } + + public CSharpTypePrinterContextKind PopContext() + { + return contexts.Pop(); + } + + public CSharpTypePrinterResult VisitTagType(TagType tag, TypeQualifiers quals) + { + if (tag.Declaration == null) + return string.Empty; + + TypeMap typeMap; + if (TypeMapDatabase.FindTypeMap(tag.Declaration, out typeMap)) + { + typeMap.Type = tag; + Context.CSharpKind = ContextKind; + Context.Type = tag; + + string type = typeMap.CSharpSignature(Context); + if (!string.IsNullOrEmpty(type)) + { + return new CSharpTypePrinterResult + { + Type = type, + TypeMap = typeMap + }; + } + } + + return tag.Declaration.Visit(this); + } + + public CSharpTypePrinterResult VisitArrayType(ArrayType array, + TypeQualifiers quals) + { + if (ContextKind == CSharpTypePrinterContextKind.Native && + array.SizeType == ArrayType.ArraySize.Constant) + { + if (array.Type.Desugar().IsPointerToPrimitiveType()) + { + return new CSharpTypePrinterResult + { + Type = string.Format("{0}*", array.Type.Visit(this, quals)) + }; + } + // Do not write the fixed keyword multiple times for nested array types + var fixedKeyword = array.Type is ArrayType ? string.Empty : "fixed "; + return new CSharpTypePrinterResult() + { + Type = string.Format("{0}{1}", fixedKeyword, array.Type.Visit(this, quals)), + NameSuffix = string.Format("[{0}]", array.Size) + }; + } + + return string.Format("{0}[]", array.Type.Visit(this)); + + // C# only supports fixed arrays in unsafe sections + // and they are constrained to a set of built-in types. + } + + public CSharpTypePrinterResult VisitFunctionType(FunctionType function, + TypeQualifiers quals) + { + var arguments = function.Parameters; + var returnType = function.ReturnType; + var args = string.Empty; + + PushContext(CSharpTypePrinterContextKind.GenericDelegate); + + if (arguments.Count > 0) + args = VisitParameters(function.Parameters, hasNames: false).Type; + + PopContext(); + + if (ContextKind != CSharpTypePrinterContextKind.Managed) + return "global::System.IntPtr"; + + if (returnType.Type.IsPrimitiveType(PrimitiveType.Void)) + { + if (!string.IsNullOrEmpty(args)) + args = string.Format("<{0}>", args); + return string.Format("Action{0}", args); + } + + if (!string.IsNullOrEmpty(args)) + args = string.Format(", {0}", args); + + return string.Format("Func<{0}{1}>", returnType.Visit(this), args); + } + + public static bool IsConstCharString(PointerType pointer) + { + var pointee = pointer.Pointee.Desugar(); + + return (pointee.IsPrimitiveType(PrimitiveType.Char) || + pointee.IsPrimitiveType(PrimitiveType.WideChar)) && + pointer.QualifiedPointee.Qualifiers.IsConst; + } + + public static bool IsConstCharString(QualifiedType qualType) + { + var desugared = qualType.Type.Desugar(); + + if (!(desugared is PointerType)) + return false; + + var pointer = desugared as PointerType; + return IsConstCharString(pointer); + } + + public CSharpTypePrinterResult VisitPointerType(PointerType pointer, + TypeQualifiers quals) + { + var pointee = pointer.Pointee; + + if (pointee is FunctionType) + { + var function = pointee as FunctionType; + return string.Format("{0}", function.Visit(this, quals)); + } + + var isManagedContext = ContextKind == CSharpTypePrinterContextKind.Managed; + + if (IsConstCharString(pointer)) + return isManagedContext ? "string" : "global::System.IntPtr"; + + var desugared = pointee.Desugar(); + + // From http://msdn.microsoft.com/en-us/library/y31yhkeb.aspx + // Any of the following types may be a pointer type: + // * sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal, or bool. + // * Any enum type. + // * Any pointer type. + // * Any user-defined struct type that contains fields of unmanaged types only. + var finalPointee = pointer.GetFinalPointee(); + if (finalPointee.IsPrimitiveType()) + { + // Skip one indirection if passed by reference + var param = Context.Parameter; + if (isManagedContext && param != null && (param.IsOut || param.IsInOut) + && pointee == finalPointee) + return pointee.Visit(this, quals); + + if (ContextKind == CSharpTypePrinterContextKind.GenericDelegate) + return "global::System.IntPtr"; + + return pointee.Visit(this, quals) + "*"; + } + + Enumeration @enum; + if (desugared.TryGetEnum(out @enum)) + { + return @enum.Name + "*"; + } + + Class @class; + if ((desugared.IsDependent || desugared.TryGetClass(out @class)) + && ContextKind == CSharpTypePrinterContextKind.Native) + { + return "global::System.IntPtr"; + } + + return pointee.Visit(this, quals); + } + + public CSharpTypePrinterResult VisitMemberPointerType(MemberPointerType member, + TypeQualifiers quals) + { + FunctionType functionType; + if (member.IsPointerTo(out functionType)) + { + return functionType.Visit(this, quals); + } + throw new InvalidOperationException("A function pointer not pointing to a function type."); + } + + public CSharpTypePrinterResult VisitBuiltinType(BuiltinType builtin, + TypeQualifiers quals) + { + return VisitPrimitiveType(builtin.Type, quals); + } + + public CSharpTypePrinterResult VisitTypedefType(TypedefType typedef, + TypeQualifiers quals) + { + var decl = typedef.Declaration; + + TypeMap typeMap; + if (TypeMapDatabase.FindTypeMap(decl, out typeMap)) + { + typeMap.Type = typedef; + Context.CSharpKind = ContextKind; + Context.Type = typedef; + + string type = typeMap.CSharpSignature(Context); + if (!string.IsNullOrEmpty(type)) + { + return new CSharpTypePrinterResult + { + Type = type, + TypeMap = typeMap + }; + } + } + + FunctionType func; + if (decl.Type.IsPointerTo(out func)) + { + if (ContextKind == CSharpTypePrinterContextKind.Native) + return "global::System.IntPtr"; + // TODO: Use SafeIdentifier() + return VisitDeclaration(decl); + } + + return decl.Type.Visit(this); + } + + public CSharpTypePrinterResult VisitAttributedType(AttributedType attributed, TypeQualifiers quals) + { + return attributed.Modified.Visit(this); + } + + public CSharpTypePrinterResult VisitDecayedType(DecayedType decayed, TypeQualifiers quals) + { + return decayed.Decayed.Visit(this); + } + + public CSharpTypePrinterResult VisitTemplateSpecializationType( + TemplateSpecializationType template, TypeQualifiers quals) + { + var decl = template.Template.TemplatedDecl; + + TypeMap typeMap = null; + if (TypeMapDatabase.FindTypeMap(template, out typeMap)) + { + typeMap.Declaration = decl; + typeMap.Type = template; + Context.Type = template; + Context.CSharpKind = ContextKind; + + string type = GetCSharpSignature(typeMap); + if (!string.IsNullOrEmpty(type)) + { + return new CSharpTypePrinterResult + { + Type = type, + TypeMap = typeMap + }; + } + } + + return decl.Name + (ContextKind == CSharpTypePrinterContextKind.Native ? + ".Internal" : string.Empty); + } + + private string GetCSharpSignature(TypeMap typeMap) + { + Context.CSharpKind = ContextKind; + return typeMap.CSharpSignature(Context); + } + + public CSharpTypePrinterResult VisitTemplateParameterType( + TemplateParameterType param, TypeQualifiers quals) + { + return param.Parameter.Name; + } + + public CSharpTypePrinterResult VisitTemplateParameterSubstitutionType( + TemplateParameterSubstitutionType param, TypeQualifiers quals) + { + var type = param.Replacement.Type; + return type.Visit(this, param.Replacement.Qualifiers); + } + + public CSharpTypePrinterResult VisitInjectedClassNameType( + InjectedClassNameType injected, TypeQualifiers quals) + { + return injected.Class.Name; + } + + public CSharpTypePrinterResult VisitDependentNameType(DependentNameType dependent, + TypeQualifiers quals) + { + throw new NotImplementedException(); + } + + public CSharpTypePrinterResult VisitPackExpansionType(PackExpansionType packExpansionType, TypeQualifiers quals) + { + return string.Empty; + } + + public CSharpTypePrinterResult VisitCILType(CILType type, TypeQualifiers quals) + { + return type.Type.FullName; + } + + public CSharpTypePrinterResult VisitPrimitiveType(PrimitiveType primitive, + TypeQualifiers quals) + { + switch (primitive) + { + case PrimitiveType.Bool: return "bool"; + case PrimitiveType.Void: return "void"; + case PrimitiveType.Char16: + case PrimitiveType.WideChar: return "char"; + case PrimitiveType.Int8: return driverOptions.MarshalCharAsManagedChar ? "char" : "sbyte"; + case PrimitiveType.UInt8: return "byte"; + case PrimitiveType.Int16: return "short"; + case PrimitiveType.UInt16: return "ushort"; + case PrimitiveType.Int32: return "int"; + case PrimitiveType.UInt32: return "uint"; + case PrimitiveType.Int64: return "long"; + case PrimitiveType.UInt64: return "ulong"; + case PrimitiveType.Float: return "float"; + case PrimitiveType.Double: return "double"; + case PrimitiveType.IntPtr: return "global::System.IntPtr"; + case PrimitiveType.UIntPtr: return "global::System.UIntPtr"; + case PrimitiveType.Null: return "void*"; + } + + throw new NotSupportedException(); + } + + public CSharpTypePrinterResult VisitDeclaration(Declaration decl, + TypeQualifiers quals) + { + return VisitDeclaration(decl); + } + + public CSharpTypePrinterResult VisitDeclaration(Declaration decl) + { + return GetNestedQualifiedName(decl); + } + + public CSharpTypePrinterResult VisitClassDecl(Class @class) + { + if (ContextKind == CSharpTypePrinterContextKind.Native) + return string.Format("{0}.Internal", + GetNestedQualifiedName(@class.OriginalClass ?? @class)); + + return GetNestedQualifiedName(@class); + } + + public CSharpTypePrinterResult VisitFieldDecl(Field field) + { + throw new NotImplementedException(); + } + + public CSharpTypePrinterResult VisitFunctionDecl(Function function) + { + throw new NotImplementedException(); + } + + public CSharpTypePrinterResult VisitMethodDecl(Method method) + { + throw new NotImplementedException(); + } + + public CSharpTypePrinterResult VisitParameterDecl(Parameter parameter) + { + var paramType = parameter.Type; + + if (parameter.Kind == ParameterKind.IndirectReturnType) + return "global::System.IntPtr"; + + Context.Parameter = parameter; + var ret = paramType.Visit(this); + Context.Parameter = null; + + return ret; + } + + public CSharpTypePrinterResult VisitTypedefDecl(TypedefDecl typedef) + { + return GetNestedQualifiedName(typedef); + } + + public CSharpTypePrinterResult VisitEnumDecl(Enumeration @enum) + { + return GetNestedQualifiedName(@enum); + } + + static private string GetNestedQualifiedName(Declaration decl) + { + var names = new List { decl.Name }; + + var ctx = decl.Namespace; + while (ctx != null) + { + if (ctx is TranslationUnit) + break; + + if (!string.IsNullOrWhiteSpace(ctx.Name)) + names.Add(ctx.Name); + + ctx = ctx.Namespace; + } + + names.Reverse(); + return string.Join(".", names); + } + + public CSharpTypePrinterResult VisitVariableDecl(Variable variable) + { + throw new NotImplementedException(); + } + + public CSharpTypePrinterResult VisitClassTemplateDecl(ClassTemplate template) + { + throw new NotImplementedException(); + } + + public CSharpTypePrinterResult VisitFunctionTemplateDecl(FunctionTemplate template) + { + throw new NotImplementedException(); + } + + public CSharpTypePrinterResult VisitMacroDefinition(MacroDefinition macro) + { + throw new NotImplementedException(); + } + + public CSharpTypePrinterResult VisitNamespace(Namespace @namespace) + { + throw new NotImplementedException(); + } + + public CSharpTypePrinterResult VisitEvent(Event @event) + { + throw new NotImplementedException(); + } + + public CSharpTypePrinterResult VisitProperty(Property property) + { + throw new NotImplementedException(); + } + + public CSharpTypePrinterResult VisitParameters(IEnumerable @params, + bool hasNames) + { + var args = new List(); + + foreach (var param in @params) + { + Context.Parameter = param; + args.Add(VisitParameter(param, hasNames).Type); + } + + Context.Parameter = null; + return string.Join(", ", args); + } + + public CSharpTypePrinterResult VisitParameter(Parameter arg, bool hasName) + { + var type = arg.Type.Visit(this, arg.QualifiedType.Qualifiers); + var name = arg.Name; + + if (hasName && !string.IsNullOrEmpty(name)) + return string.Format("{0} {1}", type, name); + + return type; + } + + public CSharpTypePrinterResult VisitDelegate(FunctionType function) + { + return string.Format("delegate {0} {{0}}({1})", + function.ReturnType.Visit(this), + VisitParameters(function.Parameters, hasNames: true)); + } + + public string ToString(Type type) + { + return type.Visit(this).Type; + } + } + + public static class CSharpTypePrinterExtensions + { + public static CSharpTypePrinterResult CSharpType(this QualifiedType type, + CSharpTypePrinter printer) + { + printer.Context.FullType = type; + return type.Visit(printer); + } + + public static CSharpTypePrinterResult CSharpType(this Type type, + CSharpTypePrinter printer) + { + return CSharpType(new QualifiedType(type), printer); + } + + public static CSharpTypePrinterResult CSharpType(this Declaration decl, + CSharpTypePrinter printer) + { + if (decl is ITypedDecl) + { + var type = (decl as ITypedDecl).QualifiedType; + printer.Context.FullType = type; + } + + return decl.Visit(printer); + } + } } \ No newline at end of file diff --git a/src/Generator/Generators/ExtensionMethods.cs b/src/Generator/Generators/ExtensionMethods.cs index c48da7a9..9edcda42 100644 --- a/src/Generator/Generators/ExtensionMethods.cs +++ b/src/Generator/Generators/ExtensionMethods.cs @@ -1,27 +1,27 @@ -using CppSharp.AST; -using Interop = System.Runtime.InteropServices; - -namespace CppSharp.Generators -{ - public static class ExtensionMethods - { - public static Interop.CallingConvention ToInteropCallConv(this CallingConvention convention) - { - switch (convention) - { - case CallingConvention.Default: - return Interop.CallingConvention.Winapi; - case CallingConvention.C: - return Interop.CallingConvention.Cdecl; - case CallingConvention.StdCall: - return Interop.CallingConvention.StdCall; - case CallingConvention.ThisCall: - return Interop.CallingConvention.ThisCall; - case CallingConvention.FastCall: - return Interop.CallingConvention.FastCall; - } - - return Interop.CallingConvention.Winapi; - } - } -} +using CppSharp.AST; +using Interop = System.Runtime.InteropServices; + +namespace CppSharp.Generators +{ + public static class ExtensionMethods + { + public static Interop.CallingConvention ToInteropCallConv(this CallingConvention convention) + { + switch (convention) + { + case CallingConvention.Default: + return Interop.CallingConvention.Winapi; + case CallingConvention.C: + return Interop.CallingConvention.Cdecl; + case CallingConvention.StdCall: + return Interop.CallingConvention.StdCall; + case CallingConvention.ThisCall: + return Interop.CallingConvention.ThisCall; + case CallingConvention.FastCall: + return Interop.CallingConvention.FastCall; + } + + return Interop.CallingConvention.Winapi; + } + } +} diff --git a/src/Generator/Generators/Template.cs b/src/Generator/Generators/Template.cs index f015b3c7..dc7e36f0 100644 --- a/src/Generator/Generators/Template.cs +++ b/src/Generator/Generators/Template.cs @@ -38,8 +38,8 @@ namespace CppSharp.Generators private bool hasIndentChanged; private bool isSubBlock; - public Func CheckGenerate; - + public Func CheckGenerate; + public Block() : this(BlockKind.Unknown) { @@ -83,9 +83,9 @@ namespace CppSharp.Generators public virtual string Generate(DriverOptions options) { - if (CheckGenerate != null && !CheckGenerate()) - return ""; - + if (CheckGenerate != null && !CheckGenerate()) + return ""; + if (Blocks.Count == 0) return Text.ToString(); @@ -170,17 +170,17 @@ namespace CppSharp.Generators return builder.ToString(); } - public bool IsEmpty - { - get - { - if (Blocks.Any(block => !block.IsEmpty)) - return false; - - return string.IsNullOrEmpty(Text.ToString()); - } - } - + public bool IsEmpty + { + get + { + if (Blocks.Any(block => !block.IsEmpty)) + return false; + + return string.IsNullOrEmpty(Text.ToString()); + } + } + #region ITextGenerator implementation public uint Indent { get { return Text.Indent; } } @@ -296,14 +296,14 @@ namespace CppSharp.Generators ActiveBlock = block; } - public Block PopBlock(NewLineKind newLineKind = NewLineKind.Never) + public Block PopBlock(NewLineKind newLineKind = NewLineKind.Never) { - var block = ActiveBlock; - + var block = ActiveBlock; + ActiveBlock.NewLineKind = newLineKind; ActiveBlock = ActiveBlock.Parent; - - return block; + + return block; } public IEnumerable FindBlocks(int kind) diff --git a/src/Generator/Options.cs b/src/Generator/Options.cs index deec8d7d..c1a1d93a 100644 --- a/src/Generator/Options.cs +++ b/src/Generator/Options.cs @@ -54,14 +54,14 @@ namespace CppSharp // General options public bool Quiet; public bool ShowHelpText; - public bool OutputDebug; - - /// - /// Set to true to simulate generating without actually writing - /// any output to disk. This can be useful to activate while - /// debugging the parser generator so generator bugs do not get - /// in the way while iterating. - /// + public bool OutputDebug; + + /// + /// Set to true to simulate generating without actually writing + /// any output to disk. This can be useful to activate while + /// debugging the parser generator so generator bugs do not get + /// in the way while iterating. + /// public bool DryRun; // Parser options @@ -101,39 +101,39 @@ namespace CppSharp public bool GenerateAbstractImpls; public bool GenerateInterfacesForMultipleInheritance; public bool GenerateInternalImports; - public bool GenerateClassMarshals; - public bool GenerateInlines; + public bool GenerateClassMarshals; + public bool GenerateInlines; public bool GenerateCopyConstructors; - public bool UseHeaderDirectories; - - /// - /// If set to true the generator will use GetterSetterToPropertyPass to - /// convert matching getter/setter pairs to properties. - /// - public bool GenerateProperties; - - /// - /// If set to true the generator will use GetterSetterToPropertyAdvancedPass to - /// convert matching getter/setter pairs to properties. This pass has slightly - /// different semantics from GetterSetterToPropertyPass, it will more agressively - /// try to match for matching properties. - /// - public bool GeneratePropertiesAdvanced; - - /// - /// If set to true the generator will use ConstructorToConversionOperatorPass to - /// create implicit and explicit conversion operators out of single argument - /// constructors. - /// - public bool GenerateConversionOperators; + public bool UseHeaderDirectories; + + /// + /// If set to true the generator will use GetterSetterToPropertyPass to + /// convert matching getter/setter pairs to properties. + /// + public bool GenerateProperties; + + /// + /// If set to true the generator will use GetterSetterToPropertyAdvancedPass to + /// convert matching getter/setter pairs to properties. This pass has slightly + /// different semantics from GetterSetterToPropertyPass, it will more agressively + /// try to match for matching properties. + /// + public bool GeneratePropertiesAdvanced; + + /// + /// If set to true the generator will use ConstructorToConversionOperatorPass to + /// create implicit and explicit conversion operators out of single argument + /// constructors. + /// + public bool GenerateConversionOperators; //List of include directories that are used but not generated public List NoGenIncludeDirs; - /// - /// Wether the generated C# code should be automatically compiled. - /// - public bool CompileCode; + /// + /// Wether the generated C# code should be automatically compiled. + /// + public bool CompileCode; /// /// Enable this option to enable generation of finalizers. diff --git a/src/Generator/Passes/CheckOperatorsOverloads.cs b/src/Generator/Passes/CheckOperatorsOverloads.cs index 166a8cef..82f364c0 100644 --- a/src/Generator/Passes/CheckOperatorsOverloads.cs +++ b/src/Generator/Passes/CheckOperatorsOverloads.cs @@ -1,109 +1,109 @@ -using System.Linq; -using CppSharp.AST; -using CppSharp.AST.Extensions; -using CppSharp.Generators; - -namespace CppSharp.Passes -{ - /// - /// Checks for missing operator overloads required by C#. - /// - class CheckOperatorsOverloadsPass : TranslationUnitPass - { - public CheckOperatorsOverloadsPass() - { - ClearVisitedDeclarations = false; - } - - public override bool VisitClassDecl(Class @class) - { - if (@class.CompleteDeclaration != null) - return VisitClassDecl(@class.CompleteDeclaration as Class); - - if (!VisitDeclarationContext(@class)) - return false; - - // Check for C++ operators that cannot be represented in C#. - CheckInvalidOperators(@class); - - if (Driver.Options.IsCSharpGenerator) - { - // The comparison operators, if overloaded, must be overloaded in pairs; - // that is, if == is overloaded, != must also be overloaded. The reverse - // is also true, and similar for < and >, and for <= and >=. - - HandleMissingOperatorOverloadPair(@class, CXXOperatorKind.EqualEqual, - CXXOperatorKind.ExclaimEqual); - - HandleMissingOperatorOverloadPair(@class, CXXOperatorKind.Less, - CXXOperatorKind.Greater); - - HandleMissingOperatorOverloadPair(@class, CXXOperatorKind.LessEqual, - CXXOperatorKind.GreaterEqual); - } - - return false; - } - - private void CheckInvalidOperators(Class @class) - { - foreach (var @operator in @class.Operators.Where(o => o.IsGenerated)) - { - if (!IsValidOperatorOverload(@operator)) - { - Driver.Diagnostics.Debug(DiagnosticId.InvalidOperatorOverload, - "Invalid operator overload {0}::{1}", - @class.OriginalName, @operator.OperatorKind); - @operator.ExplicitlyIgnore(); - continue; - } - if (@operator.SynthKind == FunctionSynthKind.NonMemberOperator) - continue; - - if (@operator.OperatorKind == CXXOperatorKind.Subscript) - { - CreateIndexer(@class, @operator); - } - else - { - // Handle missing operator parameters - if (@operator.IsStatic) - @operator.Parameters = @operator.Parameters.Skip(1).ToList(); - - var type = new PointerType() - { - QualifiedPointee = new QualifiedType(new TagType(@class)), - Modifier = PointerType.TypeModifier.LVReference - }; - - @operator.Parameters.Insert(0, new Parameter - { - Name = Generator.GeneratedIdentifier("op"), - QualifiedType = new QualifiedType(type), - Kind = ParameterKind.OperatorParameter - }); - } - } - } - - void CreateIndexer(Class @class, Method @operator) - { - var property = new Property - { - Name = "Item", - QualifiedType = @operator.ReturnType, - Access = @operator.Access, - Namespace = @class, - GetMethod = @operator - }; - - var returnType = @operator.Type; - if (returnType.IsAddress()) - { - var pointer = returnType as PointerType; - var qualifiedPointee = pointer.QualifiedPointee; - if (!qualifiedPointee.Qualifiers.IsConst) - property.SetMethod = @operator; +using System.Linq; +using CppSharp.AST; +using CppSharp.AST.Extensions; +using CppSharp.Generators; + +namespace CppSharp.Passes +{ + /// + /// Checks for missing operator overloads required by C#. + /// + class CheckOperatorsOverloadsPass : TranslationUnitPass + { + public CheckOperatorsOverloadsPass() + { + ClearVisitedDeclarations = false; + } + + public override bool VisitClassDecl(Class @class) + { + if (@class.CompleteDeclaration != null) + return VisitClassDecl(@class.CompleteDeclaration as Class); + + if (!VisitDeclarationContext(@class)) + return false; + + // Check for C++ operators that cannot be represented in C#. + CheckInvalidOperators(@class); + + if (Driver.Options.IsCSharpGenerator) + { + // The comparison operators, if overloaded, must be overloaded in pairs; + // that is, if == is overloaded, != must also be overloaded. The reverse + // is also true, and similar for < and >, and for <= and >=. + + HandleMissingOperatorOverloadPair(@class, CXXOperatorKind.EqualEqual, + CXXOperatorKind.ExclaimEqual); + + HandleMissingOperatorOverloadPair(@class, CXXOperatorKind.Less, + CXXOperatorKind.Greater); + + HandleMissingOperatorOverloadPair(@class, CXXOperatorKind.LessEqual, + CXXOperatorKind.GreaterEqual); + } + + return false; + } + + private void CheckInvalidOperators(Class @class) + { + foreach (var @operator in @class.Operators.Where(o => o.IsGenerated)) + { + if (!IsValidOperatorOverload(@operator)) + { + Driver.Diagnostics.Debug(DiagnosticId.InvalidOperatorOverload, + "Invalid operator overload {0}::{1}", + @class.OriginalName, @operator.OperatorKind); + @operator.ExplicitlyIgnore(); + continue; + } + if (@operator.SynthKind == FunctionSynthKind.NonMemberOperator) + continue; + + if (@operator.OperatorKind == CXXOperatorKind.Subscript) + { + CreateIndexer(@class, @operator); + } + else + { + // Handle missing operator parameters + if (@operator.IsStatic) + @operator.Parameters = @operator.Parameters.Skip(1).ToList(); + + var type = new PointerType() + { + QualifiedPointee = new QualifiedType(new TagType(@class)), + Modifier = PointerType.TypeModifier.LVReference + }; + + @operator.Parameters.Insert(0, new Parameter + { + Name = Generator.GeneratedIdentifier("op"), + QualifiedType = new QualifiedType(type), + Kind = ParameterKind.OperatorParameter + }); + } + } + } + + void CreateIndexer(Class @class, Method @operator) + { + var property = new Property + { + Name = "Item", + QualifiedType = @operator.ReturnType, + Access = @operator.Access, + Namespace = @class, + GetMethod = @operator + }; + + var returnType = @operator.Type; + if (returnType.IsAddress()) + { + var pointer = returnType as PointerType; + var qualifiedPointee = pointer.QualifiedPointee; + if (!qualifiedPointee.Qualifiers.IsConst) + property.SetMethod = @operator; } // If we've a setter use the pointee as the type of the property. @@ -111,68 +111,68 @@ namespace CppSharp.Passes if (pointerType != null && property.HasSetter) property.QualifiedType = new QualifiedType( pointerType.Pointee, property.QualifiedType.Qualifiers); - + if (Driver.Options.IsCLIGenerator) // C++/CLI uses "default" as the indexer property name. property.Name = "default"; property.Parameters.AddRange(@operator.Parameters); - - @class.Properties.Add(property); - - @operator.GenerationKind = GenerationKind.Internal; - } - - static void HandleMissingOperatorOverloadPair(Class @class, CXXOperatorKind op1, - CXXOperatorKind op2) - { - foreach (var op in @class.Operators.Where( - o => o.OperatorKind == op1 || o.OperatorKind == op2).ToList()) - { - int index; - var missingKind = CheckMissingOperatorOverloadPair(@class, out index, op1, op2, - op.Parameters.Last().Type); - - if (missingKind == CXXOperatorKind.None || !op.IsGenerated) - continue; - - var method = new Method() - { - Name = Operators.GetOperatorIdentifier(missingKind), - Namespace = @class, - IsSynthetized = true, - Kind = CXXMethodKind.Operator, - OperatorKind = missingKind, - ReturnType = op.ReturnType, - Parameters = op.Parameters - }; - - @class.Methods.Insert(index, method); - } - } - - static CXXOperatorKind CheckMissingOperatorOverloadPair(Class @class, - out int index, CXXOperatorKind op1, CXXOperatorKind op2, Type type) - { - var first = @class.Operators.FirstOrDefault(o => o.OperatorKind == op1 && - o.Parameters.Last().Type.Equals(type)); - var second = @class.Operators.FirstOrDefault(o => o.OperatorKind == op2 && - o.Parameters.Last().Type.Equals(type)); - - var hasFirst = first != null; - var hasSecond = second != null; - - if (hasFirst && (!hasSecond || !second.IsGenerated)) - { - index = @class.Methods.IndexOf(first); - return op2; - } - - if (hasSecond && (!hasFirst || !first.IsGenerated)) - { - index = @class.Methods.IndexOf(second); - return op1; - } + + @class.Properties.Add(property); + + @operator.GenerationKind = GenerationKind.Internal; + } + + static void HandleMissingOperatorOverloadPair(Class @class, CXXOperatorKind op1, + CXXOperatorKind op2) + { + foreach (var op in @class.Operators.Where( + o => o.OperatorKind == op1 || o.OperatorKind == op2).ToList()) + { + int index; + var missingKind = CheckMissingOperatorOverloadPair(@class, out index, op1, op2, + op.Parameters.Last().Type); + + if (missingKind == CXXOperatorKind.None || !op.IsGenerated) + continue; + + var method = new Method() + { + Name = Operators.GetOperatorIdentifier(missingKind), + Namespace = @class, + IsSynthetized = true, + Kind = CXXMethodKind.Operator, + OperatorKind = missingKind, + ReturnType = op.ReturnType, + Parameters = op.Parameters + }; + + @class.Methods.Insert(index, method); + } + } + + static CXXOperatorKind CheckMissingOperatorOverloadPair(Class @class, + out int index, CXXOperatorKind op1, CXXOperatorKind op2, Type type) + { + var first = @class.Operators.FirstOrDefault(o => o.OperatorKind == op1 && + o.Parameters.Last().Type.Equals(type)); + var second = @class.Operators.FirstOrDefault(o => o.OperatorKind == op2 && + o.Parameters.Last().Type.Equals(type)); + + var hasFirst = first != null; + var hasSecond = second != null; + + if (hasFirst && (!hasSecond || !second.IsGenerated)) + { + index = @class.Methods.IndexOf(first); + return op2; + } + + if (hasSecond && (!hasFirst || !first.IsGenerated)) + { + index = @class.Methods.IndexOf(second); + return op1; + } index = 0; return CXXOperatorKind.None; @@ -200,66 +200,66 @@ namespace CppSharp.Passes // The array indexing operator can be overloaded case CXXOperatorKind.Subscript: - // The conversion operators can be overloaded + // The conversion operators can be overloaded case CXXOperatorKind.Conversion: case CXXOperatorKind.ExplicitConversion: - return true; - - // The comparison operators can be overloaded if their return type is bool - case CXXOperatorKind.EqualEqual: - case CXXOperatorKind.ExclaimEqual: - case CXXOperatorKind.Less: - case CXXOperatorKind.Greater: - case CXXOperatorKind.LessEqual: - case CXXOperatorKind.GreaterEqual: - return @operator.ReturnType.Type.IsPrimitiveType(PrimitiveType.Bool); - - // Only prefix operators can be overloaded - case CXXOperatorKind.PlusPlus: - case CXXOperatorKind.MinusMinus: - return @operator.Parameters.Count == 0; - - // Bitwise shift operators can only be overloaded if the second parameter is int - case CXXOperatorKind.LessLess: - case CXXOperatorKind.GreaterGreater: - PrimitiveType primitiveType; - return @operator.Parameters.Last().Type.IsPrimitiveType(out primitiveType) && - primitiveType == PrimitiveType.Int32; - - // No parameters means the dereference operator - cannot be overloaded - case CXXOperatorKind.Star: - return @operator.Parameters.Count > 0; - - // Assignment operators cannot be overloaded - case CXXOperatorKind.PlusEqual: - case CXXOperatorKind.MinusEqual: - case CXXOperatorKind.StarEqual: - case CXXOperatorKind.SlashEqual: - case CXXOperatorKind.PercentEqual: - case CXXOperatorKind.AmpEqual: - case CXXOperatorKind.PipeEqual: - case CXXOperatorKind.CaretEqual: - case CXXOperatorKind.LessLessEqual: - case CXXOperatorKind.GreaterGreaterEqual: - - // The conditional logical operators cannot be overloaded - case CXXOperatorKind.AmpAmp: - case CXXOperatorKind.PipePipe: - - // These operators cannot be overloaded. - case CXXOperatorKind.Equal: - case CXXOperatorKind.Comma: - case CXXOperatorKind.ArrowStar: - case CXXOperatorKind.Arrow: - case CXXOperatorKind.Call: - case CXXOperatorKind.Conditional: - case CXXOperatorKind.New: - case CXXOperatorKind.Delete: - case CXXOperatorKind.Array_New: - case CXXOperatorKind.Array_Delete: - default: - return false; - } - } - } -} + return true; + + // The comparison operators can be overloaded if their return type is bool + case CXXOperatorKind.EqualEqual: + case CXXOperatorKind.ExclaimEqual: + case CXXOperatorKind.Less: + case CXXOperatorKind.Greater: + case CXXOperatorKind.LessEqual: + case CXXOperatorKind.GreaterEqual: + return @operator.ReturnType.Type.IsPrimitiveType(PrimitiveType.Bool); + + // Only prefix operators can be overloaded + case CXXOperatorKind.PlusPlus: + case CXXOperatorKind.MinusMinus: + return @operator.Parameters.Count == 0; + + // Bitwise shift operators can only be overloaded if the second parameter is int + case CXXOperatorKind.LessLess: + case CXXOperatorKind.GreaterGreater: + PrimitiveType primitiveType; + return @operator.Parameters.Last().Type.IsPrimitiveType(out primitiveType) && + primitiveType == PrimitiveType.Int32; + + // No parameters means the dereference operator - cannot be overloaded + case CXXOperatorKind.Star: + return @operator.Parameters.Count > 0; + + // Assignment operators cannot be overloaded + case CXXOperatorKind.PlusEqual: + case CXXOperatorKind.MinusEqual: + case CXXOperatorKind.StarEqual: + case CXXOperatorKind.SlashEqual: + case CXXOperatorKind.PercentEqual: + case CXXOperatorKind.AmpEqual: + case CXXOperatorKind.PipeEqual: + case CXXOperatorKind.CaretEqual: + case CXXOperatorKind.LessLessEqual: + case CXXOperatorKind.GreaterGreaterEqual: + + // The conditional logical operators cannot be overloaded + case CXXOperatorKind.AmpAmp: + case CXXOperatorKind.PipePipe: + + // These operators cannot be overloaded. + case CXXOperatorKind.Equal: + case CXXOperatorKind.Comma: + case CXXOperatorKind.ArrowStar: + case CXXOperatorKind.Arrow: + case CXXOperatorKind.Call: + case CXXOperatorKind.Conditional: + case CXXOperatorKind.New: + case CXXOperatorKind.Delete: + case CXXOperatorKind.Array_New: + case CXXOperatorKind.Array_Delete: + default: + return false; + } + } + } +} diff --git a/src/Generator/Passes/ConstructorToConversionOperatorPass.cs b/src/Generator/Passes/ConstructorToConversionOperatorPass.cs index 4fc15e5f..42682dab 100644 --- a/src/Generator/Passes/ConstructorToConversionOperatorPass.cs +++ b/src/Generator/Passes/ConstructorToConversionOperatorPass.cs @@ -1,58 +1,58 @@ -using System.Linq; -using CppSharp.AST; -using CppSharp.AST.Extensions; -using CppSharp.Generators; - -namespace CppSharp.Passes -{ - /// - /// This pass will create conversion operators out of single argument - /// constructors. - /// - public class ConstructorToConversionOperatorPass : TranslationUnitPass - { - public override bool VisitMethodDecl(Method method) - { - if (!method.IsConstructor) - return false; - if (method.IsCopyConstructor) - return false; - if (method.Parameters.Count != 1) - return false; - var parameter = method.Parameters[0]; - var parameterType = parameter.Type as PointerType; - if (parameterType == null) - return false; - if (!parameterType.IsReference) - return false; - var qualifiedPointee = parameterType.QualifiedPointee; - Class castFromClass; - if (!qualifiedPointee.Type.TryGetClass(out castFromClass)) - return false; - var castToClass = method.OriginalNamespace as Class; - if (castToClass == null) - return false; - if (castFromClass == castToClass) - return false; - - var operatorKind = method.IsExplicit - ? CXXOperatorKind.ExplicitConversion - : CXXOperatorKind.Conversion; - var castToType = new TagType(castToClass); - var qualifiedCastToType = new QualifiedType(castToType); - var conversionOperator = new Method() - { - Name = Operators.GetOperatorIdentifier(operatorKind), - Namespace = castFromClass, - Kind = CXXMethodKind.Conversion, - IsSynthetized = true, - ConversionType = qualifiedCastToType, - ReturnType = qualifiedCastToType - }; - conversionOperator.OperatorKind = operatorKind; - - castFromClass.Methods.Add(conversionOperator); - return true; - } - } -} +using System.Linq; +using CppSharp.AST; +using CppSharp.AST.Extensions; +using CppSharp.Generators; + +namespace CppSharp.Passes +{ + /// + /// This pass will create conversion operators out of single argument + /// constructors. + /// + public class ConstructorToConversionOperatorPass : TranslationUnitPass + { + public override bool VisitMethodDecl(Method method) + { + if (!method.IsConstructor) + return false; + if (method.IsCopyConstructor) + return false; + if (method.Parameters.Count != 1) + return false; + var parameter = method.Parameters[0]; + var parameterType = parameter.Type as PointerType; + if (parameterType == null) + return false; + if (!parameterType.IsReference) + return false; + var qualifiedPointee = parameterType.QualifiedPointee; + Class castFromClass; + if (!qualifiedPointee.Type.TryGetClass(out castFromClass)) + return false; + var castToClass = method.OriginalNamespace as Class; + if (castToClass == null) + return false; + if (castFromClass == castToClass) + return false; + + var operatorKind = method.IsExplicit + ? CXXOperatorKind.ExplicitConversion + : CXXOperatorKind.Conversion; + var castToType = new TagType(castToClass); + var qualifiedCastToType = new QualifiedType(castToType); + var conversionOperator = new Method() + { + Name = Operators.GetOperatorIdentifier(operatorKind), + Namespace = castFromClass, + Kind = CXXMethodKind.Conversion, + IsSynthetized = true, + ConversionType = qualifiedCastToType, + ReturnType = qualifiedCastToType + }; + conversionOperator.OperatorKind = operatorKind; + + castFromClass.Methods.Add(conversionOperator); + return true; + } + } +} diff --git a/src/Generator/Passes/GenerateAbstractImplementationsPass.cs b/src/Generator/Passes/GenerateAbstractImplementationsPass.cs index d267ac58..507108f3 100644 --- a/src/Generator/Passes/GenerateAbstractImplementationsPass.cs +++ b/src/Generator/Passes/GenerateAbstractImplementationsPass.cs @@ -25,12 +25,12 @@ namespace CppSharp.Passes public override bool VisitTranslationUnit(TranslationUnit unit) { - var result = base.VisitTranslationUnit(unit); - foreach (var internalImpl in internalImpls) - if (internalImpl.Namespace != null) - internalImpl.Namespace.Classes.Add(internalImpl); - else - unit.Classes.AddRange(internalImpls); + var result = base.VisitTranslationUnit(unit); + foreach (var internalImpl in internalImpls) + if (internalImpl.Namespace != null) + internalImpl.Namespace.Classes.Add(internalImpl); + else + unit.Classes.AddRange(internalImpls); internalImpls.Clear(); return result; diff --git a/src/Generator/Passes/GetterSetterToPropertyPass.cs b/src/Generator/Passes/GetterSetterToPropertyPass.cs index 3c0670a7..4699a30a 100644 --- a/src/Generator/Passes/GetterSetterToPropertyPass.cs +++ b/src/Generator/Passes/GetterSetterToPropertyPass.cs @@ -74,8 +74,8 @@ namespace CppSharp.Passes public override bool VisitMethodDecl(Method method) { if (!VisitDeclaration(method)) - return false; - + return false; + if (ASTUtils.CheckIgnoreMethod(method, Driver.Options)) return false; @@ -84,12 +84,12 @@ namespace CppSharp.Passes if (@class == null || @class.IsIncomplete) return false; - if (method.IsConstructor) - return false; - - if (method.IsSynthetized) - return false; - + if (method.IsConstructor) + return false; + + if (method.IsSynthetized) + return false; + if (IsGetter(method)) { var name = method.Name.Substring("get".Length); @@ -114,7 +114,7 @@ namespace CppSharp.Passes prop.SetMethod = method; prop.Access = method.Access; - // Ignore the original method now that we know it is a setter. + // Ignore the original method now that we know it is a setter. method.GenerationKind = GenerationKind.Internal; Driver.Diagnostics.Debug("Setter created: {0}::{1}", @class.Name, name); diff --git a/src/Generator/Passes/MultipleInheritancePass.cs b/src/Generator/Passes/MultipleInheritancePass.cs index 716aa8fb..edfd4469 100644 --- a/src/Generator/Passes/MultipleInheritancePass.cs +++ b/src/Generator/Passes/MultipleInheritancePass.cs @@ -67,7 +67,7 @@ namespace CppSharp.Passes select new BaseClassSpecifier { Type = new TagType(i) }); @interface.Methods.AddRange( - from m in @base.Methods + from m in @base.Methods where !m.IsConstructor && !m.IsDestructor && !m.IsStatic && m.IsDeclared && !m.IsOperator select new Method(m) { Namespace = @interface }); @@ -76,8 +76,8 @@ namespace CppSharp.Passes where property.IsDeclared select new Property(property) { Namespace = @interface }); - @interface.Fields.AddRange(@base.Fields); - + @interface.Fields.AddRange(@base.Fields); + if (@interface.Bases.Count == 0) { Property instance = new Property(); @@ -112,7 +112,7 @@ namespace CppSharp.Passes IsVirtual = false, IsOverride = false }; - var rootBaseMethod = @class.GetRootBaseMethod(method, true); + var rootBaseMethod = @class.GetRootBaseMethod(method, true); if (rootBaseMethod != null && rootBaseMethod.IsDeclared) impl.ExplicitInterfaceImpl = @interface; @class.Methods.Add(impl); @@ -126,7 +126,7 @@ namespace CppSharp.Passes foreach (var property in @interface.Properties.Where(p => p.Name != Helpers.InstanceIdentifier)) { var impl = new Property(property) { Namespace = @class }; - var rootBaseProperty = @class.GetRootBaseProperty(property, true); + var rootBaseProperty = @class.GetRootBaseProperty(property, true); if (rootBaseProperty != null && rootBaseProperty.IsDeclared) impl.ExplicitInterfaceImpl = @interface; @class.Properties.Add(impl); diff --git a/src/Generator/Types/CppTypePrinter.cs b/src/Generator/Types/CppTypePrinter.cs index 0f0cdac7..13487332 100644 --- a/src/Generator/Types/CppTypePrinter.cs +++ b/src/Generator/Types/CppTypePrinter.cs @@ -1,330 +1,330 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using CppSharp.AST; -using Type = CppSharp.AST.Type; - -namespace CppSharp.Types -{ - public enum CppTypePrintScopeKind - { - Local, - Qualified, - GlobalQualified - } - - public class CppTypePrinter : ITypePrinter, IDeclVisitor - { - public CppTypePrintScopeKind PrintScopeKind; - public bool PrintLogicalNames; - public bool PrintTypeQualifiers; - - public CppTypePrinter(ITypeMapDatabase database, bool printTypeQualifiers = true) - { - PrintScopeKind = CppTypePrintScopeKind.GlobalQualified; - PrintTypeQualifiers = printTypeQualifiers; - } - - public string VisitTagType(TagType tag, TypeQualifiers quals) - { - return tag.Declaration.Visit(this); - } - - public string VisitArrayType(ArrayType array, TypeQualifiers quals) - { - var typeName = array.Type.Visit(this); - - switch (array.SizeType) - { - case ArrayType.ArraySize.Constant: - return string.Format("{0}[{1}]", typeName, array.Size); - case ArrayType.ArraySize.Variable: - case ArrayType.ArraySize.Dependent: - case ArrayType.ArraySize.Incomplete: - return string.Format("{0}[]", typeName); - } - - throw new NotSupportedException(); - } - - static string ConvertModifierToString(PointerType.TypeModifier modifier) - { - switch (modifier) - { - case PointerType.TypeModifier.Value: return string.Empty; - case PointerType.TypeModifier.Pointer: return "*"; - case PointerType.TypeModifier.LVReference: return "&"; - case PointerType.TypeModifier.RVReference: return "&&"; - } - - return string.Empty; - } - - public string VisitPointerType(PointerType pointer, TypeQualifiers quals) - { - var pointee = pointer.Pointee; - - var function = pointee as FunctionType; - if (function != null) - { - var arguments = function.Parameters; - var returnType = function.ReturnType; - var args = string.Empty; - - if (arguments.Count > 0) - args = VisitParameters(function.Parameters, hasNames: false); - - return string.Format("{0} (*)({1})", returnType.Visit(this), args); - } - - var pointeeType = pointer.Pointee.Visit(this, quals); - var mod = ConvertModifierToString(pointer.Modifier); - - var s = PrintTypeQualifiers && quals.IsConst ? "const " : string.Empty; - s += string.Format("{0}{1}", pointeeType, mod); - - return s; - } - - public string VisitMemberPointerType(MemberPointerType member, TypeQualifiers quals) - { - return string.Empty; - } - - public string VisitBuiltinType(BuiltinType builtin, TypeQualifiers quals) - { - return VisitPrimitiveType(builtin.Type); - } - - public string VisitPrimitiveType(PrimitiveType primitive) - { - switch (primitive) - { - case PrimitiveType.Bool: return "bool"; - case PrimitiveType.Void: return "void"; - case PrimitiveType.Char16: - case PrimitiveType.WideChar: return "char"; - case PrimitiveType.Int8: return "char"; - case PrimitiveType.UInt8: return "unsigned char"; - case PrimitiveType.Int16: return "short"; - case PrimitiveType.UInt16: return "unsigned short"; - case PrimitiveType.Int32: return "int"; - case PrimitiveType.UInt32: return "unsigned int"; - case PrimitiveType.Int64: return "long long"; - case PrimitiveType.UInt64: return "unsigned long long"; - case PrimitiveType.Float: return "float"; - case PrimitiveType.Double: return "double"; - case PrimitiveType.IntPtr: return "void*"; - case PrimitiveType.UIntPtr: return "uintptr_t"; - case PrimitiveType.Null: return "std::nullptr_t"; - } - - throw new NotSupportedException(); - } - - public string VisitTypedefType(TypedefType typedef, TypeQualifiers quals) - { - return GetDeclName(typedef.Declaration); - } - - public string VisitAttributedType(AttributedType attributed, TypeQualifiers quals) - { - return attributed.Modified.Visit(this); - } - - public string VisitDecayedType(DecayedType decayed, TypeQualifiers quals) - { - return decayed.Decayed.Visit(this); - } - - public string VisitTemplateSpecializationType(TemplateSpecializationType template, TypeQualifiers quals) - { - return string.Format("{0}<{1}>", template.Template.TemplatedDecl.Visit(this), - string.Join(", ", - template.Arguments.Where( - a => a.Type.Type != null && - !(a.Type.Type is DependentNameType)).Select(a => a.Type.Visit(this)))); - } - - public string VisitTemplateParameterType(TemplateParameterType param, TypeQualifiers quals) - { - if (param.Parameter.Name == null) - return string.Empty; - - return param.Parameter.Name; - } - - public string VisitTemplateParameterSubstitutionType( - TemplateParameterSubstitutionType param, TypeQualifiers quals) - { - return param.Replacement.Visit(this); - } - - public string VisitInjectedClassNameType(InjectedClassNameType injected, TypeQualifiers quals) - { - return injected.Class.Visit(this); - } - - public string VisitDependentNameType(DependentNameType dependent, TypeQualifiers quals) - { - throw new System.NotImplementedException(); - } - - public string VisitPackExpansionType(PackExpansionType packExpansionType, TypeQualifiers quals) - { - return string.Empty; - } - - public string VisitCILType(CILType type, TypeQualifiers quals) - { - return string.Empty; - } - - public string VisitPrimitiveType(PrimitiveType type, TypeQualifiers quals) - { - throw new System.NotImplementedException(); - } - - public string VisitDeclaration(Declaration decl, TypeQualifiers quals) - { - throw new System.NotImplementedException(); - } - - public string VisitFunctionType(FunctionType function, TypeQualifiers quals) - { - var arguments = function.Parameters; - var returnType = function.ReturnType; - var args = string.Empty; - - if (arguments.Count > 0) - args = VisitParameters(function.Parameters, hasNames: false); - - return string.Format("{0} ({1})", returnType.Visit(this), args); - } - - public string VisitParameters(IEnumerable @params, - bool hasNames) - { - var args = new List(); - - foreach (var param in @params) - args.Add(VisitParameter(param, hasNames)); - - return string.Join(", ", args); - } - - public string VisitParameter(Parameter arg, bool hasName = true) - { - var type = arg.Type.Visit(this, arg.QualifiedType.Qualifiers); - var name = arg.Name; - - if (hasName && !string.IsNullOrEmpty(name)) - return string.Format("{0} {1}", type, name); - - return type; - } - - public string VisitDelegate(FunctionType function) - { - throw new System.NotImplementedException(); - } - - public string GetDeclName(Declaration declaration) - { - switch (PrintScopeKind) - { - case CppTypePrintScopeKind.Local: - return PrintLogicalNames ? declaration.LogicalOriginalName - : declaration.OriginalName; - case CppTypePrintScopeKind.Qualified: - return PrintLogicalNames ? declaration.QualifiedLogicalOriginalName - : declaration.QualifiedOriginalName; - case CppTypePrintScopeKind.GlobalQualified: - return "::" + (PrintLogicalNames ? declaration.QualifiedLogicalOriginalName - : declaration.QualifiedOriginalName); - } - - throw new NotSupportedException(); - } - - public string VisitDeclaration(Declaration decl) - { - return GetDeclName(decl); - } - - public string VisitClassDecl(Class @class) - { - return VisitDeclaration(@class); - } - - public string VisitFieldDecl(Field field) - { - return VisitDeclaration(field); - } - - public string VisitFunctionDecl(Function function) - { - return VisitDeclaration(function); - } - - public string VisitMethodDecl(Method method) - { - return VisitDeclaration(method); - } - - public string VisitParameterDecl(Parameter parameter) - { - return VisitParameter(parameter, hasName: false); - } - - public string VisitTypedefDecl(TypedefDecl typedef) - { - return VisitDeclaration(typedef); - } - - public string VisitEnumDecl(Enumeration @enum) - { - return VisitDeclaration(@enum); - } - - public string VisitVariableDecl(Variable variable) - { - return VisitDeclaration(variable); - } - - public string VisitClassTemplateDecl(ClassTemplate template) - { - return VisitDeclaration(template); - } - - public string VisitFunctionTemplateDecl(FunctionTemplate template) - { - return VisitDeclaration(template); - } - - public string VisitMacroDefinition(MacroDefinition macro) - { - throw new NotImplementedException(); - } - - public string VisitNamespace(Namespace @namespace) - { - return VisitDeclaration(@namespace); - } - - public string VisitEvent(Event @event) - { - return string.Empty; - } - - public string VisitProperty(Property property) - { - return VisitDeclaration(property); - } - - public string ToString(Type type) - { - return type.Visit(this); - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using CppSharp.AST; +using Type = CppSharp.AST.Type; + +namespace CppSharp.Types +{ + public enum CppTypePrintScopeKind + { + Local, + Qualified, + GlobalQualified + } + + public class CppTypePrinter : ITypePrinter, IDeclVisitor + { + public CppTypePrintScopeKind PrintScopeKind; + public bool PrintLogicalNames; + public bool PrintTypeQualifiers; + + public CppTypePrinter(ITypeMapDatabase database, bool printTypeQualifiers = true) + { + PrintScopeKind = CppTypePrintScopeKind.GlobalQualified; + PrintTypeQualifiers = printTypeQualifiers; + } + + public string VisitTagType(TagType tag, TypeQualifiers quals) + { + return tag.Declaration.Visit(this); + } + + public string VisitArrayType(ArrayType array, TypeQualifiers quals) + { + var typeName = array.Type.Visit(this); + + switch (array.SizeType) + { + case ArrayType.ArraySize.Constant: + return string.Format("{0}[{1}]", typeName, array.Size); + case ArrayType.ArraySize.Variable: + case ArrayType.ArraySize.Dependent: + case ArrayType.ArraySize.Incomplete: + return string.Format("{0}[]", typeName); + } + + throw new NotSupportedException(); + } + + static string ConvertModifierToString(PointerType.TypeModifier modifier) + { + switch (modifier) + { + case PointerType.TypeModifier.Value: return string.Empty; + case PointerType.TypeModifier.Pointer: return "*"; + case PointerType.TypeModifier.LVReference: return "&"; + case PointerType.TypeModifier.RVReference: return "&&"; + } + + return string.Empty; + } + + public string VisitPointerType(PointerType pointer, TypeQualifiers quals) + { + var pointee = pointer.Pointee; + + var function = pointee as FunctionType; + if (function != null) + { + var arguments = function.Parameters; + var returnType = function.ReturnType; + var args = string.Empty; + + if (arguments.Count > 0) + args = VisitParameters(function.Parameters, hasNames: false); + + return string.Format("{0} (*)({1})", returnType.Visit(this), args); + } + + var pointeeType = pointer.Pointee.Visit(this, quals); + var mod = ConvertModifierToString(pointer.Modifier); + + var s = PrintTypeQualifiers && quals.IsConst ? "const " : string.Empty; + s += string.Format("{0}{1}", pointeeType, mod); + + return s; + } + + public string VisitMemberPointerType(MemberPointerType member, TypeQualifiers quals) + { + return string.Empty; + } + + public string VisitBuiltinType(BuiltinType builtin, TypeQualifiers quals) + { + return VisitPrimitiveType(builtin.Type); + } + + public string VisitPrimitiveType(PrimitiveType primitive) + { + switch (primitive) + { + case PrimitiveType.Bool: return "bool"; + case PrimitiveType.Void: return "void"; + case PrimitiveType.Char16: + case PrimitiveType.WideChar: return "char"; + case PrimitiveType.Int8: return "char"; + case PrimitiveType.UInt8: return "unsigned char"; + case PrimitiveType.Int16: return "short"; + case PrimitiveType.UInt16: return "unsigned short"; + case PrimitiveType.Int32: return "int"; + case PrimitiveType.UInt32: return "unsigned int"; + case PrimitiveType.Int64: return "long long"; + case PrimitiveType.UInt64: return "unsigned long long"; + case PrimitiveType.Float: return "float"; + case PrimitiveType.Double: return "double"; + case PrimitiveType.IntPtr: return "void*"; + case PrimitiveType.UIntPtr: return "uintptr_t"; + case PrimitiveType.Null: return "std::nullptr_t"; + } + + throw new NotSupportedException(); + } + + public string VisitTypedefType(TypedefType typedef, TypeQualifiers quals) + { + return GetDeclName(typedef.Declaration); + } + + public string VisitAttributedType(AttributedType attributed, TypeQualifiers quals) + { + return attributed.Modified.Visit(this); + } + + public string VisitDecayedType(DecayedType decayed, TypeQualifiers quals) + { + return decayed.Decayed.Visit(this); + } + + public string VisitTemplateSpecializationType(TemplateSpecializationType template, TypeQualifiers quals) + { + return string.Format("{0}<{1}>", template.Template.TemplatedDecl.Visit(this), + string.Join(", ", + template.Arguments.Where( + a => a.Type.Type != null && + !(a.Type.Type is DependentNameType)).Select(a => a.Type.Visit(this)))); + } + + public string VisitTemplateParameterType(TemplateParameterType param, TypeQualifiers quals) + { + if (param.Parameter.Name == null) + return string.Empty; + + return param.Parameter.Name; + } + + public string VisitTemplateParameterSubstitutionType( + TemplateParameterSubstitutionType param, TypeQualifiers quals) + { + return param.Replacement.Visit(this); + } + + public string VisitInjectedClassNameType(InjectedClassNameType injected, TypeQualifiers quals) + { + return injected.Class.Visit(this); + } + + public string VisitDependentNameType(DependentNameType dependent, TypeQualifiers quals) + { + throw new System.NotImplementedException(); + } + + public string VisitPackExpansionType(PackExpansionType packExpansionType, TypeQualifiers quals) + { + return string.Empty; + } + + public string VisitCILType(CILType type, TypeQualifiers quals) + { + return string.Empty; + } + + public string VisitPrimitiveType(PrimitiveType type, TypeQualifiers quals) + { + throw new System.NotImplementedException(); + } + + public string VisitDeclaration(Declaration decl, TypeQualifiers quals) + { + throw new System.NotImplementedException(); + } + + public string VisitFunctionType(FunctionType function, TypeQualifiers quals) + { + var arguments = function.Parameters; + var returnType = function.ReturnType; + var args = string.Empty; + + if (arguments.Count > 0) + args = VisitParameters(function.Parameters, hasNames: false); + + return string.Format("{0} ({1})", returnType.Visit(this), args); + } + + public string VisitParameters(IEnumerable @params, + bool hasNames) + { + var args = new List(); + + foreach (var param in @params) + args.Add(VisitParameter(param, hasNames)); + + return string.Join(", ", args); + } + + public string VisitParameter(Parameter arg, bool hasName = true) + { + var type = arg.Type.Visit(this, arg.QualifiedType.Qualifiers); + var name = arg.Name; + + if (hasName && !string.IsNullOrEmpty(name)) + return string.Format("{0} {1}", type, name); + + return type; + } + + public string VisitDelegate(FunctionType function) + { + throw new System.NotImplementedException(); + } + + public string GetDeclName(Declaration declaration) + { + switch (PrintScopeKind) + { + case CppTypePrintScopeKind.Local: + return PrintLogicalNames ? declaration.LogicalOriginalName + : declaration.OriginalName; + case CppTypePrintScopeKind.Qualified: + return PrintLogicalNames ? declaration.QualifiedLogicalOriginalName + : declaration.QualifiedOriginalName; + case CppTypePrintScopeKind.GlobalQualified: + return "::" + (PrintLogicalNames ? declaration.QualifiedLogicalOriginalName + : declaration.QualifiedOriginalName); + } + + throw new NotSupportedException(); + } + + public string VisitDeclaration(Declaration decl) + { + return GetDeclName(decl); + } + + public string VisitClassDecl(Class @class) + { + return VisitDeclaration(@class); + } + + public string VisitFieldDecl(Field field) + { + return VisitDeclaration(field); + } + + public string VisitFunctionDecl(Function function) + { + return VisitDeclaration(function); + } + + public string VisitMethodDecl(Method method) + { + return VisitDeclaration(method); + } + + public string VisitParameterDecl(Parameter parameter) + { + return VisitParameter(parameter, hasName: false); + } + + public string VisitTypedefDecl(TypedefDecl typedef) + { + return VisitDeclaration(typedef); + } + + public string VisitEnumDecl(Enumeration @enum) + { + return VisitDeclaration(@enum); + } + + public string VisitVariableDecl(Variable variable) + { + return VisitDeclaration(variable); + } + + public string VisitClassTemplateDecl(ClassTemplate template) + { + return VisitDeclaration(template); + } + + public string VisitFunctionTemplateDecl(FunctionTemplate template) + { + return VisitDeclaration(template); + } + + public string VisitMacroDefinition(MacroDefinition macro) + { + throw new NotImplementedException(); + } + + public string VisitNamespace(Namespace @namespace) + { + return VisitDeclaration(@namespace); + } + + public string VisitEvent(Event @event) + { + return string.Empty; + } + + public string VisitProperty(Property property) + { + return VisitDeclaration(property); + } + + public string ToString(Type type) + { + return type.Visit(this); + } + } +} diff --git a/src/Generator/Types/Types.cs b/src/Generator/Types/Types.cs index 9adabf9f..ed622baa 100644 --- a/src/Generator/Types/Types.cs +++ b/src/Generator/Types/Types.cs @@ -112,19 +112,19 @@ namespace CppSharp } return base.VisitMemberPointerType(member, quals); - } - - public override bool VisitParameterDecl(Parameter parameter) - { - if (parameter.Type.IsPrimitiveType(PrimitiveType.Null)) - { - Ignore(); - return false; - } - - return base.VisitParameterDecl(parameter); - } - + } + + public override bool VisitParameterDecl(Parameter parameter) + { + if (parameter.Type.IsPrimitiveType(PrimitiveType.Null)) + { + Ignore(); + return false; + } + + return base.VisitParameterDecl(parameter); + } + public override bool VisitTemplateSpecializationType( TemplateSpecializationType template, TypeQualifiers quals) { @@ -138,17 +138,17 @@ namespace CppSharp Ignore(); return base.VisitTemplateSpecializationType(template, quals); - } - - public override bool VisitFunctionType(FunctionType function, TypeQualifiers quals) - { - // We don't know how to marshal non-static member functions - if (function.CallingConvention == CallingConvention.ThisCall) - { - Ignore(); - return false; - } - return base.VisitFunctionType(function, quals); + } + + public override bool VisitFunctionType(FunctionType function, TypeQualifiers quals) + { + // We don't know how to marshal non-static member functions + if (function.CallingConvention == CallingConvention.ThisCall) + { + Ignore(); + return false; + } + return base.VisitFunctionType(function, quals); } } diff --git a/src/Generator/Utils/Utils.cs b/src/Generator/Utils/Utils.cs index 0d3202ae..32dae9d9 100644 --- a/src/Generator/Utils/Utils.cs +++ b/src/Generator/Utils/Utils.cs @@ -235,19 +235,19 @@ namespace CppSharp return assembly.GetTypes().Where(baseType.IsAssignableFrom); } } - - public static class PathHelpers - { - public static string GetRelativePath(string fromPath, string toPath) - { - var path1 = fromPath.Trim('\\', '/'); - var path2 = toPath.Trim('\\', '/'); - - var uri1 = new System.Uri("c:\\" + path1 + "\\"); - var uri2 = new System.Uri("c:\\" + path2 + "\\"); - - return uri1.MakeRelativeUri(uri2).ToString(); - } - - } + + public static class PathHelpers + { + public static string GetRelativePath(string fromPath, string toPath) + { + var path1 = fromPath.Trim('\\', '/'); + var path2 = toPath.Trim('\\', '/'); + + var uri1 = new System.Uri("c:\\" + path1 + "\\"); + var uri2 = new System.Uri("c:\\" + path2 + "\\"); + + return uri1.MakeRelativeUri(uri2).ToString(); + } + + } } diff --git a/tests/Basic/Basic.Tests.cs b/tests/Basic/Basic.Tests.cs index de11f9a9..dcf25e84 100644 --- a/tests/Basic/Basic.Tests.cs +++ b/tests/Basic/Basic.Tests.cs @@ -22,16 +22,16 @@ public class BasicTests : GeneratorTestFixture Assert.That(hello.AddFoo(foo), Is.EqualTo(11)); Assert.That(hello.AddFooPtr(foo), Is.EqualTo(11)); Assert.That(hello.AddFooPtr(foo), Is.EqualTo(11)); - Assert.That(hello.AddFooRef(foo), Is.EqualTo(11)); - unsafe - { - var pointer = foo.SomePointer; - var pointerPointer = foo.SomePointerPointer; - for (int i = 0; i < 4; i++) - { - Assert.AreEqual(i, pointer[i]); - Assert.AreEqual(i, (*pointerPointer)[i]); - } + Assert.That(hello.AddFooRef(foo), Is.EqualTo(11)); + unsafe + { + var pointer = foo.SomePointer; + var pointerPointer = foo.SomePointerPointer; + for (int i = 0; i < 4; i++) + { + Assert.AreEqual(i, pointer[i]); + Assert.AreEqual(i, (*pointerPointer)[i]); + } } var bar = new Bar { A = 4, B = 7 }; @@ -178,9 +178,9 @@ public class BasicTests : GeneratorTestFixture Assert.AreEqual(8, doubleSum); var stdcall = delegates.StdCall(i => i); - Assert.AreEqual(1, stdcall); - - var cdecl = delegates.CDecl(i => i); + Assert.AreEqual(1, stdcall); + + var cdecl = delegates.CDecl(i => i); Assert.AreEqual(1, cdecl); } @@ -204,7 +204,7 @@ public class BasicTests : GeneratorTestFixture [Test] public void TestStaticClasses() { - Assert.That(TestStaticClass.Add(1, 2), Is.EqualTo(3)); + Assert.That(TestStaticClass.Add(1, 2), Is.EqualTo(3)); Assert.That(TestStaticClassDerived.Foo(), Is.EqualTo(0)); } @@ -239,22 +239,22 @@ public class BasicTests : GeneratorTestFixture [Test] public unsafe void TestIndexers() { - var indexedProperties = new TestIndexedProperties(); - Assert.AreEqual(1, indexedProperties[0]); - Assert.AreEqual(1, indexedProperties["foo"]); - indexedProperties[0] = 2; + var indexedProperties = new TestIndexedProperties(); + Assert.AreEqual(1, indexedProperties[0]); + Assert.AreEqual(1, indexedProperties["foo"]); + indexedProperties[0] = 2; Assert.AreEqual(2, indexedProperties[0]); - indexedProperties[0f] = 3; - Assert.AreEqual(3, indexedProperties[0f]); - var properties = indexedProperties[(byte)0]; - Assert.AreEqual(0, properties.Field); - var newProperties = new TestProperties(); + indexedProperties[0f] = 3; + Assert.AreEqual(3, indexedProperties[0f]); + var properties = indexedProperties[(byte)0]; + Assert.AreEqual(0, properties.Field); + var newProperties = new TestProperties(); newProperties.Field = 4; - indexedProperties[(byte)0] = newProperties; - Assert.AreEqual(4, indexedProperties[(byte)0].Field); - newProperties = indexedProperties[(short)0]; - Assert.AreEqual(4, newProperties.Field); - newProperties.Field = 5; + indexedProperties[(byte)0] = newProperties; + Assert.AreEqual(4, indexedProperties[(byte)0].Field); + newProperties = indexedProperties[(short)0]; + Assert.AreEqual(4, newProperties.Field); + newProperties.Field = 5; Assert.AreEqual(5, indexedProperties[(byte)0].Field); } @@ -304,30 +304,30 @@ public class BasicTests : GeneratorTestFixture var @class = new TestGetterSetterToProperties(); Assert.That(@class.Width, Is.EqualTo(640)); Assert.That(@class.Height, Is.EqualTo(480)); - } - - [Test] - public unsafe void TestSingleArgumentCtorToCastOperator() - { - var classA = new ClassA(10); - ClassB classB = classA; - Assert.AreEqual(classA.Value, classB.Value); - ClassC classC = (ClassC)classB; - Assert.AreEqual(classB.Value, classC.Value); - } - - [Test] - public unsafe void TestDecltype() - { - var ret = basic.TestDecltype(); - Assert.AreEqual(0, ret); - } - - [Test] - public unsafe void TestNullPtrType() - { - var ret = basic.TestNullPtrTypeRet(); - Assert.AreEqual(IntPtr.Zero, new IntPtr(ret)); + } + + [Test] + public unsafe void TestSingleArgumentCtorToCastOperator() + { + var classA = new ClassA(10); + ClassB classB = classA; + Assert.AreEqual(classA.Value, classB.Value); + ClassC classC = (ClassC)classB; + Assert.AreEqual(classB.Value, classC.Value); + } + + [Test] + public unsafe void TestDecltype() + { + var ret = basic.TestDecltype(); + Assert.AreEqual(0, ret); + } + + [Test] + public unsafe void TestNullPtrType() + { + var ret = basic.TestNullPtrTypeRet(); + Assert.AreEqual(IntPtr.Zero, new IntPtr(ret)); } } \ No newline at end of file diff --git a/tests/Basic/Basic.cs b/tests/Basic/Basic.cs index 26813a52..fbf14581 100644 --- a/tests/Basic/Basic.cs +++ b/tests/Basic/Basic.cs @@ -20,7 +20,7 @@ namespace CppSharp.Tests driver.Options.GenerateVirtualTables = true; driver.Options.GenerateCopyConstructors = true; driver.Options.MarshalCharAsManagedChar = true; - driver.Options.GenerateProperties = true; + driver.Options.GenerateProperties = true; driver.Options.GenerateConversionOperators = true; } diff --git a/tests/Basic/Basic.h b/tests/Basic/Basic.h index 7e19d8d8..4ff3eb11 100644 --- a/tests/Basic/Basic.h +++ b/tests/Basic/Basic.h @@ -11,12 +11,12 @@ public: const char* GetANSI(); // TODO: VC++ does not support char16 // char16 chr16; - - // Not properly handled yet - ignore - float nested_array[2][2]; - // Primitive pointer types - const int* SomePointer; - const int** SomePointerPointer; + + // Not properly handled yet - ignore + float nested_array[2][2]; + // Primitive pointer types + const int* SomePointer; + const int** SomePointerPointer; }; struct DLL_API Bar @@ -234,12 +234,12 @@ DLL_API TestMoveOperatorToClass operator+(const TestMoveOperatorToClass& b1, return b; } -// Not a valid operator overload for Foo2 in managed code - comparison operators need to return bool. -DLL_API int operator==(const Foo2& a, const Foo2& b) -{ - return 0; -} - +// Not a valid operator overload for Foo2 in managed code - comparison operators need to return bool. +DLL_API int operator==(const Foo2& a, const Foo2& b) +{ + return 0; +} + // Tests delegates typedef int (*DelegateInGlobalNamespace)(int); typedef int (STDCALL *DelegateStdCall)(int); @@ -325,14 +325,14 @@ public: float B; }; -TestCopyConstructorRef::TestCopyConstructorRef() -{ -} - -TestCopyConstructorRef::TestCopyConstructorRef(const TestCopyConstructorRef& other) -{ - A = other.A; - B = other.B; +TestCopyConstructorRef::TestCopyConstructorRef() +{ +} + +TestCopyConstructorRef::TestCopyConstructorRef(const TestCopyConstructorRef& other) +{ + A = other.A; + B = other.B; } template @@ -340,28 +340,28 @@ struct EmptyNamedNestedEnum { enum { Value = 10 }; }; - -typedef unsigned long foo_t; -typedef struct DLL_API SomeStruct -{ - SomeStruct(); - foo_t p; -} SomeStruct; - -SomeStruct::SomeStruct() : p(1) {} - -class DLL_API SomeClassExtendingTheStruct : public SomeStruct -{ -}; - -namespace SomeNamespace -{ - class DLL_API AbstractClass - { - public: - virtual void AbstractMethod() = 0; - }; -} + +typedef unsigned long foo_t; +typedef struct DLL_API SomeStruct +{ + SomeStruct(); + foo_t p; +} SomeStruct; + +SomeStruct::SomeStruct() : p(1) {} + +class DLL_API SomeClassExtendingTheStruct : public SomeStruct +{ +}; + +namespace SomeNamespace +{ + class DLL_API AbstractClass + { + public: + virtual void AbstractMethod() = 0; + }; +} // Test operator overloads class DLL_API ClassWithOverloadedOperators @@ -380,72 +380,72 @@ ClassWithOverloadedOperators::operator int() { return 2; } ClassWithOverloadedOperators::operator short() { return 3; } // Tests global static function generation -DLL_API int Function() -{ - return 5; -} - +DLL_API int Function() +{ + return 5; +} + // Tests properties -struct DLL_API TestProperties -{ - TestProperties(); - int Field; - - int getFieldValue(); - void setFieldValue(int Value); -}; - -TestProperties::TestProperties() : Field(0) {} -int TestProperties::getFieldValue() { return Field; } -void TestProperties::setFieldValue(int Value) { Field = Value; } - -class DLL_API TestIndexedProperties -{ - foo_t p; - TestProperties f; -public: - TestIndexedProperties(); - // Should lead to a read/write indexer with return type uint - foo_t& operator[](int i); - // Should lead to a read/write indexer with return type uint - foo_t* operator[](float f); - // Should lead to a read-only indexer with return type uint - foo_t operator[](const char* name); - // Should lead to a read-only indexer with return type uint* - const foo_t& operator[](double d); - // Should lead to a read/write indexer with return type TestProperties - TestProperties* operator[](unsigned char b); - // Should lead to a read-only indexer with return type TestProperties - const TestProperties& operator[](short b); -}; - -TestIndexedProperties::TestIndexedProperties() : p(1), f() {} -foo_t& TestIndexedProperties::operator[](int i) { return p; } -foo_t TestIndexedProperties::operator[](const char* name) { return p; } -foo_t* TestIndexedProperties::operator[](float f) { return &p; } -const foo_t& TestIndexedProperties::operator[](double f) { return p; } -TestProperties* TestIndexedProperties::operator[](unsigned char b) { return &f; } -const TestProperties& TestIndexedProperties::operator[](short b) { return f; } - -enum struct MyEnum { A, B, C }; - -class DLL_API TestArraysPointers -{ -public: - TestArraysPointers(MyEnum *values, int count); - - MyEnum Value; -}; - -TestArraysPointers::TestArraysPointers(MyEnum *values, int count) -{ - if (values && count) Value = values[0]; -} - -struct DLL_API TestGetterSetterToProperties -{ - int getWidth(); - int getHeight(); +struct DLL_API TestProperties +{ + TestProperties(); + int Field; + + int getFieldValue(); + void setFieldValue(int Value); +}; + +TestProperties::TestProperties() : Field(0) {} +int TestProperties::getFieldValue() { return Field; } +void TestProperties::setFieldValue(int Value) { Field = Value; } + +class DLL_API TestIndexedProperties +{ + foo_t p; + TestProperties f; +public: + TestIndexedProperties(); + // Should lead to a read/write indexer with return type uint + foo_t& operator[](int i); + // Should lead to a read/write indexer with return type uint + foo_t* operator[](float f); + // Should lead to a read-only indexer with return type uint + foo_t operator[](const char* name); + // Should lead to a read-only indexer with return type uint* + const foo_t& operator[](double d); + // Should lead to a read/write indexer with return type TestProperties + TestProperties* operator[](unsigned char b); + // Should lead to a read-only indexer with return type TestProperties + const TestProperties& operator[](short b); +}; + +TestIndexedProperties::TestIndexedProperties() : p(1), f() {} +foo_t& TestIndexedProperties::operator[](int i) { return p; } +foo_t TestIndexedProperties::operator[](const char* name) { return p; } +foo_t* TestIndexedProperties::operator[](float f) { return &p; } +const foo_t& TestIndexedProperties::operator[](double f) { return p; } +TestProperties* TestIndexedProperties::operator[](unsigned char b) { return &f; } +const TestProperties& TestIndexedProperties::operator[](short b) { return f; } + +enum struct MyEnum { A, B, C }; + +class DLL_API TestArraysPointers +{ +public: + TestArraysPointers(MyEnum *values, int count); + + MyEnum Value; +}; + +TestArraysPointers::TestArraysPointers(MyEnum *values, int count) +{ + if (values && count) Value = values[0]; +} + +struct DLL_API TestGetterSetterToProperties +{ + int getWidth(); + int getHeight(); }; int TestGetterSetterToProperties::getWidth() { return 640; } diff --git a/tests/CSharpTemp/CSharpTemp.cs b/tests/CSharpTemp/CSharpTemp.cs index fa47c2be..e7f276c6 100644 --- a/tests/CSharpTemp/CSharpTemp.cs +++ b/tests/CSharpTemp/CSharpTemp.cs @@ -62,9 +62,9 @@ namespace CppSharp.Tests driver.Options.GenerateInterfacesForMultipleInheritance = true; driver.Options.GeneratePropertiesAdvanced = true; driver.Options.GenerateVirtualTables = true; - driver.Options.GenerateCopyConstructors = true; - // To ensure that calls to constructors in conversion operators - // are not ambiguous with multiple inheritance pass enabled. + driver.Options.GenerateCopyConstructors = true; + // To ensure that calls to constructors in conversion operators + // are not ambiguous with multiple inheritance pass enabled. driver.Options.GenerateConversionOperators = true; driver.TranslationUnitPasses.AddPass(new TestAttributesPass()); }