#pragma once #include #include #include #include #include #include #include #include #include namespace theo::decomp { class decomp_t { public: explicit decomp_t(std::vector& lib, comp::symbol_table_t* syms); std::vector rtns(); std::vector lib(); std::vector objs(); comp::symbol_table_t* syms(); std::optional decompose(); private: const std::vector m_lib; std::vector m_objs; std::vector m_rtns; comp::symbol_table_t* m_syms; }; } // namespace theo::decomp