1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 00:27:45 +00:00

LibJS+LibUnicode: Store parsed Unicode locale data as full strings

Originally, it was convenient to store the parsed Unicode locale data as
views into the original string being parsed. But to implement locale
aliases will require mutating the data that was parsed. To prepare for
that, store the parsed data as proper strings.
This commit is contained in:
Timothy Flynn 2021-08-30 14:31:48 -04:00 committed by Linus Groh
parent caf5b6fa6f
commit d13142f015
4 changed files with 22 additions and 22 deletions

View file

@ -17,25 +17,25 @@ namespace Unicode {
struct LanguageID {
bool is_root { false };
Optional<StringView> language {};
Optional<StringView> script {};
Optional<StringView> region {};
Vector<StringView> variants {};
Optional<String> language {};
Optional<String> script {};
Optional<String> region {};
Vector<String> variants {};
};
struct Keyword {
StringView key {};
Vector<StringView> types {};
String key {};
Vector<String> types {};
};
struct LocaleExtension {
Vector<StringView> attributes {};
Vector<String> attributes {};
Vector<Keyword> keywords {};
};
struct TransformedField {
StringView key;
Vector<StringView> values {};
String key;
Vector<String> values {};
};
struct TransformedExtension {
@ -45,7 +45,7 @@ struct TransformedExtension {
struct OtherExtension {
char key {};
Vector<StringView> values {};
Vector<String> values {};
};
using Extension = Variant<LocaleExtension, TransformedExtension, OtherExtension>;
@ -53,7 +53,7 @@ using Extension = Variant<LocaleExtension, TransformedExtension, OtherExtension>
struct LocaleID {
LanguageID language_id {};
Vector<Extension> extensions {};
Vector<StringView> private_use_extensions {};
Vector<String> private_use_extensions {};
};
// Note: These methods only verify that the provided strings match the EBNF grammar of the