Browse Source

Updated the C++ parser project to the new ASTContext class.

pull/86/head
triton 12 years ago
parent
commit
078b71be45
  1. 6
      src/CppParser/CppParser.h
  2. 12
      src/CppParser/Parser.cpp
  3. 2
      src/CppParser/Parser.h

6
src/CppParser/CppParser.h

@ -31,8 +31,6 @@ struct CS_API ParserOptions @@ -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 @@ -72,8 +70,10 @@ enum struct ParserResultKind
struct CS_API ParserResult
{
ParserResultKind Kind;
CppSharp::CppParser::AST::Library* Library;
std::vector<ParserDiagnostic> Diagnostics;
CppSharp::CppParser::AST::ASTContext* ASTContext;
CppSharp::CppParser::AST::NativeLibrary* Library;
};
enum class SourceLocationKind

12
src/CppParser/Parser.cpp

@ -34,7 +34,7 @@ using namespace CppSharp::CppParser; @@ -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) @@ -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, @@ -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, @@ -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, @@ -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())
{

2
src/CppParser/Parser.h

@ -108,7 +108,7 @@ protected: @@ -108,7 +108,7 @@ protected:
void HandleDiagnostics(ParserResult* res);
int Index;
Library* Lib;
ASTContext* Lib;
ParserOptions* Opts;
llvm::OwningPtr<clang::CompilerInstance> C;
clang::ASTContext* AST;

Loading…
Cancel
Save