Make some refactors for name mangling and encapsulation.

This commit is contained in:
2020-09-15 18:51:28 -07:00
parent 6080094c41
commit 55486d511f
18 changed files with 895 additions and 303 deletions

View File

@@ -17,9 +17,9 @@ struct compiler_error : std::exception {
const char* what() const noexcept override;
void print_about(std::ostream& to);
void print_location(std::ostream& to, parse_driver& drv, bool highlight = false);
void print_location(std::ostream& to, file_mgr& fm, bool highlight = false);
void pretty_print(std::ostream& to, parse_driver& drv);
void pretty_print(std::ostream& to, file_mgr& fm);
};
struct type_error : compiler_error {
@@ -29,7 +29,7 @@ struct type_error : compiler_error {
: compiler_error(std::move(d), std::move(l)) {}
const char* what() const noexcept override;
void pretty_print(std::ostream& to, parse_driver& drv);
void pretty_print(std::ostream& to, file_mgr& fm);
};
struct unification_error : public type_error {
@@ -40,5 +40,5 @@ struct unification_error : public type_error {
: left(std::move(l)), right(std::move(r)),
type_error("failed to unify types", std::move(loc)) {}
void pretty_print(std::ostream& to, parse_driver& drv, type_mgr& mgr);
void pretty_print(std::ostream& to, file_mgr& fm, type_mgr& mgr);
};