#pragma once #include namespace clice { struct ParsedAST { clang::Sema& sema; clang::ASTContext& context; clang::Preprocessor& preproc; clang::FileManager& fileManager; clang::SourceManager& sourceManager; clang::syntax::TokenBuffer tokenBuffer; // std::unique_ptr directive; std::unique_ptr action; std::unique_ptr instance; clang::FileID getFileID(llvm::StringRef filename) const { auto entry = fileManager.getFileRef(filename); if(!entry) { // TODO: } return sourceManager.translateFile(entry.get()); } llvm::ArrayRef spelledTokens(clang::FileID fileID) const { return tokenBuffer.spelledTokens(fileID); } }; } // namespace clice