refactor(parser): add print operator to AST error

This commit is contained in:
2026-06-03 10:53:34 +02:00
parent 26340c279d
commit cf9c53a9e8
2 changed files with 16 additions and 3 deletions
+7 -3
View File
@@ -8,6 +8,10 @@
namespace furc::ast {
std::ostream& operator<<(std::ostream& os, const error& error) {
return os << error.location << ": ERROR: unknown";
}
bool literal_node::equal(const node& rhs) const {
return literal_type() == reinterpret_cast<const literal_node&>(rhs).literal_type();
}
@@ -47,8 +51,8 @@ void var_read_expression_node::accept(visitor& visitor) const {
}
std::ostream& var_read_expression_node::print(std::ostream& os) const {
if (m_name.present()) return os << *m_name;
return os << m_name.error();
if (m_name.has_error()) return os << m_name.error();
return os << *m_name;
}
bool var_read_expression_node::equal(const node& rhsNode) const {
@@ -162,7 +166,7 @@ std::ostream& function_definition_node::print(std::ostream& os) const {
os << entry << '\n';
return os << m_body->end << ": " << p_name->string << " end";
}
return os << m_body.error().location << ": ERROR: unknown";
return os << m_body.error();
}
bool function_definition_node::equal(const node& rhs) const {