From 768537d6e4b82a19e77b7e44234309ecaf4d65d2 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sun, 12 Jul 2026 13:23:54 +0200 Subject: Remove unions --- include/elna/boot/ast.h | 16 ---------------- include/elna/boot/semantic.h | 1 - include/elna/boot/symbol.h | 9 --------- 3 files changed, 26 deletions(-) (limited to 'include') diff --git a/include/elna/boot/ast.h b/include/elna/boot/ast.h index 17a0dc1..d9f3af8 100644 --- a/include/elna/boot/ast.h +++ b/include/elna/boot/ast.h @@ -74,7 +74,6 @@ namespace elna::boot class array_type_expression; class pointer_type_expression; class record_type_expression; - class union_type_expression; class procedure_type_expression; class enumeration_type_expression; class named_expression; @@ -114,7 +113,6 @@ namespace elna::boot virtual void visit(array_type_expression *) = 0; virtual void visit(pointer_type_expression *) = 0; virtual void visit(record_type_expression *) = 0; - virtual void visit(union_type_expression *) = 0; virtual void visit(procedure_type_expression *) = 0; virtual void visit(enumeration_type_expression *) = 0; virtual void visit(named_expression *) = 0; @@ -140,7 +138,6 @@ namespace elna::boot [[noreturn]] virtual void visit(pointer_type_expression *) override; [[noreturn]] virtual void visit(type_declaration *) override; [[noreturn]] virtual void visit(record_type_expression *) override; - [[noreturn]] virtual void visit(union_type_expression *) override; [[noreturn]] virtual void visit(procedure_type_expression *) override; [[noreturn]] virtual void visit(enumeration_type_expression *) override; @@ -184,7 +181,6 @@ namespace elna::boot virtual void visit(pointer_type_expression *) override; virtual void visit(type_declaration *) override; virtual void visit(record_type_expression *) override; - virtual void visit(union_type_expression *) override; virtual void visit(procedure_type_expression *) override; virtual void visit(enumeration_type_expression *) override; @@ -281,7 +277,6 @@ namespace elna::boot virtual array_type_expression *is_array(); virtual pointer_type_expression *is_pointer(); virtual record_type_expression *is_record(); - virtual union_type_expression *is_union(); virtual procedure_type_expression *is_procedure(); virtual enumeration_type_expression *is_enumeration(); }; @@ -334,17 +329,6 @@ namespace elna::boot record_type_expression *is_record() override; }; - class union_type_expression : public type_expression - { - public: - std::vector fields; - - union_type_expression(const struct position position, std::vector&& fields); - - void accept(parser_visitor *visitor) override; - union_type_expression *is_union() override; - }; - /** * Enumeration type. */ diff --git a/include/elna/boot/semantic.h b/include/elna/boot/semantic.h index e351258..c686cf8 100644 --- a/include/elna/boot/semantic.h +++ b/include/elna/boot/semantic.h @@ -197,7 +197,6 @@ namespace elna::boot void visit(pointer_type_expression *expression) override; void visit(type_declaration *declaration) override; void visit(record_type_expression *expression) override; - void visit(union_type_expression *expression) override; void visit(procedure_type_expression *expression) override; void visit(enumeration_type_expression *expression) override; diff --git a/include/elna/boot/symbol.h b/include/elna/boot/symbol.h index 85532db..d29587d 100644 --- a/include/elna/boot/symbol.h +++ b/include/elna/boot/symbol.h @@ -31,7 +31,6 @@ namespace elna::boot class alias_type; class primitive_type; class record_type; - class union_type; class pointer_type; class array_type; class procedure_type; @@ -45,7 +44,6 @@ namespace elna::boot alias, primitive, record, - _union, pointer, array, procedure, @@ -57,7 +55,6 @@ namespace elna::boot std::weak_ptr alias; std::shared_ptr primitive; std::shared_ptr record; - std::shared_ptr _union; std::shared_ptr pointer; std::shared_ptr array; std::shared_ptr procedure; @@ -72,7 +69,6 @@ namespace elna::boot explicit type(std::shared_ptr alias); explicit type(std::shared_ptr primitive); explicit type(std::shared_ptr record); - explicit type(std::shared_ptr _union); explicit type(std::shared_ptr pointer); explicit type(std::shared_ptr array); explicit type(std::shared_ptr procedure); @@ -135,11 +131,6 @@ namespace elna::boot explicit record_type(type base = type()); }; - struct union_type - { - std::vector fields; - }; - struct procedure_type { using return_t = return_declaration; -- cgit v1.2.3