#ifndef wg_COMPILER_HPP #define wg_COMPILER_HPP #include #include #include #include "commons.hpp" #include "Node.hpp" #include "SymTable.hpp" namespace wg { class Compiler { public: explicit Compiler(); virtual ~Compiler(); void gen(std::filesystem::path obj); llvm::Value* compile(std::shared_ptr node); private: std::unique_ptr m_context = std::make_unique(); std::unique_ptr> m_builder = std::make_unique>(*m_context); std::unique_ptr m_module = std::make_unique("my module", *m_context); std::unique_ptr m_sym = std::make_unique(); }; } #endif