aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/util/rust-codepoint.h
diff options
context:
space:
mode:
authorRaiki Tamura <tamaron1203@gmail.com>2023-12-02 21:01:59 +0900
committerP-E-P <32375388+P-E-P@users.noreply.github.com>2024-01-29 12:09:31 +0000
commitd6e10d2dabaf689ef36e628ee6d54cd460664615 (patch)
treece4161f6bc6c3b6439a98646371a4de2d08c1257 /gcc/rust/util/rust-codepoint.h
parentbef49670f6248e30ab888ecdbd52a8a1612e25ef (diff)
downloadgcc-d6e10d2dabaf689ef36e628ee6d54cd460664615.zip
gcc-d6e10d2dabaf689ef36e628ee6d54cd460664615.tar.gz
gcc-d6e10d2dabaf689ef36e628ee6d54cd460664615.tar.bz2
gccrs: Implement quick-check for Unicode
gcc/rust/ChangeLog: * rust-lang.cc (run_rust_tests): Add test. * rust-system.h: Add <algorithm>. * util/make-rust-unicode.py: Output NFC_Quick_Check table. * util/rust-codepoint.h (struct Codepoint): Add is_supplementary method. * util/rust-unicode-data.h: Generated. * util/rust-unicode.cc (binary_search_sorted_array): Removed. (lookup_cc): Remove namespace. (is_alphabetic): Use std::binary_search (nfc_quick_check): New function. (nfc_normalize): Use nfc_quick_check. (is_nfc_qc_maybe): New function. (is_nfc_qc_no): New function. (rust_nfc_qc_test): New test. * util/rust-unicode.h (is_nfc_qc_no): New function. (is_nfc_qc_maybe): New function. (enum class): New enum class. (nfc_quick_check): New function. (rust_nfc_qc_test): New test. Signed-off-by: Raiki Tamura <tamaron1203@gmail.com>
Diffstat (limited to 'gcc/rust/util/rust-codepoint.h')
-rw-r--r--gcc/rust/util/rust-codepoint.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/rust/util/rust-codepoint.h b/gcc/rust/util/rust-codepoint.h
index 425d364..eb005eb 100644
--- a/gcc/rust/util/rust-codepoint.h
+++ b/gcc/rust/util/rust-codepoint.h
@@ -40,6 +40,7 @@ struct Codepoint
static Codepoint eof () { return Codepoint (UINT32_MAX); }
bool is_eof () const { return value == UINT32_MAX; }
bool is_ascii () const { return value <= MAX_ASCII_CODEPOINT; }
+ bool is_supplementary_character () const { return value > 0xFFFF; }
// Returns a C++ string containing string value of codepoint.
std::string as_string ();