From 078b71be45f4f928df06a3301a1b85d3236e7ba0 Mon Sep 17 00:00:00 2001 From: triton Date: Mon, 14 Oct 2013 15:20:44 +0100 Subject: [PATCH] Updated the C++ parser project to the new ASTContext class. --- src/CppParser/CppParser.h | 6 +++--- src/CppParser/Parser.cpp | 12 +++++++----- src/CppParser/Parser.h | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/CppParser/CppParser.h b/src/CppParser/CppParser.h index 51d14dc6..906aaf27 100644 --- a/src/CppParser/CppParser.h +++ b/src/CppParser/CppParser.h @@ -31,8 +31,6 @@ struct CS_API ParserOptions // C/C++ header file name. std::string FileName; - CppSharp::CppParser::AST::Library* Library; - int ToolSetToUse; std::string TargetTriple; @@ -72,8 +70,10 @@ enum struct ParserResultKind struct CS_API ParserResult { ParserResultKind Kind; - CppSharp::CppParser::AST::Library* Library; std::vector Diagnostics; + + CppSharp::CppParser::AST::ASTContext* ASTContext; + CppSharp::CppParser::AST::NativeLibrary* Library; }; enum class SourceLocationKind diff --git a/src/CppParser/Parser.cpp b/src/CppParser/Parser.cpp index c212047c..0de3b4a9 100644 --- a/src/CppParser/Parser.cpp +++ b/src/CppParser/Parser.cpp @@ -34,7 +34,7 @@ using namespace CppSharp::CppParser; //-----------------------------------// -Parser::Parser(ParserOptions* Opts) : Lib(Opts->Library), Opts(Opts), Index(0) +Parser::Parser(ParserOptions* Opts) : Lib(Opts->ASTContext), Opts(Opts), Index(0) { } @@ -2203,7 +2203,7 @@ void Parser::HandleDiagnostics(ParserResult* res) ParserResult* Parser::ParseHeader(const std::string& File) { auto res = new ParserResult(); - res->Library = Lib; + res->ASTContext = Lib; if (File.empty()) { @@ -2293,7 +2293,8 @@ ParserResultKind Parser::ParseArchive(llvm::StringRef File, return ParserResultKind::Error; auto LibName = File; - auto NativeLib = Lib->FindOrCreateLibrary(LibName); + auto NativeLib = new NativeLibrary(); + NativeLib->FileName = LibName; for(auto it = Archive.begin_symbols(); it != Archive.end_symbols(); ++it) { @@ -2317,7 +2318,8 @@ ParserResultKind Parser::ParseSharedLib(llvm::StringRef File, return ParserResultKind::Error; auto LibName = File; - auto NativeLib = Lib->FindOrCreateLibrary(LibName); + auto NativeLib = new NativeLibrary(); + NativeLib->FileName = LibName; llvm::error_code ec; for(auto it = Object->begin_symbols(); it != Object->end_symbols(); it.increment(ec)) @@ -2347,7 +2349,7 @@ ParserResultKind Parser::ParseSharedLib(llvm::StringRef File, ParserResult* Parser::ParseLibrary(const std::string& File) { auto res = new ParserResult(); - res->Library = Lib; + res->ASTContext = Lib; if (File.empty()) { diff --git a/src/CppParser/Parser.h b/src/CppParser/Parser.h index e7317016..9c5de862 100644 --- a/src/CppParser/Parser.h +++ b/src/CppParser/Parser.h @@ -108,7 +108,7 @@ protected: void HandleDiagnostics(ParserResult* res); int Index; - Library* Lib; + ASTContext* Lib; ParserOptions* Opts; llvm::OwningPtr C; clang::ASTContext* AST;