diff options
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; |
