diff --git a/src/Bridge/Variable.cs b/src/Bridge/Variable.cs new file mode 100644 index 00000000..e90fe7d7 --- /dev/null +++ b/src/Bridge/Variable.cs @@ -0,0 +1,11 @@ + +namespace Cxxi +{ + public class Variable : Declaration + { + public override T Visit(IDeclVisitor visitor) + { + throw new System.NotImplementedException(); + } + } +} diff --git a/src/Parser/Parser.cpp b/src/Parser/Parser.cpp index 4d55b94b..0807d24e 100644 --- a/src/Parser/Parser.cpp +++ b/src/Parser/Parser.cpp @@ -1134,6 +1134,19 @@ void Parser::WalkMacros(clang::PreprocessingRecord* PR) //-----------------------------------// +Cxxi::Variable^ Parser::WalkVariable(clang::VarDecl *VD) +{ + using namespace clang; + using namespace clix; + + auto Var = gcnew Cxxi::Variable(); + Var->Name = marshalString(VD->getName()); + + return Var; +} + +//-----------------------------------// + void Parser::HandleComments(clang::Decl* D, Cxxi::Declaration^ Decl) { using namespace clang; @@ -1293,6 +1306,17 @@ Cxxi::Declaration^ Parser::WalkDeclaration(clang::Decl* D, break; } + case Decl::Var: + { + auto VD = cast(D); + + auto V = WalkVariable(VD); + HandleComments(VD, V); + + Decl = V; + + break; + } default: { Debug("Unhandled declaration kind: %s\n", D->getDeclKindName()); diff --git a/src/Parser/Parser.h b/src/Parser/Parser.h index 1fb2be3f..9ec3a8de 100644 --- a/src/Parser/Parser.h +++ b/src/Parser/Parser.h @@ -72,6 +72,7 @@ protected: Cxxi::ClassTemplate^ Parser::WalkClassTemplate(clang::ClassTemplateDecl*); Cxxi::FunctionTemplate^ Parser::WalkFunctionTemplate( clang::FunctionTemplateDecl*); + Cxxi::Variable^ WalkVariable(clang::VarDecl*); Cxxi::Type^ WalkType(clang::QualType, clang::TypeLoc* = 0, bool DesugarType = false);