Remove type visiting in generic visitor

This commit is contained in:
2025-08-06 12:55:37 +02:00
parent b18effbdd8
commit 4eaf73f3a0
7 changed files with 236 additions and 223 deletions

View File

@@ -19,6 +19,191 @@ along with GCC; see the file COPYING3. If not see
namespace elna::boot
{
void empty_visitor::not_implemented()
{
__builtin_unreachable();
}
void empty_visitor::visit(named_type_expression *)
{
not_implemented();
}
void empty_visitor::visit(array_type_expression *)
{
not_implemented();
}
void empty_visitor::visit(pointer_type_expression *)
{
not_implemented();
}
void empty_visitor::visit(program *)
{
not_implemented();
}
void empty_visitor::visit(type_declaration *)
{
not_implemented();
}
void empty_visitor::visit(record_type_expression *)
{
not_implemented();
}
void empty_visitor::visit(union_type_expression *)
{
not_implemented();
}
void empty_visitor::visit(procedure_type_expression *)
{
not_implemented();
}
void empty_visitor::visit(enumeration_type_expression *)
{
not_implemented();
}
void empty_visitor::visit(variable_declaration *)
{
not_implemented();
}
void empty_visitor::visit(constant_declaration *)
{
not_implemented();
}
void empty_visitor::visit(procedure_declaration *)
{
not_implemented();
}
void empty_visitor::visit(assign_statement *)
{
not_implemented();
}
void empty_visitor::visit(if_statement *)
{
not_implemented();
}
void empty_visitor::visit(import_declaration *)
{
not_implemented();
}
void empty_visitor::visit(while_statement *)
{
not_implemented();
}
void empty_visitor::visit(return_statement *)
{
not_implemented();
}
void empty_visitor::visit(defer_statement *)
{
not_implemented();
}
void empty_visitor::visit(case_statement *)
{
not_implemented();
}
void empty_visitor::visit(procedure_call *)
{
not_implemented();
}
void empty_visitor::visit(unit *)
{
not_implemented();
}
void empty_visitor::visit(cast_expression *)
{
not_implemented();
}
void empty_visitor::visit(traits_expression *)
{
not_implemented();
}
void empty_visitor::visit(binary_expression *)
{
not_implemented();
}
void empty_visitor::visit(unary_expression *)
{
not_implemented();
}
void empty_visitor::visit(variable_expression *)
{
not_implemented();
}
void empty_visitor::visit(array_access_expression *)
{
not_implemented();
}
void empty_visitor::visit(field_access_expression *)
{
not_implemented();
}
void empty_visitor::visit(dereference_expression *)
{
not_implemented();
}
void empty_visitor::visit(literal<std::int32_t> *)
{
not_implemented();
}
void empty_visitor::visit(literal<std::uint32_t> *)
{
not_implemented();
}
void empty_visitor::visit(literal<double> *)
{
not_implemented();
}
void empty_visitor::visit(literal<bool> *)
{
not_implemented();
}
void empty_visitor::visit(literal<unsigned char> *)
{
not_implemented();
}
void empty_visitor::visit(literal<std::nullptr_t> *)
{
not_implemented();
}
void empty_visitor::visit(literal<std::string> *)
{
not_implemented();
}
node::node(const struct position position)
: source_position(position)
{

View File

@@ -484,87 +484,15 @@ namespace elna::boot
{
}
void declaration_visitor::visit(named_type_expression *)
{
}
void declaration_visitor::visit(array_type_expression *)
{
}
void declaration_visitor::visit(pointer_type_expression *)
{
}
void declaration_visitor::visit(program *program)
{
visit(static_cast<unit *>(program));
}
void declaration_visitor::visit(type_declaration *)
{
}
void declaration_visitor::visit(record_type_expression *)
{
}
void declaration_visitor::visit(union_type_expression *)
{
}
void declaration_visitor::visit(procedure_type_expression *)
{
}
void declaration_visitor::visit(enumeration_type_expression *)
{
}
void declaration_visitor::visit(variable_declaration *)
{
}
void declaration_visitor::visit(constant_declaration *)
{
}
void declaration_visitor::visit(procedure_declaration *)
{
}
void declaration_visitor::visit(assign_statement *)
{
}
void declaration_visitor::visit(if_statement *)
{
}
void declaration_visitor::visit(import_declaration *)
{
}
void declaration_visitor::visit(while_statement *)
{
}
void declaration_visitor::visit(return_statement *)
{
}
void declaration_visitor::visit(defer_statement *)
{
}
void declaration_visitor::visit(case_statement *)
{
}
void declaration_visitor::visit(procedure_call *)
{
}
void declaration_visitor::visit(unit *unit)
{
for (import_declaration *const _import : unit->imports)
@@ -581,64 +509,4 @@ namespace elna::boot
}
}
}
void declaration_visitor::visit(cast_expression *)
{
}
void declaration_visitor::visit(traits_expression *)
{
}
void declaration_visitor::visit(binary_expression *)
{
}
void declaration_visitor::visit(unary_expression *)
{
}
void declaration_visitor::visit(variable_expression *)
{
}
void declaration_visitor::visit(array_access_expression *)
{
}
void declaration_visitor::visit(field_access_expression *)
{
}
void declaration_visitor::visit(dereference_expression *)
{
}
void declaration_visitor::visit(literal<std::int32_t> *)
{
}
void declaration_visitor::visit(literal<std::uint32_t> *)
{
}
void declaration_visitor::visit(literal<double> *)
{
}
void declaration_visitor::visit(literal<bool> *)
{
}
void declaration_visitor::visit(literal<unsigned char> *)
{
}
void declaration_visitor::visit(literal<std::nullptr_t> *)
{
}
void declaration_visitor::visit(literal<std::string> *)
{
}
}