diff --git a/Cargo.lock b/Cargo.lock index a3b85c31..594336fc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -742,9 +742,9 @@ dependencies = [ [[package]] name = "icu_casemap" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "070f98b5b82798fcb93654bf96ed9f40064fc44c86f51a09ea711092cd5cc5be" +checksum = "f2edfd120d8445de853cf53a1abec916f638f933a70a6f4bf8f7e2d7b7f884e9" dependencies = [ "icu_casemap_data", "icu_collections", @@ -758,15 +758,15 @@ dependencies = [ [[package]] name = "icu_casemap_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "846b0857ca091204be3c874bc93daaf89d4777e8d2d20b0d3ffe8f671d98014b" +checksum = "059fcda0fc8d33effc6633a8cf0d8a3c17caf7d7c91918fba9918744f501e4e8" [[package]] name = "icu_collections" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +checksum = "fa68d21081c4a05d5a901a1c62add574c77048b6a1c67be3b50ce0b60d4ca513" dependencies = [ "displaydoc", "potential_utf", @@ -779,9 +779,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +checksum = "d56e28588da92eee5c3201a6eff33fabdd49b62269c8938d4ff050ce4d900deb" dependencies = [ "displaydoc", "litemap", @@ -793,10 +793,11 @@ dependencies = [ [[package]] name = "icu_properties" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +checksum = "7e7ca276ad3145661a65914e6daf131ca5120cd3dcee8f8f3214b8875184a148" dependencies = [ + "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", @@ -808,15 +809,15 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" +checksum = "e590f038c1464a96894fd6d10127e90a8be4509f56ff7ecef851b15cee0b7caa" [[package]] name = "icu_provider" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +checksum = "92a7ed671a6aad807a8651a2e1782a6598fda9ce5185dd8158549e95a91c6428" dependencies = [ "displaydoc", "icu_locale_core", @@ -2246,9 +2247,9 @@ checksum = "639ce8ef6d2ba56be0383a94dd13b92138d58de44c62618303bb798fa92bdc00" [[package]] name = "tinystr" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +checksum = "b1e27c91459209c2986af3dcf603a5a74a4368754ce37414f59acc971167f643" dependencies = [ "displaydoc", "serde_core", @@ -2771,9 +2772,9 @@ checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" [[package]] name = "writeable" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" +checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc" [[package]] name = "yoke" @@ -2841,9 +2842,9 @@ dependencies = [ [[package]] name = "zerotrie" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +checksum = "4ea269c3bd32f0a32c321907a2ae912ba6f4649bb0fc764a15627e99a7095a3f" dependencies = [ "displaydoc", "yoke", @@ -2853,9 +2854,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.6" +version = "0.11.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +checksum = "94b5c6b5976d66c1d703c4fd17d3f5e43c8cedaacf604961b171adc7130896d8" dependencies = [ "serde", "yoke", @@ -2865,13 +2866,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +checksum = "47402523226a02bfe5230160dc3ccc089aa6f6f19e7fcbb4e6f824bbb1b4aa62" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.3", ] [[package]] diff --git a/crates/antlr-rust-codegen/src/grammar/unicode.rs b/crates/antlr-rust-codegen/src/grammar/unicode.rs index 61320976..c2b539c9 100644 --- a/crates/antlr-rust-codegen/src/grammar/unicode.rs +++ b/crates/antlr-rust-codegen/src/grammar/unicode.rs @@ -264,10 +264,6 @@ fn binary_property_ranges(name: &str) -> Option> { props::Math, props::ModifierCombiningMark, props::NoncharacterCodePoint, - props::NfcInert, - props::NfdInert, - props::NfkcInert, - props::NfkdInert, props::PatternSyntax, props::PatternWhiteSpace, props::PrependedConcatenationMark, @@ -276,8 +272,6 @@ fn binary_property_ranges(name: &str) -> Option> { props::Radical, props::RegionalIndicator, props::SoftDotted, - props::SegmentStarter, - props::CaseSensitive, props::SentenceTerminal, props::TerminalPunctuation, props::UnifiedIdeograph, @@ -288,6 +282,20 @@ fn binary_property_ranges(name: &str) -> Option> { props::XidContinue, props::XidStart, ); + icu_binary_property_ranges(name) +} + +#[allow(deprecated)] // ANTLR exposes these ICU-only properties alongside UCD properties. +fn icu_binary_property_ranges(name: &str) -> Option> { + try_binary_properties!( + name, + props::NfcInert, + props::NfdInert, + props::NfkcInert, + props::NfkdInert, + props::SegmentStarter, + props::CaseSensitive, + ); None } @@ -727,9 +735,7 @@ fn decomposition_ccc_ranges(value: &str, lead: bool) -> Option> { if value == "null" { return Some(Vec::new()); } - let combining_class = PropertyParser::::new() - .get_loose(value)? - .to_icu4c_value(); + let combining_class = canonical_combining_class_value(value)?; let (lead_ranges, trail_ranges) = DECOMPOSITION_CCC_RANGES.get_or_init(|| { let mut lead = ValueRangeBuilder::default(); let mut trail = ValueRangeBuilder::default(); @@ -759,6 +765,15 @@ fn decomposition_ccc_ranges(value: &str, lead: bool) -> Option> { ) } +#[allow(deprecated)] // ICU4X 2.2 does not expose CanonicalCombiningClass's numeric field. +fn canonical_combining_class_value(value: &str) -> Option { + Some( + PropertyParser::::new() + .get_loose(value)? + .to_icu4c_value(), + ) +} + const DECOMPOSITION_TYPE_DATA: &[u8] = include_bytes!("unicode_decomposition.bin"); const DECOMPOSITION_TYPE_MAGIC: &[u8; 8] = b"ANTLRDT1"; const DECOMPOSITION_TYPE_SOURCE_HASH: &[u8; 64] =