#pragma once #include #include #include "error.hpp" #include "ast.hpp" #include "function.hpp" #include "type.hpp" #include "type_manager.hpp" #include "gmachine.hpp" namespace lily { struct program { type_manager type_mgr; std::map functions; program(); void check(); void compile(instruction_manager& mgr, std::map>& into); void gen_llvm(); }; typedef std::unique_ptr program_ptr; program_ptr parse(std::string s); }