diff options
| author | Eugen Wissner <belka@caraus.de> | 2026-07-08 11:04:34 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2026-07-08 11:04:34 +0200 |
| commit | ffe6097c534c82b9402bb6f0a57abeebd075e61d (patch) | |
| tree | 9079255db89007046fe1446d27009df8585a154e /include | |
| parent | 79521d91b2bb85652fd29f5c44279338d55c757f (diff) | |
| download | elna-ffe6097c534c82b9402bb6f0a57abeebd075e61d.tar.gz | |
Allow multiple fields with the same type
Diffstat (limited to 'include')
| -rw-r--r-- | include/elna/boot/ast.h | 13 |
1 files changed, 5 insertions, 8 deletions
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<std::string, type_expression *>; + using field_declaration = std::pair<std::vector<std::string>, std::shared_ptr<type_expression>>; class record_type_expression : public type_expression { @@ -289,7 +289,6 @@ namespace elna::boot const std::vector<field_declaration> fields; record_type_expression(const struct position position, std::vector<field_declaration>&& 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<field_declaration> fields; union_type_expression(const struct position position, std::vector<field_declaration>&& 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<type_expression *>; const return_t return_type; - const std::vector<std::pair<std::vector<std::string>, std::shared_ptr<type_expression>>> parameters; + const std::vector<field_declaration> parameters; procedure_type_expression(const struct position position, - std::vector<std::pair<std::vector<std::string>, std::shared_ptr<type_expression>>>&& parameters, - return_t return_type = return_t()); + std::vector<field_declaration>&& parameters, return_t return_type = return_t()); ~procedure_type_expression(); void accept(parser_visitor *visitor) override; |
