mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 14:17:36 +00:00
LibUnicode: Generate and use unique locale-related alias strings
Almost all of these are already in the unique string list.
This commit is contained in:
parent
acb7bd917f
commit
597379e864
1 changed files with 11 additions and 11 deletions
|
@ -66,11 +66,11 @@ struct UnicodeLocaleData {
|
||||||
Vector<String> keywords;
|
Vector<String> keywords;
|
||||||
Vector<String> list_pattern_types;
|
Vector<String> list_pattern_types;
|
||||||
Vector<String> list_pattern_styles;
|
Vector<String> list_pattern_styles;
|
||||||
HashMap<String, String> language_aliases;
|
HashMap<String, size_t> language_aliases;
|
||||||
HashMap<String, String> territory_aliases;
|
HashMap<String, size_t> territory_aliases;
|
||||||
HashMap<String, String> script_aliases;
|
HashMap<String, size_t> script_aliases;
|
||||||
HashMap<String, String> variant_aliases;
|
HashMap<String, size_t> variant_aliases;
|
||||||
HashMap<String, String> subdivision_aliases;
|
HashMap<String, size_t> subdivision_aliases;
|
||||||
Vector<LanguageMapping> complex_mappings;
|
Vector<LanguageMapping> complex_mappings;
|
||||||
Vector<LanguageMapping> likely_subtags;
|
Vector<LanguageMapping> likely_subtags;
|
||||||
size_t max_variant_size { 0 };
|
size_t max_variant_size { 0 };
|
||||||
|
@ -183,7 +183,7 @@ static void parse_core_aliases(String core_supplemental_path, UnicodeLocaleData&
|
||||||
locale_data.max_variant_size = max(mapping->alias.variants.size(), locale_data.max_variant_size);
|
locale_data.max_variant_size = max(mapping->alias.variants.size(), locale_data.max_variant_size);
|
||||||
locale_data.complex_mappings.append(mapping.release_value());
|
locale_data.complex_mappings.append(mapping.release_value());
|
||||||
} else {
|
} else {
|
||||||
alias_map.set(key, move(alias));
|
alias_map.set(key, ensure_unique_string(locale_data, alias));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -1070,13 +1070,13 @@ Optional<@enum_title@> @enum_snake@_from_string(StringView const& @enum_snake@)
|
||||||
)~~~");
|
)~~~");
|
||||||
};
|
};
|
||||||
|
|
||||||
auto append_alias_search = [&](StringView enum_snake, HashMap<String, String> const& aliases) {
|
auto append_alias_search = [&](StringView enum_snake, auto const& aliases) {
|
||||||
generator.set("enum_snake", enum_snake);
|
generator.set("enum_snake", enum_snake);
|
||||||
|
|
||||||
generator.append(R"~~~(
|
generator.append(R"~~~(
|
||||||
Optional<StringView> resolve_@enum_snake@_alias(StringView const& @enum_snake@)
|
Optional<StringView> resolve_@enum_snake@_alias(StringView const& @enum_snake@)
|
||||||
{
|
{
|
||||||
static HashMap<StringView, StringView> @enum_snake@_aliases { {
|
static HashMap<StringView, size_t> @enum_snake@_aliases { {
|
||||||
)~~~");
|
)~~~");
|
||||||
|
|
||||||
constexpr size_t max_values_per_row = 10;
|
constexpr size_t max_values_per_row = 10;
|
||||||
|
@ -1087,8 +1087,8 @@ Optional<StringView> resolve_@enum_snake@_alias(StringView const& @enum_snake@)
|
||||||
generator.append(" ");
|
generator.append(" ");
|
||||||
|
|
||||||
generator.set("key"sv, alias.key);
|
generator.set("key"sv, alias.key);
|
||||||
generator.set("alias"sv, alias.value);
|
generator.set("alias"sv, String::number(alias.value));
|
||||||
generator.append("{ \"@key@\"sv, \"@alias@\"sv },");
|
generator.append("{ \"@key@\"sv, @alias@ },");
|
||||||
|
|
||||||
if (values_in_current_row == max_values_per_row) {
|
if (values_in_current_row == max_values_per_row) {
|
||||||
generator.append("\n ");
|
generator.append("\n ");
|
||||||
|
@ -1100,7 +1100,7 @@ Optional<StringView> resolve_@enum_snake@_alias(StringView const& @enum_snake@)
|
||||||
} };
|
} };
|
||||||
|
|
||||||
if (auto alias = @enum_snake@_aliases.get(@enum_snake@); alias.has_value())
|
if (auto alias = @enum_snake@_aliases.get(@enum_snake@); alias.has_value())
|
||||||
return alias.value();
|
return s_string_list[alias.value()];
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
)~~~");
|
)~~~");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue