From 6cfe47b6d6c1f300a5ed4e621a6614f47b856292 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sat, 12 Aug 2023 20:54:07 +0100 Subject: [PATCH] Clean up the source manager --- serene/src/CMakeLists.txt | 2 ++ serene/src/jit/jit.h | 4 ++++ serene/src/reader.cpp | 6 +++--- serene/src/reader.h | 6 +++--- serene/src/source_mgr.cpp | 6 +++--- serene/src/source_mgr.h | 2 +- 6 files changed, 16 insertions(+), 10 deletions(-) diff --git a/serene/src/CMakeLists.txt b/serene/src/CMakeLists.txt index f261139..c1488da 100644 --- a/serene/src/CMakeLists.txt +++ b/serene/src/CMakeLists.txt @@ -20,6 +20,8 @@ target_sources(serene PRIVATE commands/commands.cpp jit/jit.cpp + reader.cpp + source_mgr.cpp errors.cpp ast.cpp namespace.cpp diff --git a/serene/src/jit/jit.h b/serene/src/jit/jit.h index 2f998df..fac16d4 100644 --- a/serene/src/jit/jit.h +++ b/serene/src/jit/jit.h @@ -59,6 +59,10 @@ class LLJIT; class LLLazyJIT; } // namespace llvm::orc +namespace serene { +class Namespace; +} // namespace serene + #define MAIN_PROCESS_JD_NAME "*main*" #define JIT_LOG(...) \ DEBUG_WITH_TYPE("JIT", llvm::dbgs() << "[JIT]: " << __VA_ARGS__ << "\n"); diff --git a/serene/src/reader.cpp b/serene/src/reader.cpp index f55c72d..e425875 100644 --- a/serene/src/reader.cpp +++ b/serene/src/reader.cpp @@ -327,16 +327,16 @@ ast::MaybeNode Reader::readList() { bool list_terminated = false; do { - const auto *c = nextChar(true); + const auto *ch = nextChar(true); - if (isEndOfBuffer(c)) { + if (isEndOfBuffer(ch)) { advance(true); advance(); list->location.end = getCurrentLocation(); return errors::make(errors::Type::EOFWhileScaningAList, list->location); } - switch (*c) { + switch (*ch) { case ')': advance(true); advance(); diff --git a/serene/src/reader.h b/serene/src/reader.h index ce1e1c0..d0e3de7 100644 --- a/serene/src/reader.h +++ b/serene/src/reader.h @@ -112,10 +112,10 @@ public: /// Parses the given `input` string and returns a `Result` /// which may contains an AST or an `llvm::Error` -ast::MaybeAst read(llvm::StringRef input, llvm::StringRef ns, - std::optional filename); -ast::MaybeAst read(llvm::MemoryBufferRef input, llvm::StringRef ns, +ast::MaybeAst read(jit::JIT &engine, llvm::StringRef input, llvm::StringRef ns, std::optional filename); +ast::MaybeAst read(jit::JIT &engine, llvm::MemoryBufferRef input, + llvm::StringRef ns, std::optional filename); } // namespace serene #endif diff --git a/serene/src/source_mgr.cpp b/serene/src/source_mgr.cpp index 89ede19..eb09085 100644 --- a/serene/src/source_mgr.cpp +++ b/serene/src/source_mgr.cpp @@ -94,7 +94,7 @@ MaybeNS SourceMgr::readNamespace(jit::JIT &engine, std::string name, if (bufferId == 0) { auto msg = llvm::formatv("Couldn't add namespace '{0}'", name).str(); - return errors::make(errors::Type; : NSAddToSMError, importLoc, msg); + return errors::make(errors::Type::NSAddToSMError, importLoc, msg); } // Since we moved the buffer to be added as the source storage we @@ -102,7 +102,7 @@ MaybeNS SourceMgr::readNamespace(jit::JIT &engine, std::string name, const auto *buf = getMemoryBuffer(bufferId); // Read the content of the buffer by passing it the reader - auto maybeAst = read(jit, buf->getBuffer(), name, + auto maybeAst = read(engine, buf->getBuffer(), name, std::optional(llvm::StringRef(importedFile))); if (!maybeAst) { @@ -123,7 +123,7 @@ MaybeNS SourceMgr::readNamespace(jit::JIT &engine, std::string name, }; unsigned SourceMgr::AddNewSourceBuffer(std::unique_ptr f, - LocationRange includeLoc) { + const LocationRange &includeLoc) { SrcBuffer nb; nb.buffer = std::move(f); nb.importLoc = includeLoc; diff --git a/serene/src/source_mgr.h b/serene/src/source_mgr.h index da901f9..8c0f5d0 100644 --- a/serene/src/source_mgr.h +++ b/serene/src/source_mgr.h @@ -174,7 +174,7 @@ public: /// Add a new source buffer to this source manager. This takes ownership of /// the memory buffer. unsigned AddNewSourceBuffer(std::unique_ptr f, - LocationRange includeLoc); + const LocationRange &includeLoc); /// Lookup for a file containing the namespace definition of with given /// namespace name \p name. In case that the file exists, it returns an