mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 03:47:35 +00:00
AK+Everywhere: Rename String to DeprecatedString
We have a new, improved string type coming up in AK (OOM aware, no null state), and while it's going to use UTF-8, the name UTF8String is a mouthful - so let's free up the String name by renaming the existing class. Making the old one have an annoying name will hopefully also help with quick adoption :^)
This commit is contained in:
parent
f74251606d
commit
6e19ab2bbc
2006 changed files with 11635 additions and 11636 deletions
|
@ -7,6 +7,7 @@
|
|||
#include "../LibUnicode/GeneratorUtil.h" // FIXME: Move this somewhere common.
|
||||
#include <AK/AllOf.h>
|
||||
#include <AK/CharacterTypes.h>
|
||||
#include <AK/DeprecatedString.h>
|
||||
#include <AK/Find.h>
|
||||
#include <AK/Format.h>
|
||||
#include <AK/GenericLexer.h>
|
||||
|
@ -17,7 +18,6 @@
|
|||
#include <AK/JsonValue.h>
|
||||
#include <AK/LexicalPath.h>
|
||||
#include <AK/SourceGenerator.h>
|
||||
#include <AK/String.h>
|
||||
#include <AK/StringBuilder.h>
|
||||
#include <AK/Traits.h>
|
||||
#include <AK/Utf8View.h>
|
||||
|
@ -487,7 +487,7 @@ struct AK::Formatter<Locale::HourCycle> : Formatter<FormatString> {
|
|||
};
|
||||
|
||||
struct LocaleData {
|
||||
HashMap<String, size_t> calendars;
|
||||
HashMap<DeprecatedString, size_t> calendars;
|
||||
|
||||
size_t time_zones { 0 };
|
||||
size_t time_zone_formats { 0 };
|
||||
|
@ -513,27 +513,27 @@ struct CLDR {
|
|||
UniqueStorage<DayPeriodList> unique_day_period_lists;
|
||||
UniqueStorage<HourCycleList> unique_hour_cycle_lists;
|
||||
|
||||
HashMap<String, LocaleData> locales;
|
||||
HashMap<DeprecatedString, LocaleData> locales;
|
||||
|
||||
HashMap<String, size_t> hour_cycles;
|
||||
Vector<String> hour_cycle_regions;
|
||||
HashMap<DeprecatedString, size_t> hour_cycles;
|
||||
Vector<DeprecatedString> hour_cycle_regions;
|
||||
|
||||
HashMap<String, u8> minimum_days;
|
||||
Vector<String> minimum_days_regions;
|
||||
HashMap<DeprecatedString, u8> minimum_days;
|
||||
Vector<DeprecatedString> minimum_days_regions;
|
||||
|
||||
HashMap<String, Locale::Weekday> first_day;
|
||||
Vector<String> first_day_regions;
|
||||
HashMap<DeprecatedString, Locale::Weekday> first_day;
|
||||
Vector<DeprecatedString> first_day_regions;
|
||||
|
||||
HashMap<String, Locale::Weekday> weekend_start;
|
||||
Vector<String> weekend_start_regions;
|
||||
HashMap<DeprecatedString, Locale::Weekday> weekend_start;
|
||||
Vector<DeprecatedString> weekend_start_regions;
|
||||
|
||||
HashMap<String, Locale::Weekday> weekend_end;
|
||||
Vector<String> weekend_end_regions;
|
||||
HashMap<DeprecatedString, Locale::Weekday> weekend_end;
|
||||
Vector<DeprecatedString> weekend_end_regions;
|
||||
|
||||
HashMap<String, Vector<TimeZone::TimeZone>> meta_zones;
|
||||
Vector<String> time_zones { "UTC"sv };
|
||||
HashMap<DeprecatedString, Vector<TimeZone::TimeZone>> meta_zones;
|
||||
Vector<DeprecatedString> time_zones { "UTC"sv };
|
||||
|
||||
Vector<String> calendars;
|
||||
Vector<DeprecatedString> calendars;
|
||||
};
|
||||
|
||||
static Optional<Locale::DayPeriod> day_period_from_string(StringView day_period)
|
||||
|
@ -563,7 +563,7 @@ static Optional<Locale::DayPeriod> day_period_from_string(StringView day_period)
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_hour_cycles(String core_path, CLDR& cldr)
|
||||
static ErrorOr<void> parse_hour_cycles(DeprecatedString core_path, CLDR& cldr)
|
||||
{
|
||||
// https://unicode.org/reports/tr35/tr35-dates.html#Time_Data
|
||||
LexicalPath time_data_path(move(core_path));
|
||||
|
@ -607,7 +607,7 @@ static ErrorOr<void> parse_hour_cycles(String core_path, CLDR& cldr)
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_week_data(String core_path, CLDR& cldr)
|
||||
static ErrorOr<void> parse_week_data(DeprecatedString core_path, CLDR& cldr)
|
||||
{
|
||||
// https://unicode.org/reports/tr35/tr35-dates.html#Week_Data
|
||||
LexicalPath week_data_path(move(core_path));
|
||||
|
@ -672,7 +672,7 @@ static ErrorOr<void> parse_week_data(String core_path, CLDR& cldr)
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_meta_zones(String core_path, CLDR& cldr)
|
||||
static ErrorOr<void> parse_meta_zones(DeprecatedString core_path, CLDR& cldr)
|
||||
{
|
||||
// https://unicode.org/reports/tr35/tr35-dates.html#Metazones
|
||||
LexicalPath meta_zone_path(move(core_path));
|
||||
|
@ -714,7 +714,7 @@ static constexpr auto is_char(char ch)
|
|||
// "{hour}:{minute} {ampm}" becomes "{hour}:{minute}" (remove the space before {ampm})
|
||||
// "{ampm} {hour}" becomes "{hour}" (remove the space after {ampm})
|
||||
// "{hour}:{minute} {ampm} {timeZoneName}" becomes "{hour}:{minute} {timeZoneName}" (remove one of the spaces around {ampm})
|
||||
static String remove_period_from_pattern(String pattern)
|
||||
static DeprecatedString remove_period_from_pattern(DeprecatedString pattern)
|
||||
{
|
||||
auto is_surrounding_space = [&](auto code_point_iterator) {
|
||||
if (code_point_iterator.done())
|
||||
|
@ -751,15 +751,15 @@ static String remove_period_from_pattern(String pattern)
|
|||
after_removal = it;
|
||||
|
||||
if (is_surrounding_space(before_removal) && !is_opening(after_removal)) {
|
||||
pattern = String::formatted("{}{}",
|
||||
pattern = DeprecatedString::formatted("{}{}",
|
||||
pattern.substring_view(0, *index - before_removal.underlying_code_point_length_in_bytes()),
|
||||
pattern.substring_view(*index + remove.length()));
|
||||
} else if (is_surrounding_space(after_removal) && !is_closing(before_removal)) {
|
||||
pattern = String::formatted("{}{}",
|
||||
pattern = DeprecatedString::formatted("{}{}",
|
||||
pattern.substring_view(0, *index),
|
||||
pattern.substring_view(*index + remove.length() + after_removal.underlying_code_point_length_in_bytes()));
|
||||
} else {
|
||||
pattern = String::formatted("{}{}",
|
||||
pattern = DeprecatedString::formatted("{}{}",
|
||||
pattern.substring_view(0, *index),
|
||||
pattern.substring_view(*index + remove.length()));
|
||||
}
|
||||
|
@ -768,7 +768,7 @@ static String remove_period_from_pattern(String pattern)
|
|||
return pattern;
|
||||
}
|
||||
|
||||
static Optional<CalendarPattern> parse_date_time_pattern_raw(String pattern, String skeleton, CLDR& cldr)
|
||||
static Optional<CalendarPattern> parse_date_time_pattern_raw(DeprecatedString pattern, DeprecatedString skeleton, CLDR& cldr)
|
||||
{
|
||||
// https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
|
||||
using Locale::CalendarPatternStyle;
|
||||
|
@ -987,7 +987,7 @@ static Optional<CalendarPattern> parse_date_time_pattern_raw(String pattern, Str
|
|||
return format;
|
||||
}
|
||||
|
||||
static Optional<size_t> parse_date_time_pattern(String pattern, String skeleton, CLDR& cldr)
|
||||
static Optional<size_t> parse_date_time_pattern(DeprecatedString pattern, DeprecatedString skeleton, CLDR& cldr)
|
||||
{
|
||||
auto format = parse_date_time_pattern_raw(move(pattern), move(skeleton), cldr);
|
||||
if (!format.has_value())
|
||||
|
@ -1377,7 +1377,7 @@ static void parse_calendar_symbols(Calendar& calendar, JsonObject const& calenda
|
|||
calendar.symbols = cldr.unique_calendar_symbols_lists.ensure(move(symbols_list));
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_calendars(String locale_calendars_path, CLDR& cldr, LocaleData& locale)
|
||||
static ErrorOr<void> parse_calendars(DeprecatedString locale_calendars_path, CLDR& cldr, LocaleData& locale)
|
||||
{
|
||||
LexicalPath calendars_path(move(locale_calendars_path));
|
||||
if (!calendars_path.basename().starts_with("ca-"sv))
|
||||
|
@ -1394,7 +1394,7 @@ static ErrorOr<void> parse_calendars(String locale_calendars_path, CLDR& cldr, L
|
|||
auto format = patterns_object.get(name);
|
||||
auto skeleton = skeletons_object.get(name);
|
||||
|
||||
auto format_index = parse_date_time_pattern(format.as_string(), skeleton.as_string_or(String::empty()), cldr).value();
|
||||
auto format_index = parse_date_time_pattern(format.as_string(), skeleton.as_string_or(DeprecatedString::empty()), cldr).value();
|
||||
|
||||
if (patterns)
|
||||
patterns->append(cldr.unique_patterns.get(format_index));
|
||||
|
@ -1468,7 +1468,7 @@ static ErrorOr<void> parse_calendars(String locale_calendars_path, CLDR& cldr, L
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_time_zone_names(String locale_time_zone_names_path, CLDR& cldr, LocaleData& locale)
|
||||
static ErrorOr<void> parse_time_zone_names(DeprecatedString locale_time_zone_names_path, CLDR& cldr, LocaleData& locale)
|
||||
{
|
||||
LexicalPath time_zone_names_path(move(locale_time_zone_names_path));
|
||||
time_zone_names_path = time_zone_names_path.append("timeZoneNames.json"sv);
|
||||
|
@ -1577,7 +1577,7 @@ static ErrorOr<void> parse_time_zone_names(String locale_time_zone_names_path, C
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_day_periods(String core_path, CLDR& cldr)
|
||||
static ErrorOr<void> parse_day_periods(DeprecatedString core_path, CLDR& cldr)
|
||||
{
|
||||
// https://unicode.org/reports/tr35/tr35-dates.html#Day_Period_Rule_Sets
|
||||
LexicalPath day_periods_path(move(core_path));
|
||||
|
@ -1633,7 +1633,7 @@ static ErrorOr<void> parse_day_periods(String core_path, CLDR& cldr)
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_all_locales(String core_path, String dates_path, CLDR& cldr)
|
||||
static ErrorOr<void> parse_all_locales(DeprecatedString core_path, DeprecatedString dates_path, CLDR& cldr)
|
||||
{
|
||||
TRY(parse_hour_cycles(core_path, cldr));
|
||||
TRY(parse_week_data(core_path, cldr));
|
||||
|
@ -1641,7 +1641,7 @@ static ErrorOr<void> parse_all_locales(String core_path, String dates_path, CLDR
|
|||
|
||||
auto dates_iterator = TRY(path_to_dir_iterator(move(dates_path)));
|
||||
|
||||
auto remove_variants_from_path = [&](String path) -> ErrorOr<String> {
|
||||
auto remove_variants_from_path = [&](DeprecatedString path) -> ErrorOr<DeprecatedString> {
|
||||
auto parsed_locale = TRY(CanonicalLanguageID::parse(cldr.unique_strings, LexicalPath::basename(path)));
|
||||
|
||||
StringBuilder builder;
|
||||
|
@ -1673,15 +1673,15 @@ static ErrorOr<void> parse_all_locales(String core_path, String dates_path, CLDR
|
|||
return {};
|
||||
}
|
||||
|
||||
static String format_identifier(StringView owner, String identifier)
|
||||
static DeprecatedString format_identifier(StringView owner, DeprecatedString identifier)
|
||||
{
|
||||
identifier = identifier.replace("-"sv, "_"sv, ReplaceMode::All);
|
||||
identifier = identifier.replace("/"sv, "_"sv, ReplaceMode::All);
|
||||
|
||||
if (all_of(identifier, is_ascii_digit))
|
||||
return String::formatted("{}_{}", owner[0], identifier);
|
||||
return DeprecatedString::formatted("{}_{}", owner[0], identifier);
|
||||
if (is_ascii_lower_alpha(identifier[0]))
|
||||
return String::formatted("{:c}{}", to_ascii_uppercase(identifier[0]), identifier.substring_view(1));
|
||||
return DeprecatedString::formatted("{:c}{}", to_ascii_uppercase(identifier[0]), identifier.substring_view(1));
|
||||
return identifier;
|
||||
}
|
||||
|
||||
|
@ -1937,9 +1937,9 @@ struct DayPeriodData {
|
|||
cldr.unique_day_period_lists.generate(generator, cldr.unique_day_periods.type_that_fits(), "s_day_period_lists"sv);
|
||||
cldr.unique_hour_cycle_lists.generate(generator, cldr.unique_hour_cycle_lists.type_that_fits(), "s_hour_cycle_lists"sv);
|
||||
|
||||
auto append_calendars = [&](String name, auto const& calendars) {
|
||||
auto append_calendars = [&](DeprecatedString name, auto const& calendars) {
|
||||
generator.set("name", name);
|
||||
generator.set("size", String::number(calendars.size()));
|
||||
generator.set("size", DeprecatedString::number(calendars.size()));
|
||||
|
||||
generator.append(R"~~~(
|
||||
static constexpr Array<@calendar_index_type@, @size@> @name@ { {)~~~");
|
||||
|
@ -1949,7 +1949,7 @@ static constexpr Array<@calendar_index_type@, @size@> @name@ { {)~~~");
|
|||
auto calendar = calendars.find(calendar_key)->value;
|
||||
|
||||
generator.append(first ? " "sv : ", "sv);
|
||||
generator.append(String::number(calendar));
|
||||
generator.append(DeprecatedString::number(calendar));
|
||||
first = false;
|
||||
}
|
||||
|
||||
|
@ -1959,7 +1959,7 @@ static constexpr Array<@calendar_index_type@, @size@> @name@ { {)~~~");
|
|||
auto append_mapping = [&](auto const& keys, auto const& map, auto type, auto name, auto mapping_getter) {
|
||||
generator.set("type", type);
|
||||
generator.set("name", name);
|
||||
generator.set("size", String::number(keys.size()));
|
||||
generator.set("size", DeprecatedString::number(keys.size()));
|
||||
|
||||
generator.append(R"~~~(
|
||||
static constexpr Array<@type@, @size@> @name@ { {)~~~");
|
||||
|
@ -1970,7 +1970,7 @@ static constexpr Array<@type@, @size@> @name@ { {)~~~");
|
|||
auto mapping = mapping_getter(value);
|
||||
|
||||
generator.append(first ? " "sv : ", "sv);
|
||||
generator.append(String::number(mapping));
|
||||
generator.append(DeprecatedString::number(mapping));
|
||||
first = false;
|
||||
}
|
||||
|
||||
|
@ -1992,7 +1992,7 @@ static constexpr Array<@type@, @size@> @name@ { {)~~~");
|
|||
generator.append("\n");
|
||||
|
||||
auto append_from_string = [&](StringView enum_title, StringView enum_snake, auto const& values, Vector<Alias> const& aliases = {}) {
|
||||
HashValueMap<String> hashes;
|
||||
HashValueMap<DeprecatedString> hashes;
|
||||
hashes.ensure_capacity(values.size());
|
||||
|
||||
for (auto const& value : values)
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "../LibUnicode/GeneratorUtil.h" // FIXME: Move this somewhere common.
|
||||
#include <AK/AllOf.h>
|
||||
#include <AK/CharacterTypes.h>
|
||||
#include <AK/DeprecatedString.h>
|
||||
#include <AK/Format.h>
|
||||
#include <AK/HashMap.h>
|
||||
#include <AK/JsonObject.h>
|
||||
|
@ -15,21 +16,20 @@
|
|||
#include <AK/LexicalPath.h>
|
||||
#include <AK/QuickSort.h>
|
||||
#include <AK/SourceGenerator.h>
|
||||
#include <AK/String.h>
|
||||
#include <AK/StringBuilder.h>
|
||||
#include <LibCore/ArgsParser.h>
|
||||
#include <LibCore/DirIterator.h>
|
||||
#include <LibCore/File.h>
|
||||
#include <LibCore/Stream.h>
|
||||
|
||||
static String format_identifier(StringView owner, String identifier)
|
||||
static DeprecatedString format_identifier(StringView owner, DeprecatedString identifier)
|
||||
{
|
||||
identifier = identifier.replace("-"sv, "_"sv, ReplaceMode::All);
|
||||
|
||||
if (all_of(identifier, is_ascii_digit))
|
||||
return String::formatted("{}_{}", owner[0], identifier);
|
||||
return DeprecatedString::formatted("{}_{}", owner[0], identifier);
|
||||
if (is_ascii_lower_alpha(identifier[0]))
|
||||
return String::formatted("{:c}{}", to_ascii_uppercase(identifier[0]), identifier.substring_view(1));
|
||||
return DeprecatedString::formatted("{:c}{}", to_ascii_uppercase(identifier[0]), identifier.substring_view(1));
|
||||
return identifier;
|
||||
}
|
||||
|
||||
|
@ -153,9 +153,9 @@ using KeywordList = Vector<size_t>;
|
|||
using ListPatternList = Vector<size_t>;
|
||||
|
||||
struct LocaleData {
|
||||
String language;
|
||||
Optional<String> territory;
|
||||
Optional<String> variant;
|
||||
DeprecatedString language;
|
||||
Optional<DeprecatedString> territory;
|
||||
Optional<DeprecatedString> variant;
|
||||
size_t display_patterns { 0 };
|
||||
size_t languages { 0 };
|
||||
size_t territories { 0 };
|
||||
|
@ -195,15 +195,15 @@ struct CLDR {
|
|||
UniqueStorage<ListPatternList> unique_list_pattern_lists;
|
||||
UniqueStorage<TextLayout> unique_text_layouts;
|
||||
|
||||
HashMap<String, LocaleData> locales;
|
||||
HashMap<DeprecatedString, LocaleData> locales;
|
||||
Vector<Alias> locale_aliases;
|
||||
|
||||
Vector<String> languages;
|
||||
Vector<String> territories;
|
||||
Vector<String> scripts;
|
||||
Vector<String> variants;
|
||||
Vector<String> currencies;
|
||||
Vector<String> date_fields;
|
||||
Vector<DeprecatedString> languages;
|
||||
Vector<DeprecatedString> territories;
|
||||
Vector<DeprecatedString> scripts;
|
||||
Vector<DeprecatedString> variants;
|
||||
Vector<DeprecatedString> currencies;
|
||||
Vector<DeprecatedString> date_fields;
|
||||
Vector<Alias> date_field_aliases {
|
||||
// ECMA-402 and the CLDR refer to some date fields with different names. Defining these aliases
|
||||
// means we can remain agnostic about the naming differences elsewhere.
|
||||
|
@ -212,17 +212,17 @@ struct CLDR {
|
|||
{ "zone"sv, "timeZoneName"sv },
|
||||
};
|
||||
|
||||
HashMap<String, Vector<String>> keywords;
|
||||
HashMap<String, Vector<Alias>> keyword_aliases;
|
||||
HashMap<String, String> keyword_names;
|
||||
HashMap<DeprecatedString, Vector<DeprecatedString>> keywords;
|
||||
HashMap<DeprecatedString, Vector<Alias>> keyword_aliases;
|
||||
HashMap<DeprecatedString, DeprecatedString> keyword_names;
|
||||
|
||||
Vector<String> list_pattern_types;
|
||||
Vector<String> character_orders;
|
||||
HashMap<String, size_t> language_aliases;
|
||||
HashMap<String, size_t> territory_aliases;
|
||||
HashMap<String, size_t> script_aliases;
|
||||
HashMap<String, size_t> variant_aliases;
|
||||
HashMap<String, size_t> subdivision_aliases;
|
||||
Vector<DeprecatedString> list_pattern_types;
|
||||
Vector<DeprecatedString> character_orders;
|
||||
HashMap<DeprecatedString, size_t> language_aliases;
|
||||
HashMap<DeprecatedString, size_t> territory_aliases;
|
||||
HashMap<DeprecatedString, size_t> script_aliases;
|
||||
HashMap<DeprecatedString, size_t> variant_aliases;
|
||||
HashMap<DeprecatedString, size_t> subdivision_aliases;
|
||||
Vector<LanguageMapping> complex_mappings;
|
||||
Vector<LanguageMapping> likely_subtags;
|
||||
size_t max_variant_size { 0 };
|
||||
|
@ -245,7 +245,7 @@ static ErrorOr<LanguageMapping> parse_language_mapping(CLDR& cldr, StringView ke
|
|||
return LanguageMapping { move(parsed_key), move(parsed_alias) };
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_core_aliases(String core_supplemental_path, CLDR& cldr)
|
||||
static ErrorOr<void> parse_core_aliases(DeprecatedString core_supplemental_path, CLDR& cldr)
|
||||
{
|
||||
LexicalPath core_aliases_path(move(core_supplemental_path));
|
||||
core_aliases_path = core_aliases_path.append("aliases.json"sv);
|
||||
|
@ -279,7 +279,7 @@ static ErrorOr<void> parse_core_aliases(String core_supplemental_path, CLDR& cld
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_likely_subtags(String core_supplemental_path, CLDR& cldr)
|
||||
static ErrorOr<void> parse_likely_subtags(DeprecatedString core_supplemental_path, CLDR& cldr)
|
||||
{
|
||||
LexicalPath likely_subtags_path(move(core_supplemental_path));
|
||||
likely_subtags_path = likely_subtags_path.append("likelySubtags.json"sv);
|
||||
|
@ -298,7 +298,7 @@ static ErrorOr<void> parse_likely_subtags(String core_supplemental_path, CLDR& c
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_identity(String locale_path, CLDR& cldr, LocaleData& locale)
|
||||
static ErrorOr<void> parse_identity(DeprecatedString locale_path, CLDR& cldr, LocaleData& locale)
|
||||
{
|
||||
LexicalPath languages_path(move(locale_path)); // Note: Every JSON file defines identity data, so we can use any of them.
|
||||
languages_path = languages_path.append("languages.json"sv);
|
||||
|
@ -335,7 +335,7 @@ static ErrorOr<void> parse_identity(String locale_path, CLDR& cldr, LocaleData&
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_locale_display_patterns(String locale_path, CLDR& cldr, LocaleData& locale)
|
||||
static ErrorOr<void> parse_locale_display_patterns(DeprecatedString locale_path, CLDR& cldr, LocaleData& locale)
|
||||
{
|
||||
LexicalPath locale_display_names_path(move(locale_path));
|
||||
locale_display_names_path = locale_display_names_path.append("localeDisplayNames.json"sv);
|
||||
|
@ -356,7 +356,7 @@ static ErrorOr<void> parse_locale_display_patterns(String locale_path, CLDR& cld
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> preprocess_languages(String locale_path, CLDR& cldr)
|
||||
static ErrorOr<void> preprocess_languages(DeprecatedString locale_path, CLDR& cldr)
|
||||
{
|
||||
LexicalPath languages_path(move(locale_path));
|
||||
languages_path = languages_path.append("languages.json"sv);
|
||||
|
@ -375,7 +375,7 @@ static ErrorOr<void> preprocess_languages(String locale_path, CLDR& cldr)
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_unicode_extension_keywords(String bcp47_path, CLDR& cldr)
|
||||
static ErrorOr<void> parse_unicode_extension_keywords(DeprecatedString bcp47_path, CLDR& cldr)
|
||||
{
|
||||
constexpr auto desired_keywords = Array { "ca"sv, "co"sv, "hc"sv, "kf"sv, "kn"sv, "nu"sv };
|
||||
auto keywords = TRY(read_json_file(bcp47_path));
|
||||
|
@ -426,7 +426,7 @@ static ErrorOr<void> parse_unicode_extension_keywords(String bcp47_path, CLDR& c
|
|||
return {};
|
||||
}
|
||||
|
||||
static Optional<String> find_keyword_alias(StringView key, StringView calendar, CLDR& cldr)
|
||||
static Optional<DeprecatedString> find_keyword_alias(StringView key, StringView calendar, CLDR& cldr)
|
||||
{
|
||||
auto it = cldr.keyword_aliases.find(key);
|
||||
if (it == cldr.keyword_aliases.end())
|
||||
|
@ -439,7 +439,7 @@ static Optional<String> find_keyword_alias(StringView key, StringView calendar,
|
|||
return alias->name;
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_locale_languages(String locale_path, CLDR& cldr, LocaleData& locale)
|
||||
static ErrorOr<void> parse_locale_languages(DeprecatedString locale_path, CLDR& cldr, LocaleData& locale)
|
||||
{
|
||||
LexicalPath languages_path(move(locale_path));
|
||||
languages_path = languages_path.append("languages.json"sv);
|
||||
|
@ -465,7 +465,7 @@ static ErrorOr<void> parse_locale_languages(String locale_path, CLDR& cldr, Loca
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_locale_territories(String locale_path, CLDR& cldr, LocaleData& locale)
|
||||
static ErrorOr<void> parse_locale_territories(DeprecatedString locale_path, CLDR& cldr, LocaleData& locale)
|
||||
{
|
||||
LexicalPath territories_path(move(locale_path));
|
||||
territories_path = territories_path.append("territories.json"sv);
|
||||
|
@ -488,7 +488,7 @@ static ErrorOr<void> parse_locale_territories(String locale_path, CLDR& cldr, Lo
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_locale_scripts(String locale_path, CLDR& cldr, LocaleData& locale)
|
||||
static ErrorOr<void> parse_locale_scripts(DeprecatedString locale_path, CLDR& cldr, LocaleData& locale)
|
||||
{
|
||||
LexicalPath scripts_path(move(locale_path));
|
||||
scripts_path = scripts_path.append("scripts.json"sv);
|
||||
|
@ -511,7 +511,7 @@ static ErrorOr<void> parse_locale_scripts(String locale_path, CLDR& cldr, Locale
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_locale_list_patterns(String misc_path, CLDR& cldr, LocaleData& locale)
|
||||
static ErrorOr<void> parse_locale_list_patterns(DeprecatedString misc_path, CLDR& cldr, LocaleData& locale)
|
||||
{
|
||||
LexicalPath list_patterns_path(move(misc_path));
|
||||
list_patterns_path = list_patterns_path.append("listPatterns.json"sv);
|
||||
|
@ -562,7 +562,7 @@ static ErrorOr<void> parse_locale_list_patterns(String misc_path, CLDR& cldr, Lo
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_locale_layout(String misc_path, CLDR& cldr, LocaleData& locale)
|
||||
static ErrorOr<void> parse_locale_layout(DeprecatedString misc_path, CLDR& cldr, LocaleData& locale)
|
||||
{
|
||||
LexicalPath layout_path(move(misc_path));
|
||||
layout_path = layout_path.append("layout.json"sv);
|
||||
|
@ -594,7 +594,7 @@ static ErrorOr<void> parse_locale_layout(String misc_path, CLDR& cldr, LocaleDat
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_locale_currencies(String numbers_path, CLDR& cldr, LocaleData& locale)
|
||||
static ErrorOr<void> parse_locale_currencies(DeprecatedString numbers_path, CLDR& cldr, LocaleData& locale)
|
||||
{
|
||||
LexicalPath currencies_path(move(numbers_path));
|
||||
currencies_path = currencies_path.append("currencies.json"sv);
|
||||
|
@ -642,7 +642,7 @@ static ErrorOr<void> parse_locale_currencies(String numbers_path, CLDR& cldr, Lo
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_locale_calendars(String locale_path, CLDR& cldr, LocaleData& locale)
|
||||
static ErrorOr<void> parse_locale_calendars(DeprecatedString locale_path, CLDR& cldr, LocaleData& locale)
|
||||
{
|
||||
LexicalPath locale_display_names_path(move(locale_path));
|
||||
locale_display_names_path = locale_display_names_path.append("localeDisplayNames.json"sv);
|
||||
|
@ -673,7 +673,7 @@ static ErrorOr<void> parse_locale_calendars(String locale_path, CLDR& cldr, Loca
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_locale_date_fields(String dates_path, CLDR& cldr, LocaleData& locale)
|
||||
static ErrorOr<void> parse_locale_date_fields(DeprecatedString dates_path, CLDR& cldr, LocaleData& locale)
|
||||
{
|
||||
LexicalPath date_fields_path(move(dates_path));
|
||||
date_fields_path = date_fields_path.append("dateFields.json"sv);
|
||||
|
@ -714,8 +714,8 @@ static ErrorOr<void> parse_locale_date_fields(String dates_path, CLDR& cldr, Loc
|
|||
return;
|
||||
|
||||
auto const& long_name = value.as_object().get("displayName"sv);
|
||||
auto const& short_name = fields_object.as_object().get(String::formatted("{}-short", key)).as_object().get("displayName"sv);
|
||||
auto const& narrow_name = fields_object.as_object().get(String::formatted("{}-narrow", key)).as_object().get("displayName"sv);
|
||||
auto const& short_name = fields_object.as_object().get(DeprecatedString::formatted("{}-short", key)).as_object().get("displayName"sv);
|
||||
auto const& narrow_name = fields_object.as_object().get(DeprecatedString::formatted("{}-narrow", key)).as_object().get("displayName"sv);
|
||||
|
||||
auto index = cldr.date_fields.find_first_index(key).value();
|
||||
long_date_fields[index] = cldr.unique_strings.ensure(long_name.as_string());
|
||||
|
@ -729,7 +729,7 @@ static ErrorOr<void> parse_locale_date_fields(String dates_path, CLDR& cldr, Loc
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_number_system_keywords(String locale_numbers_path, CLDR& cldr, LocaleData& locale)
|
||||
static ErrorOr<void> parse_number_system_keywords(DeprecatedString locale_numbers_path, CLDR& cldr, LocaleData& locale)
|
||||
{
|
||||
LexicalPath numbers_path(move(locale_numbers_path));
|
||||
numbers_path = numbers_path.append("numbers.json"sv);
|
||||
|
@ -743,7 +743,7 @@ static ErrorOr<void> parse_number_system_keywords(String locale_numbers_path, CL
|
|||
|
||||
KeywordList keywords {};
|
||||
|
||||
auto append_numbering_system = [&](String system_name) {
|
||||
auto append_numbering_system = [&](DeprecatedString system_name) {
|
||||
if (auto system_alias = find_keyword_alias("nu"sv, system_name, cldr); system_alias.has_value())
|
||||
system_name = system_alias.release_value();
|
||||
|
||||
|
@ -768,7 +768,7 @@ static ErrorOr<void> parse_number_system_keywords(String locale_numbers_path, CL
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_calendar_keywords(String locale_dates_path, CLDR& cldr, LocaleData& locale)
|
||||
static ErrorOr<void> parse_calendar_keywords(DeprecatedString locale_dates_path, CLDR& cldr, LocaleData& locale)
|
||||
{
|
||||
auto calendars_iterator = TRY(path_to_dir_iterator(locale_dates_path, {}));
|
||||
KeywordList keywords {};
|
||||
|
@ -833,7 +833,7 @@ static void fill_in_collation_keywords(CLDR& cldr, LocaleData& locale)
|
|||
locale.collation_numeric_keywords = kn_index;
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_default_content_locales(String core_path, CLDR& cldr)
|
||||
static ErrorOr<void> parse_default_content_locales(DeprecatedString core_path, CLDR& cldr)
|
||||
{
|
||||
LexicalPath default_content_path(move(core_path));
|
||||
default_content_path = default_content_path.append("defaultContent.json"sv);
|
||||
|
@ -882,7 +882,7 @@ static ErrorOr<void> define_aliases_without_scripts(CLDR& cldr)
|
|||
if ((parsed_locale.language == 0) || (parsed_locale.script == 0) || (parsed_locale.region == 0))
|
||||
return {};
|
||||
|
||||
auto locale_without_script = String::formatted("{}-{}",
|
||||
auto locale_without_script = DeprecatedString::formatted("{}-{}",
|
||||
cldr.unique_strings.get(parsed_locale.language),
|
||||
cldr.unique_strings.get(parsed_locale.region));
|
||||
|
||||
|
@ -907,7 +907,7 @@ static ErrorOr<void> define_aliases_without_scripts(CLDR& cldr)
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_all_locales(String bcp47_path, String core_path, String locale_names_path, String misc_path, String numbers_path, String dates_path, CLDR& cldr)
|
||||
static ErrorOr<void> parse_all_locales(DeprecatedString bcp47_path, DeprecatedString core_path, DeprecatedString locale_names_path, DeprecatedString misc_path, DeprecatedString numbers_path, DeprecatedString dates_path, CLDR& cldr)
|
||||
{
|
||||
auto bcp47_iterator = TRY(path_to_dir_iterator(move(bcp47_path), "bcp47"sv));
|
||||
auto identity_iterator = TRY(path_to_dir_iterator(locale_names_path));
|
||||
|
@ -924,7 +924,7 @@ static ErrorOr<void> parse_all_locales(String bcp47_path, String core_path, Stri
|
|||
TRY(parse_core_aliases(core_supplemental_path.string(), cldr));
|
||||
TRY(parse_likely_subtags(core_supplemental_path.string(), cldr));
|
||||
|
||||
auto remove_variants_from_path = [&](String path) -> ErrorOr<String> {
|
||||
auto remove_variants_from_path = [&](DeprecatedString path) -> ErrorOr<DeprecatedString> {
|
||||
auto parsed_locale = TRY(CanonicalLanguageID::parse(cldr.unique_strings, LexicalPath::basename(path)));
|
||||
|
||||
StringBuilder builder;
|
||||
|
@ -1034,7 +1034,7 @@ namespace Locale {
|
|||
|
||||
for (auto& keyword : cldr.keywords) {
|
||||
auto const& keyword_name = cldr.keyword_names.find(keyword.key)->value;
|
||||
auto enum_name = String::formatted("Keyword{}", format_identifier({}, keyword_name));
|
||||
auto enum_name = DeprecatedString::formatted("Keyword{}", format_identifier({}, keyword_name));
|
||||
|
||||
if (auto aliases = cldr.keyword_aliases.find(keyword.key); aliases != cldr.keyword_aliases.end())
|
||||
generate_enum(generator, format_identifier, enum_name, {}, keyword.value, aliases->value);
|
||||
|
@ -1057,9 +1057,9 @@ static ErrorOr<void> generate_unicode_locale_implementation(Core::Stream::Buffer
|
|||
StringBuilder builder;
|
||||
SourceGenerator generator { builder };
|
||||
generator.set("string_index_type"sv, string_index_type);
|
||||
generator.set("locales_size"sv, String::number(cldr.locales.size()));
|
||||
generator.set("territories_size", String::number(cldr.territories.size()));
|
||||
generator.set("variants_size", String::number(cldr.max_variant_size));
|
||||
generator.set("locales_size"sv, DeprecatedString::number(cldr.locales.size()));
|
||||
generator.set("territories_size", DeprecatedString::number(cldr.territories.size()));
|
||||
generator.set("variants_size", DeprecatedString::number(cldr.max_variant_size));
|
||||
|
||||
generator.append(R"~~~(
|
||||
#include <AK/Array.h>
|
||||
|
@ -1162,7 +1162,7 @@ Span<StringView const> get_available_keyword_values(StringView key)
|
|||
cldr.unique_text_layouts.generate(generator, "TextLayout"sv, "s_text_layouts"sv, 30);
|
||||
|
||||
auto append_index = [&](auto index) {
|
||||
generator.append(String::formatted(", {}", index));
|
||||
generator.append(DeprecatedString::formatted(", {}", index));
|
||||
};
|
||||
|
||||
auto append_list_and_size = [&](auto const& list) {
|
||||
|
@ -1175,16 +1175,16 @@ Span<StringView const> get_available_keyword_values(StringView key)
|
|||
generator.append(", {");
|
||||
for (auto const& item : list) {
|
||||
generator.append(first ? " "sv : ", "sv);
|
||||
generator.append(String::number(item));
|
||||
generator.append(DeprecatedString::number(item));
|
||||
first = false;
|
||||
}
|
||||
generator.append(String::formatted(" }}, {}", list.size()));
|
||||
generator.append(DeprecatedString::formatted(" }}, {}", list.size()));
|
||||
};
|
||||
|
||||
auto append_mapping = [&](auto const& keys, auto const& map, auto type, auto name, auto mapping_getter) {
|
||||
generator.set("type", type);
|
||||
generator.set("name", name);
|
||||
generator.set("size", String::number(keys.size()));
|
||||
generator.set("size", DeprecatedString::number(keys.size()));
|
||||
|
||||
generator.append(R"~~~(
|
||||
static constexpr Array<@type@, @size@> @name@ { {)~~~");
|
||||
|
@ -1195,7 +1195,7 @@ static constexpr Array<@type@, @size@> @name@ { {)~~~");
|
|||
auto mapping = mapping_getter(value);
|
||||
|
||||
generator.append(first ? " "sv : ", "sv);
|
||||
generator.append(String::number(mapping));
|
||||
generator.append(DeprecatedString::number(mapping));
|
||||
first = false;
|
||||
}
|
||||
|
||||
|
@ -1243,7 +1243,7 @@ struct CanonicalLanguageID {
|
|||
return language_id;
|
||||
}
|
||||
|
||||
bool matches_variants(Vector<String> const& other_variants) const {
|
||||
bool matches_variants(Vector<DeprecatedString> const& other_variants) const {
|
||||
if (variants_size == 0)
|
||||
return true;
|
||||
if (other_variants.size() != variants_size)
|
||||
|
@ -1272,7 +1272,7 @@ struct LanguageMapping {
|
|||
)~~~");
|
||||
|
||||
auto append_complex_mapping = [&](StringView name, auto& mappings) {
|
||||
generator.set("size", String::number(mappings.size()));
|
||||
generator.set("size", DeprecatedString::number(mappings.size()));
|
||||
generator.set("name"sv, name);
|
||||
|
||||
generator.append(R"~~~(
|
||||
|
@ -1292,14 +1292,14 @@ static constexpr Array<LanguageMapping, @size@> s_@name@ { {
|
|||
});
|
||||
|
||||
for (auto const& mapping : mappings) {
|
||||
generator.set("language"sv, String::number(mapping.key.language));
|
||||
generator.set("language"sv, DeprecatedString::number(mapping.key.language));
|
||||
generator.append(" { { @language@");
|
||||
|
||||
append_index(mapping.key.script);
|
||||
append_index(mapping.key.region);
|
||||
append_list_and_size(mapping.key.variants);
|
||||
|
||||
generator.set("language"sv, String::number(mapping.alias.language));
|
||||
generator.set("language"sv, DeprecatedString::number(mapping.alias.language));
|
||||
generator.append(" }, { @language@");
|
||||
|
||||
append_index(mapping.alias.script);
|
||||
|
@ -1439,7 +1439,7 @@ Optional<StringView> get_locale_@enum_snake@_mapping(StringView locale, StringVi
|
|||
};
|
||||
|
||||
auto append_from_string = [&](StringView enum_title, StringView enum_snake, auto const& values, Vector<Alias> const& aliases = {}) {
|
||||
HashValueMap<String> hashes;
|
||||
HashValueMap<DeprecatedString> hashes;
|
||||
hashes.ensure_capacity(values.size());
|
||||
|
||||
for (auto const& value : values)
|
||||
|
@ -1493,8 +1493,8 @@ Optional<StringView> get_locale_@enum_snake@_mapping(StringView locale, StringVi
|
|||
|
||||
for (auto const& keyword : cldr.keywords) {
|
||||
auto const& keyword_name = cldr.keyword_names.find(keyword.key)->value;
|
||||
auto enum_name = String::formatted("Keyword{}", format_identifier({}, keyword_name));
|
||||
auto enum_snake = String::formatted("keyword_{}", keyword.key);
|
||||
auto enum_name = DeprecatedString::formatted("Keyword{}", format_identifier({}, keyword_name));
|
||||
auto enum_snake = DeprecatedString::formatted("keyword_{}", keyword.key);
|
||||
|
||||
if (auto aliases = cldr.keyword_aliases.find(keyword.key); aliases != cldr.keyword_aliases.end())
|
||||
append_from_string(enum_name, enum_snake, keyword.value, aliases->value);
|
||||
|
@ -1728,7 +1728,7 @@ Optional<LanguageID> add_likely_subtags(LanguageID const& language_id)
|
|||
return maximized;
|
||||
}
|
||||
|
||||
Optional<String> resolve_most_likely_territory(LanguageID const& language_id)
|
||||
Optional<DeprecatedString> resolve_most_likely_territory(LanguageID const& language_id)
|
||||
{
|
||||
if (auto const* likely_subtag = resolve_likely_subtag(language_id); likely_subtag != nullptr)
|
||||
return decode_string(likely_subtag->alias.region);
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include <AK/AllOf.h>
|
||||
#include <AK/Array.h>
|
||||
#include <AK/CharacterTypes.h>
|
||||
#include <AK/DeprecatedString.h>
|
||||
#include <AK/Find.h>
|
||||
#include <AK/Format.h>
|
||||
#include <AK/HashFunctions.h>
|
||||
|
@ -18,7 +19,6 @@
|
|||
#include <AK/LexicalPath.h>
|
||||
#include <AK/QuickSort.h>
|
||||
#include <AK/SourceGenerator.h>
|
||||
#include <AK/String.h>
|
||||
#include <AK/StringBuilder.h>
|
||||
#include <AK/Traits.h>
|
||||
#include <AK/Utf8View.h>
|
||||
|
@ -220,7 +220,7 @@ struct AK::Traits<Unit> : public GenericTraits<Unit> {
|
|||
|
||||
struct LocaleData {
|
||||
Vector<size_t> number_systems;
|
||||
HashMap<String, size_t> units {};
|
||||
HashMap<DeprecatedString, size_t> units {};
|
||||
u8 minimum_grouping_digits { 0 };
|
||||
};
|
||||
|
||||
|
@ -232,14 +232,14 @@ struct CLDR {
|
|||
UniqueStorage<NumberSystem> unique_systems;
|
||||
UniqueStorage<Unit> unique_units;
|
||||
|
||||
HashMap<String, Array<u32, 10>> number_system_digits;
|
||||
Vector<String> number_systems;
|
||||
HashMap<DeprecatedString, Array<u32, 10>> number_system_digits;
|
||||
Vector<DeprecatedString> number_systems;
|
||||
|
||||
HashMap<String, LocaleData> locales;
|
||||
HashMap<DeprecatedString, LocaleData> locales;
|
||||
size_t max_identifier_count { 0 };
|
||||
};
|
||||
|
||||
static ErrorOr<void> parse_number_system_digits(String core_supplemental_path, CLDR& cldr)
|
||||
static ErrorOr<void> parse_number_system_digits(DeprecatedString core_supplemental_path, CLDR& cldr)
|
||||
{
|
||||
LexicalPath number_systems_path(move(core_supplemental_path));
|
||||
number_systems_path = number_systems_path.append("numberingSystems.json"sv);
|
||||
|
@ -271,7 +271,7 @@ static ErrorOr<void> parse_number_system_digits(String core_supplemental_path, C
|
|||
return {};
|
||||
}
|
||||
|
||||
static String parse_identifiers(String pattern, StringView replacement, CLDR& cldr, NumberFormat& format)
|
||||
static DeprecatedString parse_identifiers(DeprecatedString pattern, StringView replacement, CLDR& cldr, NumberFormat& format)
|
||||
{
|
||||
static constexpr Utf8View whitespace { "\u0020\u00a0\u200f"sv };
|
||||
|
||||
|
@ -317,7 +317,7 @@ static String parse_identifiers(String pattern, StringView replacement, CLDR& cl
|
|||
cldr.max_identifier_count = max(cldr.max_identifier_count, format.identifier_indices.size());
|
||||
}
|
||||
|
||||
pattern = String::formatted("{}{{{}:{}}}{}",
|
||||
pattern = DeprecatedString::formatted("{}{{{}:{}}}{}",
|
||||
*start_index > 0 ? pattern.substring_view(0, *start_index) : ""sv,
|
||||
replacement,
|
||||
replacement_index,
|
||||
|
@ -325,13 +325,13 @@ static String parse_identifiers(String pattern, StringView replacement, CLDR& cl
|
|||
}
|
||||
}
|
||||
|
||||
static void parse_number_pattern(Vector<String> patterns, CLDR& cldr, NumberFormatType type, NumberFormat& format, NumberSystem* number_system_for_groupings = nullptr)
|
||||
static void parse_number_pattern(Vector<DeprecatedString> patterns, CLDR& cldr, NumberFormatType type, NumberFormat& format, NumberSystem* number_system_for_groupings = nullptr)
|
||||
{
|
||||
// https://unicode.org/reports/tr35/tr35-numbers.html#Number_Format_Patterns
|
||||
// https://cldr.unicode.org/translation/number-currency-formats/number-and-currency-patterns
|
||||
VERIFY((patterns.size() == 1) || (patterns.size() == 2));
|
||||
|
||||
auto replace_patterns = [&](String pattern) {
|
||||
auto replace_patterns = [&](DeprecatedString pattern) {
|
||||
static HashMap<StringView, StringView> replacements = {
|
||||
{ "{0}"sv, "{number}"sv },
|
||||
{ "{1}"sv, "{currency}"sv },
|
||||
|
@ -345,7 +345,7 @@ static void parse_number_pattern(Vector<String> patterns, CLDR& cldr, NumberForm
|
|||
for (auto const& replacement : replacements)
|
||||
pattern = pattern.replace(replacement.key, replacement.value, ReplaceMode::All);
|
||||
|
||||
if (auto start_number_index = pattern.find_any_of("#0"sv, String::SearchDirection::Forward); start_number_index.has_value()) {
|
||||
if (auto start_number_index = pattern.find_any_of("#0"sv, DeprecatedString::SearchDirection::Forward); start_number_index.has_value()) {
|
||||
auto end_number_index = *start_number_index + 1;
|
||||
|
||||
for (; end_number_index < pattern.length(); ++end_number_index) {
|
||||
|
@ -372,7 +372,7 @@ static void parse_number_pattern(Vector<String> patterns, CLDR& cldr, NumberForm
|
|||
}
|
||||
}
|
||||
|
||||
pattern = String::formatted("{}{{number}}{}",
|
||||
pattern = DeprecatedString::formatted("{}{{number}}{}",
|
||||
*start_number_index > 0 ? pattern.substring_view(0, *start_number_index) : ""sv,
|
||||
pattern.substring_view(end_number_index));
|
||||
|
||||
|
@ -389,19 +389,19 @@ static void parse_number_pattern(Vector<String> patterns, CLDR& cldr, NumberForm
|
|||
};
|
||||
|
||||
auto zero_format = replace_patterns(move(patterns[0]));
|
||||
format.positive_format_index = cldr.unique_strings.ensure(String::formatted("{{plusSign}}{}", zero_format));
|
||||
format.positive_format_index = cldr.unique_strings.ensure(DeprecatedString::formatted("{{plusSign}}{}", zero_format));
|
||||
|
||||
if (patterns.size() == 2) {
|
||||
auto negative_format = replace_patterns(move(patterns[1]));
|
||||
format.negative_format_index = cldr.unique_strings.ensure(move(negative_format));
|
||||
} else {
|
||||
format.negative_format_index = cldr.unique_strings.ensure(String::formatted("{{minusSign}}{}", zero_format));
|
||||
format.negative_format_index = cldr.unique_strings.ensure(DeprecatedString::formatted("{{minusSign}}{}", zero_format));
|
||||
}
|
||||
|
||||
format.zero_format_index = cldr.unique_strings.ensure(move(zero_format));
|
||||
}
|
||||
|
||||
static void parse_number_pattern(Vector<String> patterns, CLDR& cldr, NumberFormatType type, size_t& format_index, NumberSystem* number_system_for_groupings = nullptr)
|
||||
static void parse_number_pattern(Vector<DeprecatedString> patterns, CLDR& cldr, NumberFormatType type, size_t& format_index, NumberSystem* number_system_for_groupings = nullptr)
|
||||
{
|
||||
NumberFormat format {};
|
||||
parse_number_pattern(move(patterns), cldr, type, format, number_system_for_groupings);
|
||||
|
@ -409,7 +409,7 @@ static void parse_number_pattern(Vector<String> patterns, CLDR& cldr, NumberForm
|
|||
format_index = cldr.unique_formats.ensure(move(format));
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_number_systems(String locale_numbers_path, CLDR& cldr, LocaleData& locale)
|
||||
static ErrorOr<void> parse_number_systems(DeprecatedString locale_numbers_path, CLDR& cldr, LocaleData& locale)
|
||||
{
|
||||
LexicalPath numbers_path(move(locale_numbers_path));
|
||||
numbers_path = numbers_path.append("numbers.json"sv);
|
||||
|
@ -522,7 +522,7 @@ static ErrorOr<void> parse_number_systems(String locale_numbers_path, CLDR& cldr
|
|||
|
||||
// The range separator does not appear in the symbols list, we have to extract it from
|
||||
// the range pattern.
|
||||
auto misc_patterns_key = String::formatted("{}{}", misc_patterns_prefix, system);
|
||||
auto misc_patterns_key = DeprecatedString::formatted("{}{}", misc_patterns_prefix, system);
|
||||
auto misc_patterns = locale_numbers_object.as_object().get(misc_patterns_key);
|
||||
auto range_separator = misc_patterns.as_object().get("range"sv).as_string();
|
||||
|
||||
|
@ -594,7 +594,7 @@ static ErrorOr<void> parse_number_systems(String locale_numbers_path, CLDR& cldr
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_units(String locale_units_path, CLDR& cldr, LocaleData& locale)
|
||||
static ErrorOr<void> parse_units(DeprecatedString locale_units_path, CLDR& cldr, LocaleData& locale)
|
||||
{
|
||||
LexicalPath units_path(move(locale_units_path));
|
||||
units_path = units_path.append("units.json"sv);
|
||||
|
@ -607,7 +607,7 @@ static ErrorOr<void> parse_units(String locale_units_path, CLDR& cldr, LocaleDat
|
|||
auto const& short_object = locale_units_object.as_object().get("short"sv);
|
||||
auto const& narrow_object = locale_units_object.as_object().get("narrow"sv);
|
||||
|
||||
HashMap<String, Unit> units;
|
||||
HashMap<DeprecatedString, Unit> units;
|
||||
|
||||
auto ensure_unit = [&](auto const& unit) -> Unit& {
|
||||
return units.ensure(unit, [&]() {
|
||||
|
@ -697,7 +697,7 @@ static ErrorOr<void> parse_units(String locale_units_path, CLDR& cldr, LocaleDat
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_all_locales(String core_path, String numbers_path, String units_path, CLDR& cldr)
|
||||
static ErrorOr<void> parse_all_locales(DeprecatedString core_path, DeprecatedString numbers_path, DeprecatedString units_path, CLDR& cldr)
|
||||
{
|
||||
auto numbers_iterator = TRY(path_to_dir_iterator(move(numbers_path)));
|
||||
auto units_iterator = TRY(path_to_dir_iterator(move(units_path)));
|
||||
|
@ -708,7 +708,7 @@ static ErrorOr<void> parse_all_locales(String core_path, String numbers_path, St
|
|||
|
||||
TRY(parse_number_system_digits(core_supplemental_path.string(), cldr));
|
||||
|
||||
auto remove_variants_from_path = [&](String path) -> ErrorOr<String> {
|
||||
auto remove_variants_from_path = [&](DeprecatedString path) -> ErrorOr<DeprecatedString> {
|
||||
auto parsed_locale = TRY(CanonicalLanguageID::parse(cldr.unique_strings, LexicalPath::basename(path)));
|
||||
|
||||
StringBuilder builder;
|
||||
|
@ -740,7 +740,7 @@ static ErrorOr<void> parse_all_locales(String core_path, String numbers_path, St
|
|||
return {};
|
||||
}
|
||||
|
||||
static String format_identifier(StringView, String identifier)
|
||||
static DeprecatedString format_identifier(StringView, DeprecatedString identifier)
|
||||
{
|
||||
return identifier.to_titlecase();
|
||||
}
|
||||
|
@ -776,7 +776,7 @@ static ErrorOr<void> generate_unicode_locale_implementation(Core::Stream::Buffer
|
|||
generator.set("number_format_index_type"sv, cldr.unique_formats.type_that_fits());
|
||||
generator.set("number_format_list_index_type"sv, cldr.unique_format_lists.type_that_fits());
|
||||
generator.set("numeric_symbol_list_index_type"sv, cldr.unique_symbols.type_that_fits());
|
||||
generator.set("identifier_count", String::number(cldr.max_identifier_count));
|
||||
generator.set("identifier_count", DeprecatedString::number(cldr.max_identifier_count));
|
||||
|
||||
generator.append(R"~~~(
|
||||
#include <AK/Array.h>
|
||||
|
@ -860,22 +860,22 @@ struct Unit {
|
|||
auto locales = cldr.locales.keys();
|
||||
quick_sort(locales);
|
||||
|
||||
generator.set("size", String::number(locales.size()));
|
||||
generator.set("size", DeprecatedString::number(locales.size()));
|
||||
generator.append(R"~~~(
|
||||
static constexpr Array<u8, @size@> s_minimum_grouping_digits { { )~~~");
|
||||
|
||||
bool first = true;
|
||||
for (auto const& locale : locales) {
|
||||
generator.append(first ? " "sv : ", "sv);
|
||||
generator.append(String::number(cldr.locales.find(locale)->value.minimum_grouping_digits));
|
||||
generator.append(DeprecatedString::number(cldr.locales.find(locale)->value.minimum_grouping_digits));
|
||||
first = false;
|
||||
}
|
||||
generator.append(" } };\n");
|
||||
|
||||
auto append_map = [&](String name, auto type, auto const& map) {
|
||||
auto append_map = [&](DeprecatedString name, auto type, auto const& map) {
|
||||
generator.set("name", name);
|
||||
generator.set("type", type);
|
||||
generator.set("size", String::number(map.size()));
|
||||
generator.set("size", DeprecatedString::number(map.size()));
|
||||
|
||||
generator.append(R"~~~(
|
||||
static constexpr Array<@type@, @size@> @name@ { {)~~~");
|
||||
|
@ -884,9 +884,9 @@ static constexpr Array<@type@, @size@> @name@ { {)~~~");
|
|||
for (auto const& item : map) {
|
||||
generator.append(first ? " "sv : ", "sv);
|
||||
if constexpr (requires { item.value; })
|
||||
generator.append(String::number(item.value));
|
||||
generator.append(DeprecatedString::number(item.value));
|
||||
else
|
||||
generator.append(String::number(item));
|
||||
generator.append(DeprecatedString::number(item));
|
||||
first = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
*/
|
||||
|
||||
#include "../LibUnicode/GeneratorUtil.h" // FIXME: Move this somewhere common.
|
||||
#include <AK/DeprecatedString.h>
|
||||
#include <AK/Format.h>
|
||||
#include <AK/JsonObject.h>
|
||||
#include <AK/JsonParser.h>
|
||||
#include <AK/JsonValue.h>
|
||||
#include <AK/LexicalPath.h>
|
||||
#include <AK/SourceGenerator.h>
|
||||
#include <AK/String.h>
|
||||
#include <AK/StringBuilder.h>
|
||||
#include <AK/Variant.h>
|
||||
#include <LibCore/ArgsParser.h>
|
||||
|
@ -19,14 +19,14 @@
|
|||
#include <LibCore/Stream.h>
|
||||
#include <LibLocale/PluralRules.h>
|
||||
|
||||
static String format_identifier(StringView owner, String identifier)
|
||||
static DeprecatedString format_identifier(StringView owner, DeprecatedString identifier)
|
||||
{
|
||||
identifier = identifier.replace("-"sv, "_"sv, ReplaceMode::All);
|
||||
|
||||
if (all_of(identifier, is_ascii_digit))
|
||||
return String::formatted("{}_{}", owner[0], identifier);
|
||||
return DeprecatedString::formatted("{}_{}", owner[0], identifier);
|
||||
if (is_ascii_lower_alpha(identifier[0]))
|
||||
return String::formatted("{:c}{}", to_ascii_uppercase(identifier[0]), identifier.substring_view(1));
|
||||
return DeprecatedString::formatted("{:c}{}", to_ascii_uppercase(identifier[0]), identifier.substring_view(1));
|
||||
return identifier;
|
||||
}
|
||||
|
||||
|
@ -39,20 +39,20 @@ struct Relation {
|
|||
Inequality,
|
||||
};
|
||||
|
||||
String const& modulus_variable_name() const
|
||||
DeprecatedString const& modulus_variable_name() const
|
||||
{
|
||||
VERIFY(modulus.has_value());
|
||||
|
||||
if (!cached_modulus_variable_name.has_value())
|
||||
cached_modulus_variable_name = String::formatted("mod_{}_{}", symbol, *modulus);
|
||||
cached_modulus_variable_name = DeprecatedString::formatted("mod_{}_{}", symbol, *modulus);
|
||||
|
||||
return *cached_modulus_variable_name;
|
||||
}
|
||||
|
||||
String const& exponential_variable_name() const
|
||||
DeprecatedString const& exponential_variable_name() const
|
||||
{
|
||||
if (!cached_exponential_variable_name.has_value())
|
||||
cached_exponential_variable_name = String::formatted("exp_{}", symbol);
|
||||
cached_exponential_variable_name = DeprecatedString::formatted("exp_{}", symbol);
|
||||
|
||||
return *cached_exponential_variable_name;
|
||||
}
|
||||
|
@ -65,25 +65,25 @@ struct Relation {
|
|||
else if (symbol == 'e' || symbol == 'c')
|
||||
generator.append(exponential_variable_name());
|
||||
else
|
||||
generator.append(String::formatted("ops.{}", Locale::PluralOperands::symbol_to_variable_name(symbol)));
|
||||
generator.append(DeprecatedString::formatted("ops.{}", Locale::PluralOperands::symbol_to_variable_name(symbol)));
|
||||
};
|
||||
|
||||
auto append_value = [&](u32 value) {
|
||||
append_variable_name();
|
||||
generator.append(" == "sv);
|
||||
generator.append(String::number(value));
|
||||
generator.append(DeprecatedString::number(value));
|
||||
};
|
||||
|
||||
auto append_range = [&](auto const& range) {
|
||||
// This check avoids generating "0 <= unsigned_value", which is always true.
|
||||
if (range[0] != 0 || Locale::PluralOperands::symbol_requires_floating_point_modulus(symbol)) {
|
||||
generator.append(String::formatted("{} <= ", range[0]));
|
||||
generator.append(DeprecatedString::formatted("{} <= ", range[0]));
|
||||
append_variable_name();
|
||||
generator.append(" && "sv);
|
||||
}
|
||||
|
||||
append_variable_name();
|
||||
generator.append(String::formatted(" <= {}", range[1]));
|
||||
generator.append(DeprecatedString::formatted(" <= {}", range[1]));
|
||||
};
|
||||
|
||||
if (type == Type::Inequality)
|
||||
|
@ -106,7 +106,7 @@ struct Relation {
|
|||
generator.append(")"sv);
|
||||
}
|
||||
|
||||
void generate_precomputed_variables(SourceGenerator& generator, HashTable<String>& generated_variables) const
|
||||
void generate_precomputed_variables(SourceGenerator& generator, HashTable<DeprecatedString>& generated_variables) const
|
||||
{
|
||||
// FIXME: How do we handle the exponential symbols? They seem unused by ECMA-402.
|
||||
if (symbol == 'e' || symbol == 'c') {
|
||||
|
@ -128,7 +128,7 @@ struct Relation {
|
|||
generated_variables.set(variable);
|
||||
generator.set("variable"sv, move(variable));
|
||||
generator.set("operand"sv, Locale::PluralOperands::symbol_to_variable_name(symbol));
|
||||
generator.set("modulus"sv, String::number(*modulus));
|
||||
generator.set("modulus"sv, DeprecatedString::number(*modulus));
|
||||
|
||||
if (Locale::PluralOperands::symbol_requires_floating_point_modulus(symbol)) {
|
||||
generator.append(R"~~~(
|
||||
|
@ -145,8 +145,8 @@ struct Relation {
|
|||
Vector<Comparator> comparators;
|
||||
|
||||
private:
|
||||
mutable Optional<String> cached_modulus_variable_name;
|
||||
mutable Optional<String> cached_exponential_variable_name;
|
||||
mutable Optional<DeprecatedString> cached_modulus_variable_name;
|
||||
mutable Optional<DeprecatedString> cached_exponential_variable_name;
|
||||
};
|
||||
|
||||
struct Condition {
|
||||
|
@ -171,7 +171,7 @@ struct Condition {
|
|||
}
|
||||
}
|
||||
|
||||
void generate_precomputed_variables(SourceGenerator& generator, HashTable<String>& generated_variables) const
|
||||
void generate_precomputed_variables(SourceGenerator& generator, HashTable<DeprecatedString>& generated_variables) const
|
||||
{
|
||||
for (auto const& conjunctions : relations) {
|
||||
for (auto const& relation : conjunctions)
|
||||
|
@ -183,18 +183,18 @@ struct Condition {
|
|||
};
|
||||
|
||||
struct Range {
|
||||
String start;
|
||||
String end;
|
||||
String category;
|
||||
DeprecatedString start;
|
||||
DeprecatedString end;
|
||||
DeprecatedString category;
|
||||
};
|
||||
|
||||
using Conditions = HashMap<String, Condition>;
|
||||
using Conditions = HashMap<DeprecatedString, Condition>;
|
||||
using Ranges = Vector<Range>;
|
||||
|
||||
struct LocaleData {
|
||||
static String generated_method_name(StringView form, StringView locale)
|
||||
static DeprecatedString generated_method_name(StringView form, StringView locale)
|
||||
{
|
||||
return String::formatted("{}_plurality_{}", form, format_identifier({}, locale));
|
||||
return DeprecatedString::formatted("{}_plurality_{}", form, format_identifier({}, locale));
|
||||
}
|
||||
|
||||
Conditions& rules_for_form(StringView form)
|
||||
|
@ -214,7 +214,7 @@ struct LocaleData {
|
|||
struct CLDR {
|
||||
UniqueStringStorage unique_strings;
|
||||
|
||||
HashMap<String, LocaleData> locales;
|
||||
HashMap<DeprecatedString, LocaleData> locales;
|
||||
};
|
||||
|
||||
static Relation parse_relation(StringView relation)
|
||||
|
@ -322,7 +322,7 @@ static void parse_condition(StringView category, StringView rule, Conditions& ru
|
|||
});
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_plural_rules(String core_supplemental_path, StringView file_name, CLDR& cldr)
|
||||
static ErrorOr<void> parse_plural_rules(DeprecatedString core_supplemental_path, StringView file_name, CLDR& cldr)
|
||||
{
|
||||
static constexpr auto form_prefix = "plurals-type-"sv;
|
||||
static constexpr auto rule_prefix = "pluralRule-count-"sv;
|
||||
|
@ -357,7 +357,7 @@ static ErrorOr<void> parse_plural_rules(String core_supplemental_path, StringVie
|
|||
}
|
||||
|
||||
// https://unicode.org/reports/tr35/tr35-numbers.html#Plural_Ranges
|
||||
static ErrorOr<void> parse_plural_ranges(String core_supplemental_path, CLDR& cldr)
|
||||
static ErrorOr<void> parse_plural_ranges(DeprecatedString core_supplemental_path, CLDR& cldr)
|
||||
{
|
||||
static constexpr auto start_segment = "-start-"sv;
|
||||
static constexpr auto end_segment = "-end-"sv;
|
||||
|
@ -393,7 +393,7 @@ static ErrorOr<void> parse_plural_ranges(String core_supplemental_path, CLDR& cl
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_all_locales(String core_path, String locale_names_path, CLDR& cldr)
|
||||
static ErrorOr<void> parse_all_locales(DeprecatedString core_path, DeprecatedString locale_names_path, CLDR& cldr)
|
||||
{
|
||||
auto identity_iterator = TRY(path_to_dir_iterator(move(locale_names_path)));
|
||||
|
||||
|
@ -401,7 +401,7 @@ static ErrorOr<void> parse_all_locales(String core_path, String locale_names_pat
|
|||
core_supplemental_path = core_supplemental_path.append("supplemental"sv);
|
||||
VERIFY(Core::File::is_directory(core_supplemental_path.string()));
|
||||
|
||||
auto remove_variants_from_path = [&](String path) -> ErrorOr<String> {
|
||||
auto remove_variants_from_path = [&](DeprecatedString path) -> ErrorOr<DeprecatedString> {
|
||||
auto parsed_locale = TRY(CanonicalLanguageID::parse(cldr.unique_strings, LexicalPath::basename(path)));
|
||||
|
||||
StringBuilder builder;
|
||||
|
@ -486,7 +486,7 @@ static PluralCategory default_range(PluralCategory, PluralCategory end)
|
|||
return;
|
||||
|
||||
generator.set("method"sv, LocaleData::generated_method_name(form, locale));
|
||||
HashTable<String> generated_variables;
|
||||
HashTable<DeprecatedString> generated_variables;
|
||||
|
||||
generator.append(R"~~~(
|
||||
static PluralCategory @method@([[maybe_unused]] PluralOperands ops)
|
||||
|
@ -541,7 +541,7 @@ static PluralCategory @method@(PluralCategory start, PluralCategory end)
|
|||
generator.set("type"sv, type);
|
||||
generator.set("form"sv, form);
|
||||
generator.set("default"sv, default_);
|
||||
generator.set("size"sv, String::number(locales.size()));
|
||||
generator.set("size"sv, DeprecatedString::number(locales.size()));
|
||||
|
||||
generator.append(R"~~~(
|
||||
static constexpr Array<@type@, @size@> s_@form@_functions { {)~~~");
|
||||
|
@ -566,7 +566,7 @@ static constexpr Array<@type@, @size@> s_@form@_functions { {)~~~");
|
|||
|
||||
auto append_categories = [&](auto const& name, auto const& rules) {
|
||||
generator.set("name", name);
|
||||
generator.set("size", String::number(rules.size() + 1));
|
||||
generator.set("size", DeprecatedString::number(rules.size() + 1));
|
||||
|
||||
generator.append(R"~~~(
|
||||
static constexpr Array<PluralCategory, @size@> @name@ { { PluralCategory::Other)~~~");
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "../LibUnicode/GeneratorUtil.h" // FIXME: Move this somewhere common.
|
||||
#include <AK/DeprecatedString.h>
|
||||
#include <AK/Format.h>
|
||||
#include <AK/HashMap.h>
|
||||
#include <AK/JsonObject.h>
|
||||
|
@ -12,7 +13,6 @@
|
|||
#include <AK/JsonValue.h>
|
||||
#include <AK/LexicalPath.h>
|
||||
#include <AK/SourceGenerator.h>
|
||||
#include <AK/String.h>
|
||||
#include <AK/StringBuilder.h>
|
||||
#include <LibCore/ArgsParser.h>
|
||||
#include <LibCore/DirIterator.h>
|
||||
|
@ -40,9 +40,9 @@ struct RelativeTimeFormat {
|
|||
&& (pattern == other.pattern);
|
||||
}
|
||||
|
||||
String time_unit;
|
||||
String style;
|
||||
String plurality;
|
||||
DeprecatedString time_unit;
|
||||
DeprecatedString style;
|
||||
DeprecatedString plurality;
|
||||
size_t tense_or_number { 0 };
|
||||
size_t pattern { 0 };
|
||||
};
|
||||
|
@ -74,10 +74,10 @@ struct CLDR {
|
|||
UniqueStringStorage unique_strings;
|
||||
UniqueStorage<RelativeTimeFormat> unique_formats;
|
||||
|
||||
HashMap<String, LocaleData> locales;
|
||||
HashMap<DeprecatedString, LocaleData> locales;
|
||||
};
|
||||
|
||||
static ErrorOr<void> parse_date_fields(String locale_dates_path, CLDR& cldr, LocaleData& locale)
|
||||
static ErrorOr<void> parse_date_fields(DeprecatedString locale_dates_path, CLDR& cldr, LocaleData& locale)
|
||||
{
|
||||
LexicalPath date_fields_path(move(locale_dates_path));
|
||||
date_fields_path = date_fields_path.append("dateFields.json"sv);
|
||||
|
@ -136,11 +136,11 @@ static ErrorOr<void> parse_date_fields(String locale_dates_path, CLDR& cldr, Loc
|
|||
return {};
|
||||
}
|
||||
|
||||
static ErrorOr<void> parse_all_locales(String dates_path, CLDR& cldr)
|
||||
static ErrorOr<void> parse_all_locales(DeprecatedString dates_path, CLDR& cldr)
|
||||
{
|
||||
auto dates_iterator = TRY(path_to_dir_iterator(move(dates_path)));
|
||||
|
||||
auto remove_variants_from_path = [&](String path) -> ErrorOr<String> {
|
||||
auto remove_variants_from_path = [&](DeprecatedString path) -> ErrorOr<DeprecatedString> {
|
||||
auto parsed_locale = TRY(CanonicalLanguageID::parse(cldr.unique_strings, LexicalPath::basename(path)));
|
||||
|
||||
StringBuilder builder;
|
||||
|
@ -227,9 +227,9 @@ struct RelativeTimeFormatImpl {
|
|||
|
||||
cldr.unique_formats.generate(generator, "RelativeTimeFormatImpl"sv, "s_relative_time_formats"sv, 10);
|
||||
|
||||
auto append_list = [&](String name, auto const& list) {
|
||||
auto append_list = [&](DeprecatedString name, auto const& list) {
|
||||
generator.set("name", name);
|
||||
generator.set("size", String::number(list.size()));
|
||||
generator.set("size", DeprecatedString::number(list.size()));
|
||||
|
||||
generator.append(R"~~~(
|
||||
static constexpr Array<@relative_time_format_index_type@, @size@> @name@ { {)~~~");
|
||||
|
@ -237,7 +237,7 @@ static constexpr Array<@relative_time_format_index_type@, @size@> @name@ { {)~~~
|
|||
bool first = true;
|
||||
for (auto index : list) {
|
||||
generator.append(first ? " "sv : ", "sv);
|
||||
generator.append(String::number(index));
|
||||
generator.append(DeprecatedString::number(index));
|
||||
first = false;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue