diff options
| author | Eugen Wissner <belka@caraus.de> | 2026-08-14 17:22:17 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2026-08-14 17:22:17 +0200 |
| commit | d696abc97143061bf2abb05922188e12b59306c1 (patch) | |
| tree | df8d2d1799e7036566d02e2201d159634d576481 /boot/result.cc | |
| parent | bf7416a3ef9f0b787dcaebf816f3f3e6e385ff42 (diff) | |
| download | elna-d696abc97143061bf2abb05922188e12b59306c1.tar.gz | |
Use the new .is_a() for literal kind checks in the evaluator
Diffstat (limited to 'boot/result.cc')
| -rw-r--r-- | boot/result.cc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/boot/result.cc b/boot/result.cc index 15fe8b4..a5f0803 100644 --- a/boot/result.cc +++ b/boot/result.cc @@ -129,6 +129,28 @@ namespace elna::boot return this->m_exported; } + std::optional<std::pair<std::string, source_position>> previous_declaration_note( + const std::optional<source_position>& original, std::string_view label) + { + if (original.has_value() && original.value().start().available()) + { + return std::make_pair(std::string(label), original.value()); + } + else + { + return std::nullopt; + } + } + + std::optional<std::pair<std::string, source_position>> identifier_list_note( + const std::vector<identifier>& identifiers) + { + auto position_span = source_position(identifiers.front().position().start(), + identifiers.back().position().end()); + + return std::make_optional(std::make_pair(join(identifiers), position_span)); + } + std::vector<identifier> extract_identifiers(const std::vector<identifier_definition>& identifiers) { std::vector<identifier> result; |
