From ffe6097c534c82b9402bb6f0a57abeebd075e61d Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Wed, 8 Jul 2026 11:04:34 +0200 Subject: Allow multiple fields with the same type --- include/elna/boot/ast.h | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/elna/boot/ast.h b/include/elna/boot/ast.h index b9414f0..0642d44 100644 --- a/include/elna/boot/ast.h +++ b/include/elna/boot/ast.h @@ -259,7 +259,7 @@ namespace elna::boot array_type_expression(const struct position position, type_expression *base, const std::uint32_t size); - ~array_type_expression(); + ~array_type_expression() override; void accept(parser_visitor *visitor) override; array_type_expression *is_array() override; @@ -273,7 +273,7 @@ namespace elna::boot public: pointer_type_expression(const struct position position, type_expression *base); - ~pointer_type_expression(); + ~pointer_type_expression() override; void accept(parser_visitor *visitor) override; pointer_type_expression *is_pointer() override; @@ -281,7 +281,7 @@ namespace elna::boot type_expression& base(); }; - using field_declaration = std::pair; + using field_declaration = std::pair, std::shared_ptr>; class record_type_expression : public type_expression { @@ -289,7 +289,6 @@ namespace elna::boot const std::vector fields; record_type_expression(const struct position position, std::vector&& fields); - ~record_type_expression(); void accept(parser_visitor *visitor) override; record_type_expression *is_record() override; @@ -301,7 +300,6 @@ namespace elna::boot std::vector fields; union_type_expression(const struct position position, std::vector&& fields); - ~union_type_expression(); void accept(parser_visitor *visitor) override; union_type_expression *is_union() override; @@ -381,11 +379,10 @@ namespace elna::boot using return_t = return_declaration; const return_t return_type; - const std::vector, std::shared_ptr>> parameters; + const std::vector parameters; procedure_type_expression(const struct position position, - std::vector, std::shared_ptr>>&& parameters, - return_t return_type = return_t()); + std::vector&& parameters, return_t return_type = return_t()); ~procedure_type_expression(); void accept(parser_visitor *visitor) override; -- cgit v1.2.3