From f0957087178e69dbbfd87c3cfe96e2e08a33f8c6 Mon Sep 17 00:00:00 2001 From: Gareth Daniel Smith Date: Sat, 1 Sep 2012 18:13:37 +0100 Subject: [PATCH 01/13] add additional Bitv constructors (as proposed in issue #2964) --- src/libstd/bitv.rs | 99 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/src/libstd/bitv.rs b/src/libstd/bitv.rs index 40066a1144ccb..0b950f7eb257a 100644 --- a/src/libstd/bitv.rs +++ b/src/libstd/bitv.rs @@ -421,6 +421,44 @@ struct Bitv { vec::from_fn(self.nbits, |x| self.init_to_vec(x)) } + /** + * Organise the bits into bytes, such that the first bit in the + * bitv becomes the high-order bit of the first byte. If the + * size of the bitv is not a multiple of 8 then trailing bits + * will be filled-in with false/0 + */ + fn to_bytes() -> ~[u8] { + + fn bit (bitv: &Bitv, byte: uint, bit: uint) -> u8 { + let offset = byte * 8 + bit; + if offset >= bitv.nbits { + 0 + } else { + bitv[offset] as u8 << (7 - bit) + } + } + + let len = self.nbits/8 + + if self.nbits % 8 == 0 { 0 } else { 1 }; + vec::from_fn(len, |i| + bit(&self, i, 0) | + bit(&self, i, 1) | + bit(&self, i, 2) | + bit(&self, i, 3) | + bit(&self, i, 4) | + bit(&self, i, 5) | + bit(&self, i, 6) | + bit(&self, i, 7) + ) + } + + /** + * Transform self into a [bool] by turning each bit into a bool + */ + fn to_bools() -> ~[bool] { + vec::from_fn(self.nbits, |i| self[i]) + } + /** * Converts `self` to a string. * @@ -462,6 +500,38 @@ struct Bitv { } // end of bitv class +/** + * Transform a byte-vector into a bitv. Each byte becomes 8 bits, + * with the most significant bits of each byte coming first. Each + * bit becomes true if equal to 1 or false if equal to 0. + */ +fn from_bytes(bytes: &[u8]) -> Bitv { + from_fn(bytes.len() * 8, |i| { + let b = bytes[i / 8] as uint; + let offset = i % 8; + b >> (7 - offset) & 1 == 1 + }) +} + +/** + * Transform a [bool] into a bitv by converting each bool into a bit. + */ +fn from_bools(bools: &[bool]) -> Bitv { + from_fn(bools.len(), |i| bools[i]) +} + +/** + * Create a bitv of the specified length where the value at each + * index is f(index). + */ +fn from_fn(len: uint, f: fn(index: uint) -> bool) -> Bitv { + let bitv = Bitv(len, false); + for uint::range(0, len) |i| { + bitv.set(i, f(i)); + } + return bitv; +} + const uint_bits: uint = 32u + (1u << 32u >> 27u); pure fn lor(w0: uint, w1: uint) -> uint { return w0 | w1; } @@ -816,6 +886,35 @@ mod tests { assert a.equal(b); } + #[test] + fn test_from_bytes() { + let bitv = from_bytes([0b10110110, 0b00000000, 0b11111111]); + let str = ~"10110110" + ~"00000000" + ~"11111111"; + assert bitv.to_str() == str; + } + + #[test] + fn test_to_bytes() { + let bv = Bitv(3, true); + bv.set(1, false); + assert bv.to_bytes() == ~[0b10100000]; + + let bv = Bitv(9, false); + bv.set(2, true); + bv.set(8, true); + assert bv.to_bytes() == ~[0b00100000, 0b10000000]; + } + + #[test] + fn test_from_bools() { + assert from_bools([true, false, true, true]).to_str() == ~"1011"; + } + + #[test] + fn test_to_bools() { + let bools = ~[false, false, true, false, false, true, true, false]; + assert from_bytes([0b00100110]).to_bools() == bools; + } } // From 41870848c7cceac435f4f490d1322c8023d271b4 Mon Sep 17 00:00:00 2001 From: Kevin Cantu Date: Fri, 31 Aug 2012 15:05:39 -0700 Subject: [PATCH 02/13] Confirm demode of unicode.rs --- src/libstd/unicode.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libstd/unicode.rs b/src/libstd/unicode.rs index 31d2e51e160e8..9136ad2708f5c 100644 --- a/src/libstd/unicode.rs +++ b/src/libstd/unicode.rs @@ -1,3 +1,5 @@ +#[forbid(deprecated_mode)]; +#[forbid(deprecated_pattern)]; mod icu { type UBool = u8; @@ -231,4 +233,4 @@ mod tests { assert (unicode::icu::is_upper('M')); assert (!unicode::icu::is_upper('m')); } -} \ No newline at end of file +} From a2b61090a5680ffdc8ed0fbfcb339424efc7df9a Mon Sep 17 00:00:00 2001 From: Kevin Cantu Date: Fri, 31 Aug 2012 15:07:49 -0700 Subject: [PATCH 03/13] Confirm demode of cell.rs --- src/libstd/cell.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/libstd/cell.rs b/src/libstd/cell.rs index 5310f10cd7a46..2325b0e092e4e 100644 --- a/src/libstd/cell.rs +++ b/src/libstd/cell.rs @@ -1,3 +1,5 @@ +#[forbid(deprecated_mode)]; +#[forbid(deprecated_pattern)]; /// A dynamic, mutable location. /// /// Similar to a mutable option type, but friendlier. From b975fe7909e47d4536c40418c6ef1d3e4a4ea651 Mon Sep 17 00:00:00 2001 From: Kevin Cantu Date: Fri, 31 Aug 2012 15:14:01 -0700 Subject: [PATCH 04/13] Confirm demode of base64.rs --- src/libstd/base64.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/libstd/base64.rs b/src/libstd/base64.rs index 1dd8454976d1b..d0552c64c9945 100644 --- a/src/libstd/base64.rs +++ b/src/libstd/base64.rs @@ -1,3 +1,5 @@ +#[forbid(deprecated_mode)]; +#[forbid(deprecated_pattern)]; #[deny(non_camel_case_types)]; import io::Reader; From 4debb9d33a0127d878160dce5bd6e7d24b970fd3 Mon Sep 17 00:00:00 2001 From: Kevin Cantu Date: Fri, 31 Aug 2012 15:46:36 -0700 Subject: [PATCH 05/13] Confirm demode of map.rs and prettyprint.rs --- src/libstd/map.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libstd/map.rs b/src/libstd/map.rs index f2dfb3200f3ca..9e2770a1f0232 100644 --- a/src/libstd/map.rs +++ b/src/libstd/map.rs @@ -1,6 +1,7 @@ //! A map type -#[warn(deprecated_mode)]; +#[forbid(deprecated_mode)]; +#[forbid(deprecated_pattern)]; import io::WriterUtil; import to_str::ToStr; From 82bfff33405d76e29bfbde3112e4d168e6f253df Mon Sep 17 00:00:00 2001 From: Kevin Cantu Date: Fri, 31 Aug 2012 15:54:01 -0700 Subject: [PATCH 06/13] Demode fun_treemap.rs --- src/libstd/fun_treemap.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/libstd/fun_treemap.rs b/src/libstd/fun_treemap.rs index e7780c5182664..2cd5f8e24d136 100644 --- a/src/libstd/fun_treemap.rs +++ b/src/libstd/fun_treemap.rs @@ -1,4 +1,6 @@ #[deny(non_camel_case_types)]; +#[forbid(deprecated_mode)]; +#[forbid(deprecated_pattern)]; /*! * A functional key,value store that works on anything. @@ -32,8 +34,8 @@ enum TreeNode { fn init() -> Treemap { @Empty } /// Insert a value into the map -fn insert(m: Treemap, k: K, v: V) - -> Treemap { +fn insert(m: Treemap, +k: K, +v: V) + -> Treemap { @match m { @Empty => Node(@k, @v, @Empty, @Empty), @Node(@kk, vv, left, right) => { @@ -47,7 +49,7 @@ fn insert(m: Treemap, k: K, v: V) } /// Find a value based on the key -fn find(m: Treemap, k: K) -> Option { +fn find(m: Treemap, +k: K) -> Option { match *m { Empty => None, Node(@kk, @v, left, right) => { From 700a3edb89abcc990be39693e1ac946b9b703841 Mon Sep 17 00:00:00 2001 From: Kevin Cantu Date: Fri, 31 Aug 2012 16:41:15 -0700 Subject: [PATCH 07/13] Demode sort.rs --- src/cargo/cargo.rs | 3 ++- src/libstd/sort.rs | 25 ++++++++++++++----------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/cargo/cargo.rs b/src/cargo/cargo.rs index 9131c07aa5537..17a448001bd5c 100644 --- a/src/cargo/cargo.rs +++ b/src/cargo/cargo.rs @@ -1499,7 +1499,8 @@ fn print_pkg(s: source, p: package) { fn print_source(s: source) { info(s.name + ~" (" + s.url + ~")"); - let pks = sort::merge_sort(sys::shape_lt, copy s.packages); + let unsorted_pks = s.packages; // to prevent illegal borrow? + let pks = sort::merge_sort(sys::shape_lt, unsorted_pks); let l = vec::len(pks); print(io::with_str_writer(|writer| { diff --git a/src/libstd/sort.rs b/src/libstd/sort.rs index 33e6feb8427bb..07552a0a94f85 100644 --- a/src/libstd/sort.rs +++ b/src/libstd/sort.rs @@ -1,4 +1,7 @@ //! Sorting methods +#[forbid(deprecated_mode)]; +#[forbid(deprecated_pattern)]; + import vec::{len, push}; import core::cmp::{Eq, Ord}; @@ -15,12 +18,12 @@ type le = pure fn(v1: &T, v2: &T) -> bool; * Has worst case O(n log n) performance, best case O(n), but * is not space efficient. This is a stable sort. */ -fn merge_sort(le: le, v: ~[const T]) -> ~[T] { +fn merge_sort(le: le, v: &[const T]) -> ~[T] { type slice = (uint, uint); return merge_sort_(le, v, (0u, len(v))); - fn merge_sort_(le: le, v: ~[const T], slice: slice) + fn merge_sort_(le: le, v: &[const T], slice: slice) -> ~[T] { let begin = slice.first(); let end = slice.second(); @@ -35,7 +38,7 @@ fn merge_sort(le: le, v: ~[const T]) -> ~[T] { return merge(le, merge_sort_(le, v, a), merge_sort_(le, v, b)); } - fn merge(le: le, a: ~[T], b: ~[T]) -> ~[T] { + fn merge(le: le, a: &[T], b: &[T]) -> ~[T] { let mut rs = ~[]; vec::reserve(rs, len(a) + len(b)); let a_len = len(a); @@ -54,7 +57,7 @@ fn merge_sort(le: le, v: ~[const T]) -> ~[T] { } } -fn part(compare_func: le, arr: ~[mut T], left: uint, +fn part(compare_func: le, arr: &[mut T], left: uint, right: uint, pivot: uint) -> uint { let pivot_value = arr[pivot]; arr[pivot] <-> arr[right]; @@ -71,7 +74,7 @@ fn part(compare_func: le, arr: ~[mut T], left: uint, return storage_index; } -fn qsort(compare_func: le, arr: ~[mut T], left: uint, +fn qsort(compare_func: le, arr: &[mut T], left: uint, right: uint) { if right > left { let pivot = (left + right) / 2u; @@ -90,12 +93,12 @@ fn qsort(compare_func: le, arr: ~[mut T], left: uint, * Has worst case O(n^2) performance, average case O(n log n). * This is an unstable sort. */ -fn quick_sort(compare_func: le, arr: ~[mut T]) { +fn quick_sort(compare_func: le, arr: &[mut T]) { if len::(arr) == 0u { return; } qsort::(compare_func, arr, 0u, len::(arr) - 1u); } -fn qsort3(arr: ~[mut T], left: int, right: int) { +fn qsort3(arr: &[mut T], left: int, right: int) { if right <= left { return; } let v: T = arr[right]; let mut i: int = left - 1; @@ -152,14 +155,14 @@ fn qsort3(arr: ~[mut T], left: int, right: int) { * * This is an unstable sort. */ -fn quick_sort3(arr: ~[mut T]) { +fn quick_sort3(arr: &[mut T]) { if arr.len() <= 1 { return; } qsort3(arr, 0, (arr.len() - 1) as int); } #[cfg(test)] mod test_qsort3 { - fn check_sort(v1: ~[mut int], v2: ~[mut int]) { + fn check_sort(v1: &[mut int], v2: &[mut int]) { let len = vec::len::(v1); quick_sort3::(v1); let mut i = 0u; @@ -198,7 +201,7 @@ mod test_qsort3 { #[cfg(test)] mod test_qsort { - fn check_sort(v1: ~[mut int], v2: ~[mut int]) { + fn check_sort(v1: &[mut int], v2: &[mut int]) { let len = vec::len::(v1); pure fn leual(a: &int, b: &int) -> bool { *a <= *b } quick_sort::(leual, v1); @@ -258,7 +261,7 @@ mod test_qsort { #[cfg(test)] mod tests { - fn check_sort(v1: ~[int], v2: ~[int]) { + fn check_sort(v1: &[int], v2: &[int]) { let len = vec::len::(v1); pure fn le(a: &int, b: &int) -> bool { *a <= *b } let f = le; From 7301dd19bcb7cec08f49a446f8548ea2720aa85d Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sat, 1 Sep 2012 14:09:57 -0700 Subject: [PATCH 08/13] Add test for #2989 --- src/test/run-pass/issue-2989.rs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/test/run-pass/issue-2989.rs diff --git a/src/test/run-pass/issue-2989.rs b/src/test/run-pass/issue-2989.rs new file mode 100644 index 0000000000000..b902aa9ecf921 --- /dev/null +++ b/src/test/run-pass/issue-2989.rs @@ -0,0 +1,33 @@ +use std; + +trait methods { + fn to_bytes() -> ~[u8]; +} + +impl (): methods { + fn to_bytes() -> ~[u8] { + vec::from_elem(0, 0) + } +} + +// the position of this function is significant! - if it comes before methods +// then it works, if it comes after it then it doesnt! +fn to_bools(bitv: {storage: ~[u64]}) -> ~[bool] { + vec::from_fn(8, |i| { + let w = i / 64; + let b = i % 64; + let x = 1u64 & (bitv.storage[w] >> b); + x == 1u64 + }) +} + +fn main() { + let bools = ~[false, false, true, false, false, true, true, false]; + let bools2 = to_bools({storage: ~[0b01100100]}); + + for uint::range(0, 8) |i| { + io::println(#fmt("%u => %u vs %u", i, bools[i] as uint, bools2[i] as uint)); + } + + assert bools == bools2; +} \ No newline at end of file From 37fc42ea8a74eafe29de3aa8ced637b3e161932d Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sat, 1 Sep 2012 18:07:51 -0700 Subject: [PATCH 09/13] Try to work around check-fast breakage --- src/test/run-pass/conditional-compile.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/run-pass/conditional-compile.rs b/src/test/run-pass/conditional-compile.rs index 5156d8f17defd..79d0d33bd7cdd 100644 --- a/src/test/run-pass/conditional-compile.rs +++ b/src/test/run-pass/conditional-compile.rs @@ -83,8 +83,8 @@ mod test_foreign_items { #[abi = "cdecl"] extern mod rustrt { #[cfg(bogus)] - fn rust_getcwd() -> *(); - fn rust_getcwd() -> *(); + fn rust_getcwd() -> ~str; + fn rust_getcwd() -> ~str; } } From db5ed8f0818c7646169be069ea28480fbb9d5804 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Wed, 29 Aug 2012 16:00:36 -0700 Subject: [PATCH 10/13] Demode reinterpret_cast --- src/libcore/at_vec.rs | 8 +++---- src/libcore/dvec.rs | 10 ++++----- src/libcore/os.rs | 6 ++--- src/libcore/pipes.rs | 8 +++---- src/libcore/priv.rs | 12 +++++----- src/libcore/ptr.rs | 30 ++++++++++++------------- src/libcore/run.rs | 6 ++--- src/libcore/stackwalk.rs | 6 ++--- src/libcore/str.rs | 20 ++++++++--------- src/libcore/sys.rs | 4 ++-- src/libcore/task.rs | 15 +++++++------ src/libcore/unsafe.rs | 24 ++++++++++---------- src/libcore/vec.rs | 30 ++++++++++++------------- src/libstd/arena.rs | 18 +++++++-------- src/libstd/dbg.rs | 4 ++-- src/libstd/par.rs | 2 +- src/libstd/rope.rs | 2 +- src/libstd/sync.rs | 4 ++-- src/rustc/metadata/loader.rs | 2 +- src/rustc/middle/trans/build.rs | 6 ++--- src/rustc/middle/trans/common.rs | 2 +- src/rustc/middle/trans/debuginfo.rs | 2 +- src/rustc/middle/ty.rs | 6 ++--- src/test/run-fail/unwind-box-res.rs | 4 ++-- src/test/run-pass/binops.rs | 10 ++++----- src/test/run-pass/issue-2214.rs | 2 +- src/test/run-pass/regions-mock-trans.rs | 4 ++-- src/test/run-pass/resource-cycle.rs | 30 ++++++++++++------------- src/test/run-pass/resource-cycle2.rs | 6 ++--- src/test/run-pass/resource-cycle3.rs | 8 +++---- src/test/run-pass/rt-sched-1.rs | 2 +- src/test/run-pass/unify-return-ty.rs | 2 +- 32 files changed, 148 insertions(+), 147 deletions(-) diff --git a/src/libcore/at_vec.rs b/src/libcore/at_vec.rs index 569d54262706e..54f3ff0fc8243 100644 --- a/src/libcore/at_vec.rs +++ b/src/libcore/at_vec.rs @@ -29,7 +29,7 @@ extern mod rusti { pure fn capacity(&&v: @[const T]) -> uint { unsafe { let repr: **unsafe::VecRepr = - ::unsafe::reinterpret_cast(addr_of(v)); + ::unsafe::reinterpret_cast(&addr_of(v)); (**repr).alloc / sys::size_of::() } } @@ -154,13 +154,13 @@ mod unsafe { */ #[inline(always)] unsafe fn set_len(&&v: @[const T], new_len: uint) { - let repr: **VecRepr = ::unsafe::reinterpret_cast(addr_of(v)); + let repr: **VecRepr = ::unsafe::reinterpret_cast(&addr_of(v)); (**repr).fill = new_len * sys::size_of::(); } #[inline(always)] unsafe fn push(&v: @[const T], +initval: T) { - let repr: **VecRepr = ::unsafe::reinterpret_cast(addr_of(v)); + let repr: **VecRepr = ::unsafe::reinterpret_cast(&addr_of(v)); let fill = (**repr).fill; if (**repr).alloc > fill { push_fast(v, initval); @@ -172,7 +172,7 @@ mod unsafe { // This doesn't bother to make sure we have space. #[inline(always)] // really pretty please unsafe fn push_fast(&v: @[const T], +initval: T) { - let repr: **VecRepr = ::unsafe::reinterpret_cast(addr_of(v)); + let repr: **VecRepr = ::unsafe::reinterpret_cast(&addr_of(v)); let fill = (**repr).fill; (**repr).fill += sys::size_of::(); let p = ptr::addr_of((**repr).data); diff --git a/src/libcore/dvec.rs b/src/libcore/dvec.rs index 1cfd76fc1e2e3..0fffec961dfb0 100644 --- a/src/libcore/dvec.rs +++ b/src/libcore/dvec.rs @@ -81,7 +81,7 @@ fn unwrap(+d: DVec) -> ~[mut A] { priv impl DVec { pure fn check_not_borrowed() { unsafe { - let data: *() = unsafe::reinterpret_cast(self.data); + let data: *() = unsafe::reinterpret_cast(&self.data); if data.is_null() { fail ~"Recursive use of dvec"; } @@ -91,9 +91,9 @@ priv impl DVec { #[inline(always)] fn check_out(f: fn(-~[mut A]) -> B) -> B { unsafe { - let mut data = unsafe::reinterpret_cast(null::<()>()); + let mut data = unsafe::reinterpret_cast(&null::<()>()); data <-> self.data; - let data_ptr: *() = unsafe::reinterpret_cast(data); + let data_ptr: *() = unsafe::reinterpret_cast(&data); if data_ptr.is_null() { fail ~"Recursive use of dvec"; } return f(data); } @@ -156,9 +156,9 @@ impl DVec { /// Insert a single item at the front of the list fn unshift(-t: A) { unsafe { - let mut data = unsafe::reinterpret_cast(null::<()>()); + let mut data = unsafe::reinterpret_cast(&null::<()>()); data <-> self.data; - let data_ptr: *() = unsafe::reinterpret_cast(data); + let data_ptr: *() = unsafe::reinterpret_cast(&data); if data_ptr.is_null() { fail ~"Recursive use of dvec"; } log(error, ~"a"); self.data <- ~[mut t]; diff --git a/src/libcore/os.rs b/src/libcore/os.rs index 281872b558652..4f9ee06145f91 100644 --- a/src/libcore/os.rs +++ b/src/libcore/os.rs @@ -222,10 +222,10 @@ mod global_env { fn getenv(n: &str) -> Option<~str> { unsafe { let s = str::as_c_str(n, libc::getenv); - return if ptr::null::() == unsafe::reinterpret_cast(s) { + return if ptr::null::() == unsafe::reinterpret_cast(&s) { option::None::<~str> } else { - let s = unsafe::reinterpret_cast(s); + let s = unsafe::reinterpret_cast(&s); option::Some::<~str>(str::unsafe::from_buf(s)) }; } @@ -595,7 +595,7 @@ fn make_dir(p: &Path, mode: c_int) -> bool { import win32::*; // FIXME: turn mode into something useful? #2623 do as_utf16_p(p.to_str()) |buf| { - CreateDirectoryW(buf, unsafe { unsafe::reinterpret_cast(0) }) + CreateDirectoryW(buf, unsafe { unsafe::reinterpret_cast(&0) }) != (0 as BOOL) } } diff --git a/src/libcore/pipes.rs b/src/libcore/pipes.rs index 38ccd7a735e16..077095a70361e 100644 --- a/src/libcore/pipes.rs +++ b/src/libcore/pipes.rs @@ -189,11 +189,11 @@ struct PacketHeader { // thing. You'll proobably want to forget them when you're done. unsafe fn buf_header() -> ~BufferHeader { assert self.buffer.is_not_null(); - reinterpret_cast(self.buffer) + reinterpret_cast(&self.buffer) } fn set_buffer(b: ~Buffer) unsafe { - self.buffer = reinterpret_cast(b); + self.buffer = reinterpret_cast(&b); } } @@ -253,7 +253,7 @@ fn unibuffer() -> ~Buffer> { }; unsafe { - b.data.header.buffer = reinterpret_cast(b); + b.data.header.buffer = reinterpret_cast(&b); } b @@ -274,7 +274,7 @@ fn entangle_buffer( init: fn(*libc::c_void, x: &T) -> *Packet) -> (SendPacketBuffered, RecvPacketBuffered) { - let p = init(unsafe { reinterpret_cast(buffer) }, &buffer.data); + let p = init(unsafe { reinterpret_cast(&buffer) }, &buffer.data); unsafe { forget(buffer) } (SendPacketBuffered(p), RecvPacketBuffered(p)) } diff --git a/src/libcore/priv.rs b/src/libcore/priv.rs index 3f46e1d1653ad..9143c30a497d4 100644 --- a/src/libcore/priv.rs +++ b/src/libcore/priv.rs @@ -63,12 +63,12 @@ unsafe fn chan_from_global_ptr( // This is the proposed global channel let ch = comm::recv(setup_po); // 0 is our sentinal value. It is not a valid channel - assert unsafe::reinterpret_cast(ch) != 0u; + assert unsafe::reinterpret_cast(&ch) != 0u; // Install the channel log(debug,~"BEFORE COMPARE AND SWAP"); let swapped = compare_and_swap( - global, 0u, unsafe::reinterpret_cast(ch)); + global, 0u, unsafe::reinterpret_cast(&ch)); log(debug,fmt!("AFTER .. swapped? %?", swapped)); if swapped { @@ -78,11 +78,11 @@ unsafe fn chan_from_global_ptr( } else { // Somebody else got in before we did comm::send(setup_ch, Abort); - unsafe::reinterpret_cast(*global) + unsafe::reinterpret_cast(&*global) } } else { log(debug, ~"global != 0"); - unsafe::reinterpret_cast(*global) + unsafe::reinterpret_cast(&*global) } } @@ -189,7 +189,7 @@ unsafe fn weaken_task(f: fn(comm::Port<()>)) { let po = comm::Port(); let ch = comm::Chan(po); unsafe { - rustrt::rust_task_weaken(unsafe::reinterpret_cast(ch)); + rustrt::rust_task_weaken(unsafe::reinterpret_cast(&ch)); } let _unweaken = Unweaken(ch); f(po); @@ -198,7 +198,7 @@ unsafe fn weaken_task(f: fn(comm::Port<()>)) { let ch: comm::Chan<()>; new(ch: comm::Chan<()>) { self.ch = ch; } drop unsafe { - rustrt::rust_task_unweaken(unsafe::reinterpret_cast(self.ch)); + rustrt::rust_task_unweaken(unsafe::reinterpret_cast(&self.ch)); } } } diff --git a/src/libcore/ptr.rs b/src/libcore/ptr.rs index 0c4e9a7c35631..27998b49415d6 100644 --- a/src/libcore/ptr.rs +++ b/src/libcore/ptr.rs @@ -45,7 +45,7 @@ pure fn addr_of(val: T) -> *T { unchecked { rusti::addr_of(val) } } #[inline(always)] pure fn mut_addr_of(val: T) -> *mut T { unsafe { - unsafe::reinterpret_cast(rusti::addr_of(val)) + unsafe::reinterpret_cast(&rusti::addr_of(val)) } } @@ -89,7 +89,7 @@ unsafe fn position(buf: *T, f: fn(T) -> bool) -> uint { /// Create an unsafe null pointer #[inline(always)] -pure fn null() -> *T { unsafe { unsafe::reinterpret_cast(0u) } } +pure fn null() -> *T { unsafe { unsafe::reinterpret_cast(&0u) } } /// Returns true if the pointer is equal to the null pointer. pure fn is_null(ptr: *const T) -> bool { ptr == null() } @@ -137,7 +137,7 @@ unsafe fn memset(dst: *mut T, c: int, count: uint) { */ #[inline(always)] fn to_unsafe_ptr(thing: &T) -> *T unsafe { - unsafe::reinterpret_cast(thing) + unsafe::reinterpret_cast(&thing) } /** @@ -149,7 +149,7 @@ fn to_unsafe_ptr(thing: &T) -> *T unsafe { */ #[inline(always)] fn to_uint(thing: &T) -> uint unsafe { - unsafe::reinterpret_cast(thing) + unsafe::reinterpret_cast(&thing) } /// Determine if two borrowed pointers point to the same thing. @@ -175,8 +175,8 @@ impl *T: Ptr { // Equality for pointers impl *const T : Eq { pure fn eq(&&other: *const T) -> bool unsafe { - let a: uint = unsafe::reinterpret_cast(self); - let b: uint = unsafe::reinterpret_cast(other); + let a: uint = unsafe::reinterpret_cast(&self); + let b: uint = unsafe::reinterpret_cast(&other); return a == b; } } @@ -184,23 +184,23 @@ impl *const T : Eq { // Comparison for pointers impl *const T : Ord { pure fn lt(&&other: *const T) -> bool unsafe { - let a: uint = unsafe::reinterpret_cast(self); - let b: uint = unsafe::reinterpret_cast(other); + let a: uint = unsafe::reinterpret_cast(&self); + let b: uint = unsafe::reinterpret_cast(&other); return a < b; } pure fn le(&&other: *const T) -> bool unsafe { - let a: uint = unsafe::reinterpret_cast(self); - let b: uint = unsafe::reinterpret_cast(other); + let a: uint = unsafe::reinterpret_cast(&self); + let b: uint = unsafe::reinterpret_cast(&other); return a <= b; } pure fn ge(&&other: *const T) -> bool unsafe { - let a: uint = unsafe::reinterpret_cast(self); - let b: uint = unsafe::reinterpret_cast(other); + let a: uint = unsafe::reinterpret_cast(&self); + let b: uint = unsafe::reinterpret_cast(&other); return a >= b; } pure fn gt(&&other: *const T) -> bool unsafe { - let a: uint = unsafe::reinterpret_cast(self); - let b: uint = unsafe::reinterpret_cast(other); + let a: uint = unsafe::reinterpret_cast(&self); + let b: uint = unsafe::reinterpret_cast(&other); return a > b; } } @@ -226,7 +226,7 @@ fn test() { type Pair = {mut fst: int, mut snd: int}; let p = {mut fst: 10, mut snd: 20}; let pptr: *mut Pair = mut_addr_of(p); - let iptr: *mut int = unsafe::reinterpret_cast(pptr); + let iptr: *mut int = unsafe::reinterpret_cast(&pptr); assert (*iptr == 10);; *iptr = 30; assert (*iptr == 30); diff --git a/src/libcore/run.rs b/src/libcore/run.rs index 7a0b6df7e7dd3..1b101689ffb5e 100644 --- a/src/libcore/run.rs +++ b/src/libcore/run.rs @@ -113,7 +113,7 @@ fn with_envp(env: &Option<~[(~str,~str)]>, } vec::push(ptrs, ptr::null()); vec::as_buf(ptrs, |p, _len| - unsafe { cb(::unsafe::reinterpret_cast(p)) } + unsafe { cb(::unsafe::reinterpret_cast(&p)) } ) } _ => cb(ptr::null()) @@ -133,12 +133,12 @@ fn with_envp(env: &Option<~[(~str,~str)]>, for vec::each(es) |e| { let (k,v) = e; let t = fmt!("%s=%s", k, v); - let mut v : ~[u8] = ::unsafe::reinterpret_cast(t); + let mut v : ~[u8] = ::unsafe::reinterpret_cast(&t); blk += v; ::unsafe::forget(v); } blk += ~[0_u8]; - vec::as_buf(blk, |p, _len| cb(::unsafe::reinterpret_cast(p))) + vec::as_buf(blk, |p, _len| cb(::unsafe::reinterpret_cast(&p))) } _ => cb(ptr::null()) } diff --git a/src/libcore/stackwalk.rs b/src/libcore/stackwalk.rs index 3dad707a92bf4..d71ad9a1a41ac 100644 --- a/src/libcore/stackwalk.rs +++ b/src/libcore/stackwalk.rs @@ -20,16 +20,16 @@ fn walk_stack(visit: fn(Frame) -> bool) { do frame_address |frame_pointer| { let mut frame_address: *Word = unsafe { - reinterpret_cast(frame_pointer) + reinterpret_cast(&frame_pointer) }; loop { let fr = Frame(frame_address); - debug!("frame: %x", unsafe { reinterpret_cast(fr.fp) }); + debug!("frame: %x", unsafe { reinterpret_cast(&fr.fp) }); visit(fr); unsafe { - let next_fp: **Word = reinterpret_cast(frame_address); + let next_fp: **Word = reinterpret_cast(&frame_address); frame_address = *next_fp; if *frame_address == 0u { debug!("encountered task_start_wrapper. ending walk"); diff --git a/src/libcore/str.rs b/src/libcore/str.rs index d2c9a07319a7d..bbebfd12bc837 100644 --- a/src/libcore/str.rs +++ b/src/libcore/str.rs @@ -164,7 +164,7 @@ fn push_char(&s: ~str, ch: char) { reserve_at_least(s, new_len); let off = len; do as_buf(s) |buf, _len| { - let buf: *mut u8 = ::unsafe::reinterpret_cast(buf); + let buf: *mut u8 = ::unsafe::reinterpret_cast(&buf); if nb == 1u { *ptr::mut_offset(buf, off) = code as u8; @@ -1746,7 +1746,7 @@ const tag_six_b: uint = 252u; */ pure fn as_bytes(s: ~str, f: fn(~[u8]) -> T) -> T { unsafe { - let v: *~[u8] = ::unsafe::reinterpret_cast(ptr::addr_of(s)); + let v: *~[u8] = ::unsafe::reinterpret_cast(&ptr::addr_of(s)); f(*v) } } @@ -1790,7 +1790,7 @@ pure fn as_c_str(s: &str, f: fn(*libc::c_char) -> T) -> T { #[inline(always)] pure fn as_buf(s: &str, f: fn(*u8, uint) -> T) -> T { unsafe { - let v : *(*u8,uint) = ::unsafe::reinterpret_cast(ptr::addr_of(s)); + let v : *(*u8,uint) = ::unsafe::reinterpret_cast(&ptr::addr_of(s)); let (buf,len) = *v; f(buf, len) } @@ -1814,7 +1814,7 @@ pure fn as_buf(s: &str, f: fn(*u8, uint) -> T) -> T { */ fn reserve(&s: ~str, n: uint) { unsafe { - let v: *mut ~[u8] = ::unsafe::reinterpret_cast(ptr::addr_of(s)); + let v: *mut ~[u8] = ::unsafe::reinterpret_cast(&ptr::addr_of(s)); vec::reserve(*v, n + 1); } } @@ -1917,18 +1917,18 @@ mod unsafe { /// without copying unsafe fn from_buf_len_nocopy(buf: &a / *u8, len: uint) -> &a / str { let v = (*buf, len + 1); - assert is_utf8(::unsafe::reinterpret_cast(v)); + assert is_utf8(::unsafe::reinterpret_cast(&v)); return ::unsafe::transmute(v); } /// Create a Rust string from a null-terminated C string unsafe fn from_c_str(c_str: *libc::c_char) -> ~str { - from_buf(::unsafe::reinterpret_cast(c_str)) + from_buf(::unsafe::reinterpret_cast(&c_str)) } /// Create a Rust string from a `*c_char` buffer of the given length unsafe fn from_c_str_len(c_str: *libc::c_char, len: uint) -> ~str { - from_buf_len(::unsafe::reinterpret_cast(c_str), len) + from_buf_len(::unsafe::reinterpret_cast(&c_str), len) } /// Converts a vector of bytes to a string. @@ -1987,7 +1987,7 @@ mod unsafe { assert (end <= n); let tuple = (ptr::offset(sbuf, begin), end - begin + 1); - ::unsafe::reinterpret_cast(tuple) + ::unsafe::reinterpret_cast(&tuple) } } @@ -1995,7 +1995,7 @@ mod unsafe { unsafe fn push_byte(&s: ~str, b: u8) { reserve_at_least(s, s.len() + 1); do as_buf(s) |buf, len| { - let buf: *mut u8 = ::unsafe::reinterpret_cast(buf); + let buf: *mut u8 = ::unsafe::reinterpret_cast(&buf); *ptr::mut_offset(buf, len) = b; } set_len(s, s.len() + 1); @@ -2027,7 +2027,7 @@ mod unsafe { /// Sets the length of the string and adds the null terminator unsafe fn set_len(&v: ~str, new_len: uint) { - let repr: *vec::unsafe::VecRepr = ::unsafe::reinterpret_cast(v); + let repr: *vec::unsafe::VecRepr = ::unsafe::reinterpret_cast(&v); (*repr).fill = new_len + 1u; let null = ptr::mut_offset(ptr::mut_addr_of((*repr).data), new_len); *null = 0u8; diff --git a/src/libcore/sys.rs b/src/libcore/sys.rs index bccd4e461c8f1..29844259a5f6f 100644 --- a/src/libcore/sys.rs +++ b/src/libcore/sys.rs @@ -88,14 +88,14 @@ pure fn pref_align_of() -> uint { /// Returns the refcount of a shared box (as just before calling this) pure fn refcount(+t: @T) -> uint { unsafe { - let ref_ptr: *uint = unsafe::reinterpret_cast(t); + let ref_ptr: *uint = unsafe::reinterpret_cast(&t); *ref_ptr - 1 } } pure fn log_str(t: T) -> ~str { unsafe { - let data_ptr: *() = unsafe::reinterpret_cast(ptr::addr_of(t)); + let data_ptr: *() = unsafe::reinterpret_cast(&ptr::addr_of(t)); rustrt::shape_log_str(get_type_desc::(), data_ptr) } } diff --git a/src/libcore/task.rs b/src/libcore/task.rs index f1c461d5c1ca1..7a898985c18fc 100644 --- a/src/libcore/task.rs +++ b/src/libcore/task.rs @@ -1154,7 +1154,7 @@ fn spawn_raw(+opts: TaskOpts, +f: fn~()) { make_child_wrapper(new_task, child_tg, ancestors, is_main, opts.notify_chan, f); let fptr = ptr::addr_of(child_wrapper); - let closure: *rust_closure = unsafe::reinterpret_cast(fptr); + let closure: *rust_closure = unsafe::reinterpret_cast(&fptr); // Getting killed between these two calls would free the child's // closure. (Reordering them wouldn't help - then getting killed @@ -1295,8 +1295,8 @@ impl @T: LocalData { } impl LocalData: Eq { pure fn eq(&&other: LocalData) -> bool unsafe { - let ptr_a: (uint, uint) = unsafe::reinterpret_cast(self); - let ptr_b: (uint, uint) = unsafe::reinterpret_cast(other); + let ptr_a: (uint, uint) = unsafe::reinterpret_cast(&self); + let ptr_b: (uint, uint) = unsafe::reinterpret_cast(&other); return ptr_a == ptr_b; } } @@ -1310,7 +1310,7 @@ type TaskLocalMap = @dvec::DVec>; extern fn cleanup_task_local_map(map_ptr: *libc::c_void) unsafe { assert !map_ptr.is_null(); // Get and keep the single reference that was created at the beginning. - let _map: TaskLocalMap = unsafe::reinterpret_cast(map_ptr); + let _map: TaskLocalMap = unsafe::reinterpret_cast(&map_ptr); // All local_data will be destroyed along with the map. } @@ -1325,7 +1325,8 @@ unsafe fn get_task_local_map(task: *rust_task) -> TaskLocalMap { if map_ptr.is_null() { let map: TaskLocalMap = @dvec::DVec(); // Use reinterpret_cast -- transmute would take map away from us also. - rustrt::rust_set_task_local_data(task, unsafe::reinterpret_cast(map)); + rustrt::rust_set_task_local_data( + task, unsafe::reinterpret_cast(&map)); rustrt::rust_task_local_data_atexit(task, cleanup_task_local_map); // Also need to reference it an extra time to keep it for now. unsafe::bump_box_refcount(map); @@ -1342,7 +1343,7 @@ unsafe fn key_to_key_value( // Keys are closures, which are (fnptr,envptr) pairs. Use fnptr. // Use reintepret_cast -- transmute would leak (forget) the closure. - let pair: (*libc::c_void, *libc::c_void) = unsafe::reinterpret_cast(key); + let pair: (*libc::c_void, *libc::c_void) = unsafe::reinterpret_cast(&key); pair.first() } @@ -1411,7 +1412,7 @@ unsafe fn local_set( // own on it can be dropped when the box is destroyed. The unsafe pointer // does not have a reference associated with it, so it may become invalid // when the box is destroyed. - let data_ptr = unsafe::reinterpret_cast(data); + let data_ptr = unsafe::reinterpret_cast(&data); let data_box = data as LocalData; // Construct new entry to store in the map. let new_entry = Some((keyval, data_ptr, data_box)); diff --git a/src/libcore/unsafe.rs b/src/libcore/unsafe.rs index ffebf5766511c..c2102eb2bcd38 100644 --- a/src/libcore/unsafe.rs +++ b/src/libcore/unsafe.rs @@ -19,8 +19,8 @@ extern mod rusti { /// Casts the value at `src` to U. The two types must have the same length. #[inline(always)] -unsafe fn reinterpret_cast(src: T) -> U { - rusti::reinterpret_cast(src) +unsafe fn reinterpret_cast(src: &T) -> U { + rusti::reinterpret_cast(*src) } /** @@ -51,7 +51,7 @@ unsafe fn bump_box_refcount(+t: @T) { forget(t); } * assert transmute("L") == ~[76u8, 0u8]; */ unsafe fn transmute(-thing: L) -> G { - let newthing = reinterpret_cast(thing); + let newthing = reinterpret_cast(&thing); forget(thing); return newthing; } @@ -101,7 +101,7 @@ struct ArcDestruct { return; // Happens when destructing an unwrapper's handle. } do task::unkillable { - let data: ~ArcData = unsafe::reinterpret_cast(self.data); + let data: ~ArcData = unsafe::reinterpret_cast(&self.data); let new_count = rustrt::rust_atomic_decrement(&mut data.count); assert new_count >= 0; if new_count == 0 { @@ -111,7 +111,7 @@ struct ArcDestruct { // being here means we're the only *awake* task with the data. if data.unwrapper != 0 { let p: UnwrapProto = - unsafe::reinterpret_cast(data.unwrapper); + unsafe::reinterpret_cast(&data.unwrapper); let (message, response) = option::swap_unwrap(p); // Send 'ready' and wait for a response. pipes::send_one(message, ()); @@ -154,7 +154,7 @@ unsafe fn unwrap_shared_mutable_state(+rc: SharedMutableState) } do task::unkillable { - let ptr: ~ArcData = unsafe::reinterpret_cast(rc.data); + let ptr: ~ArcData = unsafe::reinterpret_cast(&rc.data); let (c1,p1) = pipes::oneshot(); // () let (c2,p2) = pipes::oneshot(); // bool let server: UnwrapProto = ~mut Some((c1,p2)); @@ -216,7 +216,7 @@ unsafe fn shared_mutable_state(+data: T) -> SharedMutableState { unsafe fn get_shared_mutable_state(rc: &a/SharedMutableState) -> &a/mut T { unsafe { - let ptr: ~ArcData = unsafe::reinterpret_cast((*rc).data); + let ptr: ~ArcData = unsafe::reinterpret_cast(&(*rc).data); assert ptr.count > 0; // Cast us back into the correct region let r = unsafe::transmute_region(option::get_ref(&ptr.data)); @@ -228,7 +228,7 @@ unsafe fn get_shared_mutable_state(rc: &a/SharedMutableState) unsafe fn get_shared_immutable_state(rc: &a/SharedMutableState) -> &a/T { unsafe { - let ptr: ~ArcData = unsafe::reinterpret_cast((*rc).data); + let ptr: ~ArcData = unsafe::reinterpret_cast(&(*rc).data); assert ptr.count > 0; // Cast us back into the correct region let r = unsafe::transmute_region(option::get_ref(&ptr.data)); @@ -240,7 +240,7 @@ unsafe fn get_shared_immutable_state(rc: &a/SharedMutableState) unsafe fn clone_shared_mutable_state(rc: &SharedMutableState) -> SharedMutableState { unsafe { - let ptr: ~ArcData = unsafe::reinterpret_cast((*rc).data); + let ptr: ~ArcData = unsafe::reinterpret_cast(&(*rc).data); let new_count = rustrt::rust_atomic_increment(&mut ptr.count); assert new_count >= 2; unsafe::forget(ptr); @@ -356,7 +356,7 @@ mod tests { #[test] fn test_reinterpret_cast() { - assert unsafe { reinterpret_cast(1) } == 1u; + assert unsafe { reinterpret_cast(&1) } == 1u; } #[test] @@ -365,8 +365,8 @@ mod tests { let box = @~"box box box"; // refcount 1 bump_box_refcount(box); // refcount 2 let ptr: *int = transmute(box); // refcount 2 - let _box1: @~str = reinterpret_cast(ptr); - let _box2: @~str = reinterpret_cast(ptr); + let _box1: @~str = reinterpret_cast(&ptr); + let _box2: @~str = reinterpret_cast(&ptr); assert *_box1 == ~"box box box"; assert *_box2 == ~"box box box"; // Will destroy _box1 and _box2. Without the bump, this would diff --git a/src/libcore/vec.rs b/src/libcore/vec.rs index 2e93788e9ac53..3f5051ac55bab 100644 --- a/src/libcore/vec.rs +++ b/src/libcore/vec.rs @@ -167,7 +167,7 @@ fn reserve_at_least(&v: ~[const T], n: uint) { #[inline(always)] pure fn capacity(&&v: ~[const T]) -> uint { unsafe { - let repr: **unsafe::VecRepr = ::unsafe::reinterpret_cast(addr_of(v)); + let repr: **unsafe::VecRepr = ::unsafe::reinterpret_cast(&addr_of(v)); (**repr).alloc / sys::size_of::() } } @@ -335,7 +335,7 @@ pure fn view(v: &[T], start: uint, end: uint) -> &[T] { do as_buf(v) |p, _len| { unsafe { ::unsafe::reinterpret_cast( - (ptr::offset(p, start), (end - start) * sys::size_of::())) + &(ptr::offset(p, start), (end - start) * sys::size_of::())) } } } @@ -347,7 +347,7 @@ pure fn mut_view(v: &[mut T], start: uint, end: uint) -> &[mut T] { do as_buf(v) |p, _len| { unsafe { ::unsafe::reinterpret_cast( - (ptr::offset(p, start), (end - start) * sys::size_of::())) + &(ptr::offset(p, start), (end - start) * sys::size_of::())) } } } @@ -359,7 +359,7 @@ pure fn const_view(v: &[const T], start: uint, end: uint) -> &[const T] { do as_buf(v) |p, _len| { unsafe { ::unsafe::reinterpret_cast( - (ptr::offset(p, start), (end - start) * sys::size_of::())) + &(ptr::offset(p, start), (end - start) * sys::size_of::())) } } } @@ -558,7 +558,7 @@ fn swap_remove(&v: ~[const T], index: uint) -> T { #[inline(always)] fn push(&v: ~[const T], +initval: T) { unsafe { - let repr: **unsafe::VecRepr = ::unsafe::reinterpret_cast(addr_of(v)); + let repr: **unsafe::VecRepr = ::unsafe::reinterpret_cast(&addr_of(v)); let fill = (**repr).fill; if (**repr).alloc > fill { push_fast(v, initval); @@ -572,7 +572,7 @@ fn push(&v: ~[const T], +initval: T) { // This doesn't bother to make sure we have space. #[inline(always)] // really pretty please unsafe fn push_fast(&v: ~[const T], +initval: T) { - let repr: **unsafe::VecRepr = ::unsafe::reinterpret_cast(addr_of(v)); + let repr: **unsafe::VecRepr = ::unsafe::reinterpret_cast(&addr_of(v)); let fill = (**repr).fill; (**repr).fill += sys::size_of::(); let p = ptr::addr_of((**repr).data); @@ -1357,7 +1357,7 @@ pure fn windowed(nn: uint, xx: &[TT]) -> ~[~[TT]] { pure fn as_buf(s: &[const T], f: fn(*T, uint) -> U) -> U { unsafe { - let v : *(*T,uint) = ::unsafe::reinterpret_cast(ptr::addr_of(s)); + let v : *(*T,uint) = ::unsafe::reinterpret_cast(&ptr::addr_of(s)); let (buf,len) = *v; f(buf, len / sys::size_of::()) } @@ -1369,7 +1369,7 @@ pure fn as_const_buf(s: &[const T], f: fn(*const T, uint) -> U) -> U { do as_buf(s) |p, len| { unsafe { - let pp : *const T = ::unsafe::reinterpret_cast(p); + let pp : *const T = ::unsafe::reinterpret_cast(&p); f(pp, len) } } @@ -1381,7 +1381,7 @@ pure fn as_mut_buf(s: &[mut T], f: fn(*mut T, uint) -> U) -> U { do as_buf(s) |p, len| { unsafe { - let pp : *mut T = ::unsafe::reinterpret_cast(p); + let pp : *mut T = ::unsafe::reinterpret_cast(&p); f(pp, len) } } @@ -1740,7 +1740,7 @@ mod unsafe { */ #[inline(always)] unsafe fn set_len(&&v: ~[const T], new_len: uint) { - let repr: **VecRepr = ::unsafe::reinterpret_cast(addr_of(v)); + let repr: **VecRepr = ::unsafe::reinterpret_cast(&addr_of(v)); (**repr).fill = new_len * sys::size_of::(); } @@ -1755,15 +1755,15 @@ mod unsafe { */ #[inline(always)] unsafe fn to_ptr(v: ~[const T]) -> *T { - let repr: **VecRepr = ::unsafe::reinterpret_cast(addr_of(v)); - return ::unsafe::reinterpret_cast(addr_of((**repr).data)); + let repr: **VecRepr = ::unsafe::reinterpret_cast(&addr_of(v)); + return ::unsafe::reinterpret_cast(&addr_of((**repr).data)); } #[inline(always)] unsafe fn to_ptr_slice(v: &[const T]) -> *T { - let repr: **SliceRepr = ::unsafe::reinterpret_cast(addr_of(v)); - return ::unsafe::reinterpret_cast(addr_of((**repr).data)); + let repr: **SliceRepr = ::unsafe::reinterpret_cast(&addr_of(v)); + return ::unsafe::reinterpret_cast(&addr_of((**repr).data)); } @@ -1775,7 +1775,7 @@ mod unsafe { unsafe fn form_slice(p: *T, len: uint, f: fn(&& &[T]) -> U) -> U { let pair = (p, len * sys::size_of::()); let v : *(&blk/[T]) = - ::unsafe::reinterpret_cast(ptr::addr_of(pair)); + ::unsafe::reinterpret_cast(&ptr::addr_of(pair)); f(*v) } diff --git a/src/libstd/arena.rs b/src/libstd/arena.rs index 7609fa704546d..52945c6765f18 100644 --- a/src/libstd/arena.rs +++ b/src/libstd/arena.rs @@ -95,7 +95,7 @@ unsafe fn destroy_chunk(chunk: Chunk) { let fill = chunk.fill; while idx < fill { - let tydesc_data: *uint = reinterpret_cast(ptr::offset(buf, idx)); + let tydesc_data: *uint = reinterpret_cast(&ptr::offset(buf, idx)); let (tydesc, is_done) = un_bitpack_tydesc_ptr(*tydesc_data); let size = (*tydesc).size, align = (*tydesc).align; @@ -121,12 +121,12 @@ unsafe fn destroy_chunk(chunk: Chunk) { // during an initializer. #[inline(always)] unsafe fn bitpack_tydesc_ptr(p: *TypeDesc, is_done: bool) -> uint { - let p_bits: uint = reinterpret_cast(p); + let p_bits: uint = reinterpret_cast(&p); p_bits | (is_done as uint) } #[inline(always)] unsafe fn un_bitpack_tydesc_ptr(p: uint) -> (*TypeDesc, bool) { - (reinterpret_cast(p & !1), p & 1 == 1) + (reinterpret_cast(&(p & !1)), p & 1 == 1) } // The duplication between the POD and non-POD functions is annoying. @@ -167,9 +167,9 @@ impl &Arena { unsafe { let tydesc = sys::get_type_desc::(); let ptr = self.alloc_pod_inner((*tydesc).size, (*tydesc).align); - let ptr: *mut T = reinterpret_cast(ptr); + let ptr: *mut T = reinterpret_cast(&ptr); rusti::move_val_init(*ptr, op()); - return reinterpret_cast(ptr); + return reinterpret_cast(&ptr); } } @@ -213,18 +213,18 @@ impl &Arena { let tydesc = sys::get_type_desc::(); let (ty_ptr, ptr) = self.alloc_nonpod_inner((*tydesc).size, (*tydesc).align); - let ty_ptr: *mut uint = reinterpret_cast(ty_ptr); - let ptr: *mut T = reinterpret_cast(ptr); + let ty_ptr: *mut uint = reinterpret_cast(&ty_ptr); + let ptr: *mut T = reinterpret_cast(&ptr); // Write in our tydesc along with a bit indicating that it // has *not* been initialized yet. - *ty_ptr = reinterpret_cast(tydesc); + *ty_ptr = reinterpret_cast(&tydesc); // Actually initialize it rusti::move_val_init(*ptr, op()); // Now that we are done, update the tydesc to indicate that // the object is there. *ty_ptr = bitpack_tydesc_ptr(tydesc, true); - return reinterpret_cast(ptr); + return reinterpret_cast(&ptr); } } diff --git a/src/libstd/dbg.rs b/src/libstd/dbg.rs index 386cfee1a6a78..bc016823b51dd 100644 --- a/src/libstd/dbg.rs +++ b/src/libstd/dbg.rs @@ -46,8 +46,8 @@ fn debug_fn(+x: T) { unsafe fn ptr_cast(x: @T) -> @U { reinterpret_cast( - rustrt::debug_ptrcast(sys::get_type_desc::(), - reinterpret_cast(x))) + &rustrt::debug_ptrcast(sys::get_type_desc::(), + reinterpret_cast(&x))) } /// Triggers a debugger breakpoint diff --git a/src/libstd/par.rs b/src/libstd/par.rs index d0e67c0009b75..52366e33a2797 100644 --- a/src/libstd/par.rs +++ b/src/libstd/par.rs @@ -48,7 +48,7 @@ fn map_slices( len * sys::size_of::()); log(info, fmt!("pre-slice: %?", (base, slice))); let slice : &[A] = - unsafe::reinterpret_cast(slice); + unsafe::reinterpret_cast(&slice); log(info, fmt!("slice: %?", (base, vec::len(slice), end - base))); assert(vec::len(slice) == end - base); diff --git a/src/libstd/rope.rs b/src/libstd/rope.rs index 23f33a79c5367..d6ba90af84c65 100644 --- a/src/libstd/rope.rs +++ b/src/libstd/rope.rs @@ -807,7 +807,7 @@ mod node { option::Some(x) => { //FIXME (#2744): Replace with memcpy or something similar let mut local_buf: ~[u8] = - unsafe::reinterpret_cast(*x.content); + unsafe::reinterpret_cast(&*x.content); let mut i = x.byte_offset; while i < x.byte_len { buf[offset] = local_buf[i]; diff --git a/src/libstd/sync.rs b/src/libstd/sync.rs index acd25bd7c7cd6..b64376892e74e 100644 --- a/src/libstd/sync.rs +++ b/src/libstd/sync.rs @@ -751,7 +751,7 @@ mod tests { let ptr = ptr::addr_of(*sharedstate); do task::spawn { let sharedstate: &mut int = - unsafe { unsafe::reinterpret_cast(ptr) }; + unsafe { unsafe::reinterpret_cast(&ptr) }; access_shared(sharedstate, m2, 10); c.send(()); @@ -1018,7 +1018,7 @@ mod tests { let ptr = ptr::addr_of(*sharedstate); do task::spawn { let sharedstate: &mut int = - unsafe { unsafe::reinterpret_cast(ptr) }; + unsafe { unsafe::reinterpret_cast(&ptr) }; access_shared(sharedstate, x2, mode1, 10); c.send(()); } diff --git a/src/rustc/metadata/loader.rs b/src/rustc/metadata/loader.rs index b68e5cc1ce086..22eaa6902953f 100644 --- a/src/rustc/metadata/loader.rs +++ b/src/rustc/metadata/loader.rs @@ -186,7 +186,7 @@ fn get_metadata_section(os: os, let cbuf = llvm::LLVMGetSectionContents(si.llsi); let csz = llvm::LLVMGetSectionSize(si.llsi) as uint; unsafe { - let cvbuf: *u8 = unsafe::reinterpret_cast(cbuf); + let cvbuf: *u8 = unsafe::reinterpret_cast(&cbuf); let v = vec::unsafe::from_buf(cvbuf, csz); let inflated = flate::inflate_buf(v); return Some(@inflated); diff --git a/src/rustc/middle/trans/build.rs b/src/rustc/middle/trans/build.rs index b22560d491dee..400a5ed2b82aa 100644 --- a/src/rustc/middle/trans/build.rs +++ b/src/rustc/middle/trans/build.rs @@ -134,7 +134,7 @@ fn IndirectBr(cx: block, Addr: ValueRef, NumDests: uint) { // lot more efficient) than doing str::as_c_str("", ...) every time. fn noname() -> *libc::c_char unsafe { const cnull: uint = 0u; - return unsafe::reinterpret_cast(ptr::addr_of(cnull)); + return unsafe::reinterpret_cast(&ptr::addr_of(cnull)); } fn Invoke(cx: block, Fn: ValueRef, Args: ~[ValueRef], @@ -629,8 +629,8 @@ fn Phi(cx: block, Ty: TypeRef, vals: ~[ValueRef], bbs: ~[BasicBlockRef]) fn AddIncomingToPhi(phi: ValueRef, val: ValueRef, bb: BasicBlockRef) { if llvm::LLVMIsUndef(phi) == lib::llvm::True { return; } unsafe { - let valptr = unsafe::reinterpret_cast(ptr::addr_of(val)); - let bbptr = unsafe::reinterpret_cast(ptr::addr_of(bb)); + let valptr = unsafe::reinterpret_cast(&ptr::addr_of(val)); + let bbptr = unsafe::reinterpret_cast(&ptr::addr_of(bb)); llvm::LLVMAddIncoming(phi, valptr, bbptr, 1 as c_uint); } } diff --git a/src/rustc/middle/trans/common.rs b/src/rustc/middle/trans/common.rs index 42527357c1590..dc5bf00b59d16 100644 --- a/src/rustc/middle/trans/common.rs +++ b/src/rustc/middle/trans/common.rs @@ -971,7 +971,7 @@ fn C_array(ty: TypeRef, elts: ~[ValueRef]) -> ValueRef unsafe { fn C_bytes(bytes: ~[u8]) -> ValueRef unsafe { return llvm::LLVMConstString( - unsafe::reinterpret_cast(vec::unsafe::to_ptr(bytes)), + unsafe::reinterpret_cast(&vec::unsafe::to_ptr(bytes)), bytes.len() as c_uint, False); } diff --git a/src/rustc/middle/trans/debuginfo.rs b/src/rustc/middle/trans/debuginfo.rs index e3a771c7251bc..1362c67041b0a 100644 --- a/src/rustc/middle/trans/debuginfo.rs +++ b/src/rustc/middle/trans/debuginfo.rs @@ -73,7 +73,7 @@ fn llunused() -> ValueRef { lli32(0x0) } fn llnull() -> ValueRef unsafe { - unsafe::reinterpret_cast(ptr::null::()) + unsafe::reinterpret_cast(&ptr::null::()) } fn add_named_metadata(cx: @crate_ctxt, name: ~str, val: ValueRef) { diff --git a/src/rustc/middle/ty.rs b/src/rustc/middle/ty.rs index 287a7582a993c..1d28e0351415d 100644 --- a/src/rustc/middle/ty.rs +++ b/src/rustc/middle/ty.rs @@ -338,7 +338,7 @@ enum t_opaque {} type t = *t_opaque; pure fn get(t: t) -> t_box unsafe { - let t2 = unsafe::reinterpret_cast::(t); + let t2 = unsafe::reinterpret_cast::(&t); let t3 = t2; unsafe::forget(t2); t3 @@ -712,7 +712,7 @@ fn mk_t(cx: ctxt, +st: sty) -> t { mk_t_with_id(cx, st, None) } fn mk_t_with_id(cx: ctxt, +st: sty, o_def_id: Option) -> t { let key = {struct: st, o_def_id: o_def_id}; match cx.interner.find(key) { - Some(t) => unsafe { return unsafe::reinterpret_cast(t); }, + Some(t) => unsafe { return unsafe::reinterpret_cast(&t); }, _ => () } let mut flags = 0u; @@ -770,7 +770,7 @@ fn mk_t_with_id(cx: ctxt, +st: sty, o_def_id: Option) -> t { let t = @{struct: st, id: cx.next_id, flags: flags, o_def_id: o_def_id}; cx.interner.insert(key, t); cx.next_id += 1u; - unsafe { unsafe::reinterpret_cast(t) } + unsafe { unsafe::reinterpret_cast(&t) } } fn mk_nil(cx: ctxt) -> t { mk_t(cx, ty_nil) } diff --git a/src/test/run-fail/unwind-box-res.rs b/src/test/run-fail/unwind-box-res.rs index 90850e44867a8..2295a8ff2d75f 100644 --- a/src/test/run-fail/unwind-box-res.rs +++ b/src/test/run-fail/unwind-box-res.rs @@ -8,13 +8,13 @@ struct r { let v: *int; new(v: *int) { self.v = v; } drop unsafe { - let _v2: ~int = unsafe::reinterpret_cast(self.v); + let _v2: ~int = unsafe::reinterpret_cast(&self.v); } } fn main() unsafe { let i1 = ~0; - let i1p = unsafe::reinterpret_cast(i1); + let i1p = unsafe::reinterpret_cast(&i1); unsafe::forget(i1); let x = @r(i1p); failfn(); diff --git a/src/test/run-pass/binops.rs b/src/test/run-pass/binops.rs index c334d8dc526f1..2f62b410dd3c1 100644 --- a/src/test/run-pass/binops.rs +++ b/src/test/run-pass/binops.rs @@ -58,9 +58,9 @@ fn test_box() { } fn test_ptr() unsafe { - let p1: *u8 = unsafe::reinterpret_cast(0); - let p2: *u8 = unsafe::reinterpret_cast(0); - let p3: *u8 = unsafe::reinterpret_cast(1); + let p1: *u8 = unsafe::reinterpret_cast(&0); + let p2: *u8 = unsafe::reinterpret_cast(&0); + let p3: *u8 = unsafe::reinterpret_cast(&1); assert p1 == p2; assert p1 != p3; @@ -97,8 +97,8 @@ fn test_class() { unsafe { error!("q = %x, r = %x", - (unsafe::reinterpret_cast::<*p, uint>(ptr::addr_of(q))), - (unsafe::reinterpret_cast::<*p, uint>(ptr::addr_of(r)))); + (unsafe::reinterpret_cast::<*p, uint>(&ptr::addr_of(q))), + (unsafe::reinterpret_cast::<*p, uint>(&ptr::addr_of(r)))); } assert(q == r); r.y = 17; diff --git a/src/test/run-pass/issue-2214.rs b/src/test/run-pass/issue-2214.rs index 14caf8e5e0dd7..886739fc15453 100644 --- a/src/test/run-pass/issue-2214.rs +++ b/src/test/run-pass/issue-2214.rs @@ -2,7 +2,7 @@ import libc::{c_double, c_int}; import f64::*; fn to_c_int(v: &mut int) -> &mut c_int unsafe { - unsafe::reinterpret_cast(v) + unsafe::reinterpret_cast(&v) } fn lgamma(n: c_double, value: &mut int) -> c_double { diff --git a/src/test/run-pass/regions-mock-trans.rs b/src/test/run-pass/regions-mock-trans.rs index 5bbc8412afc4c..42b7b935c73e9 100644 --- a/src/test/run-pass/regions-mock-trans.rs +++ b/src/test/run-pass/regions-mock-trans.rs @@ -17,7 +17,7 @@ type ccx = { fn alloc(_bcx : &arena) -> &bcx unsafe { return unsafe::reinterpret_cast( - libc::malloc(sys::size_of::() as libc::size_t)); + &libc::malloc(sys::size_of::() as libc::size_t)); } fn h(bcx : &bcx) -> &bcx { @@ -28,7 +28,7 @@ fn g(fcx : &fcx) { let bcx = { fcx: fcx }; let bcx2 = h(&bcx); unsafe { - libc::free(unsafe::reinterpret_cast(bcx2)); + libc::free(unsafe::reinterpret_cast(&bcx2)); } } diff --git a/src/test/run-pass/resource-cycle.rs b/src/test/run-pass/resource-cycle.rs index 5895371af275e..e0d85e4d28857 100644 --- a/src/test/run-pass/resource-cycle.rs +++ b/src/test/run-pass/resource-cycle.rs @@ -5,16 +5,16 @@ struct r { new(v: *int) unsafe { self.v = v; debug!("r's ctor: v = %x, self = %x, self.v = %x", - unsafe::reinterpret_cast::<*int, uint>(v), - unsafe::reinterpret_cast::<*r, uint>(ptr::addr_of(self)), - unsafe::reinterpret_cast::<**int, uint>(ptr::addr_of(self.v))); + unsafe::reinterpret_cast::<*int, uint>(&v), + unsafe::reinterpret_cast::<*r, uint>(&ptr::addr_of(self)), + unsafe::reinterpret_cast::<**int, uint>(&ptr::addr_of(self.v))); } drop unsafe { debug!("r's dtor: self = %x, self.v = %x, self.v's value = %x", - unsafe::reinterpret_cast::<*r, uint>(ptr::addr_of(self)), - unsafe::reinterpret_cast::<**int, uint>(ptr::addr_of(self.v)), - unsafe::reinterpret_cast::<*int, uint>(self.v)); - let v2: ~int = unsafe::reinterpret_cast(self.v); } + unsafe::reinterpret_cast::<*r, uint>(&ptr::addr_of(self)), + unsafe::reinterpret_cast::<**int, uint>(&ptr::addr_of(self.v)), + unsafe::reinterpret_cast::<*int, uint>(&self.v)); + let v2: ~int = unsafe::reinterpret_cast(&self.v); } } enum t = { @@ -24,10 +24,10 @@ enum t = { fn main() unsafe { let i1 = ~0; - let i1p = unsafe::reinterpret_cast(i1); + let i1p = unsafe::reinterpret_cast(&i1); unsafe::forget(i1); let i2 = ~0; - let i2p = unsafe::reinterpret_cast(i2); + let i2p = unsafe::reinterpret_cast(&i2); unsafe::forget(i2); let x1 = @t({ @@ -35,27 +35,27 @@ fn main() unsafe { r: { let rs = r(i1p); debug!("r = %x", - unsafe::reinterpret_cast::<*r, uint>(ptr::addr_of(rs))); + unsafe::reinterpret_cast::<*r, uint>(&ptr::addr_of(rs))); rs } }); debug!("x1 = %x, x1.r = %x", - unsafe::reinterpret_cast::<@t, uint>(x1), - unsafe::reinterpret_cast::<*r, uint>(ptr::addr_of(x1.r))); + unsafe::reinterpret_cast::<@t, uint>(&x1), + unsafe::reinterpret_cast::<*r, uint>(&ptr::addr_of(x1.r))); let x2 = @t({ mut next: None, r: { let rs = r(i2p); debug!("r2 = %x", - unsafe::reinterpret_cast::<*r, uint>(ptr::addr_of(rs))); + unsafe::reinterpret_cast::<*r, uint>(&ptr::addr_of(rs))); rs } }); debug!("x2 = %x, x2.r = %x", - unsafe::reinterpret_cast::<@t, uint>(x2), - unsafe::reinterpret_cast::<*r, uint>(ptr::addr_of(x2.r))); + unsafe::reinterpret_cast::<@t, uint>(&x2), + unsafe::reinterpret_cast::<*r, uint>(&ptr::addr_of(x2.r))); x1.next = Some(x2); x2.next = Some(x1); diff --git a/src/test/run-pass/resource-cycle2.rs b/src/test/run-pass/resource-cycle2.rs index 29fb394f1df53..c5b69af33d971 100644 --- a/src/test/run-pass/resource-cycle2.rs +++ b/src/test/run-pass/resource-cycle2.rs @@ -10,7 +10,7 @@ struct r { let v: u; new(v: u) { self.v = v; } drop unsafe { - let v2: ~int = unsafe::reinterpret_cast(self.v.c); + let v2: ~int = unsafe::reinterpret_cast(&self.v.c); } } @@ -21,10 +21,10 @@ enum t = { fn main() unsafe { let i1 = ~0xA; - let i1p = unsafe::reinterpret_cast(i1); + let i1p = unsafe::reinterpret_cast(&i1); unsafe::forget(i1); let i2 = ~0xA; - let i2p = unsafe::reinterpret_cast(i2); + let i2p = unsafe::reinterpret_cast(&i2); unsafe::forget(i2); let u1 = {a: 0xB, b: 0xC, c: i1p}; diff --git a/src/test/run-pass/resource-cycle3.rs b/src/test/run-pass/resource-cycle3.rs index 49980570925d8..36d73bf23e53e 100644 --- a/src/test/run-pass/resource-cycle3.rs +++ b/src/test/run-pass/resource-cycle3.rs @@ -13,10 +13,10 @@ struct r { let w: int; let x: *int; new(v: u, w: int, _x: *int) unsafe { self.v = v; self.w = w; - self.x = unsafe::reinterpret_cast(0); + self.x = unsafe::reinterpret_cast(&0); /* self.x = x; */ } drop unsafe { - let _v2: ~int = unsafe::reinterpret_cast(self.v.c); + let _v2: ~int = unsafe::reinterpret_cast(&self.v.c); // let _v3: ~int = unsafe::reinterpret_cast(self.x); } } @@ -28,10 +28,10 @@ enum t = { fn main() unsafe { let i1 = ~0xA; - let i1p = unsafe::reinterpret_cast(i1); + let i1p = unsafe::reinterpret_cast(&i1); unsafe::forget(i1); let i2 = ~0xA; - let i2p = unsafe::reinterpret_cast(i2); + let i2p = unsafe::reinterpret_cast(&i2); unsafe::forget(i2); let u1 = {a: 0xB, b: 0xC, c: i1p}; diff --git a/src/test/run-pass/rt-sched-1.rs b/src/test/run-pass/rt-sched-1.rs index 628b8d7d929fe..0cba7faa74c8d 100644 --- a/src/test/run-pass/rt-sched-1.rs +++ b/src/test/run-pass/rt-sched-1.rs @@ -32,7 +32,7 @@ fn main() unsafe { assert child_sched_id == new_sched_id; comm::send(ch, ()); }; - let fptr = unsafe::reinterpret_cast(ptr::addr_of(f)); + let fptr = unsafe::reinterpret_cast(&ptr::addr_of(f)); rustrt::start_task(new_task_id, fptr); unsafe::forget(f); comm::recv(po); diff --git a/src/test/run-pass/unify-return-ty.rs b/src/test/run-pass/unify-return-ty.rs index c9676b67daa96..07d55229fb7b8 100644 --- a/src/test/run-pass/unify-return-ty.rs +++ b/src/test/run-pass/unify-return-ty.rs @@ -4,6 +4,6 @@ use std; import unsafe; -fn null() -> *T unsafe { unsafe::reinterpret_cast(0) } +fn null() -> *T unsafe { unsafe::reinterpret_cast(&0) } fn main() { null::(); } From 2b3bf26360d3f289c15b024657bf795e288f1221 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sat, 1 Sep 2012 18:38:05 -0700 Subject: [PATCH 11/13] Remove the 'to' keyword --- doc/rust.md | 4 +- src/libcore/char.rs | 8 +- src/libcore/float.rs | 4 +- src/libcore/unicode.rs | 4742 ++++++++--------- src/libstd/json.rs | 18 +- src/libstd/net_url.rs | 20 +- src/libstd/time.rs | 2 +- src/libsyntax/parse/parser.rs | 2 +- src/libsyntax/parse/token.rs | 1 - src/rustc/back/link.rs | 6 +- .../compile-fail/alt-range-fail-dominate.rs | 18 +- src/test/compile-fail/alt-range-fail.rs | 6 +- .../inferred-suffix-in-pattern-range.rs | 6 +- 13 files changed, 2418 insertions(+), 2419 deletions(-) diff --git a/doc/rust.md b/doc/rust.md index 434b0eb3f2d53..9023147208cc0 100644 --- a/doc/rust.md +++ b/doc/rust.md @@ -2211,14 +2211,14 @@ fn main() { ~~~~ Multiple match patterns may be joined with the `|` operator. A -range of values may be specified with `to`. For example: +range of values may be specified with `..`. For example: ~~~~ # let x = 2; let message = match x { 0 | 1 => ~"not many", - 2 to 9 => ~"a few", + 2 .. 9 => ~"a few", _ => ~"lots" }; ~~~~ diff --git a/src/libcore/char.rs b/src/libcore/char.rs index 8acbc08b0e8f4..71284f60b6fce 100644 --- a/src/libcore/char.rs +++ b/src/libcore/char.rs @@ -120,9 +120,9 @@ pure fn is_digit(c: char) -> bool { */ pure fn to_digit(c: char, radix: uint) -> Option { let val = match c { - '0' to '9' => c as uint - ('0' as uint), - 'a' to 'z' => c as uint + 10u - ('a' as uint), - 'A' to 'Z' => c as uint + 10u - ('A' as uint), + '0' .. '9' => c as uint - ('0' as uint), + 'a' .. 'z' => c as uint + 10u - ('a' as uint), + 'A' .. 'Z' => c as uint + 10u - ('A' as uint), _ => return None }; if val < radix { Some(val) } @@ -171,7 +171,7 @@ fn escape_default(c: char) -> ~str { '\\' => ~"\\\\", '\'' => ~"\\'", '"' => ~"\\\"", - '\x20' to '\x7e' => str::from_char(c), + '\x20' .. '\x7e' => str::from_char(c), _ => escape_unicode(c) } } diff --git a/src/libcore/float.rs b/src/libcore/float.rs index 32fbcf209f6fc..125e9852f4483 100644 --- a/src/libcore/float.rs +++ b/src/libcore/float.rs @@ -263,7 +263,7 @@ fn from_str(num: &str) -> Option { //The string must start with one of the following characters. match str::char_at(num, 0u) { - '-' | '+' | '0' to '9' | '.' => (), + '-' | '+' | '0' .. '9' | '.' => (), _ => return None } @@ -286,7 +286,7 @@ fn from_str(num: &str) -> Option { c = char_range.ch; pos = char_range.next; match c { - '0' to '9' => { + '0' .. '9' => { total = total * 10f; total += ((c as int) - ('0' as int)) as float; } diff --git a/src/libcore/unicode.rs b/src/libcore/unicode.rs index 6f3419aadd416..cdd2efbd8c315 100644 --- a/src/libcore/unicode.rs +++ b/src/libcore/unicode.rs @@ -5,8 +5,8 @@ mod general_category { pure fn Cc(c: char) -> bool { return match c { - '\x00' to '\x1f' - | '\x7f' to '\x9f' => true, + '\x00' .. '\x1f' + | '\x7f' .. '\x9f' => true, _ => false }; } @@ -14,44 +14,44 @@ mod general_category { pure fn Cf(c: char) -> bool { return match c { '\xad' - | '\u0600' to '\u0603' + | '\u0600' .. '\u0603' | '\u06dd' | '\u070f' - | '\u17b4' to '\u17b5' - | '\u200b' to '\u200f' - | '\u202a' to '\u202e' - | '\u2060' to '\u206f' + | '\u17b4' .. '\u17b5' + | '\u200b' .. '\u200f' + | '\u202a' .. '\u202e' + | '\u2060' .. '\u206f' | '\ufeff' - | '\ufff9' to '\ufffb' + | '\ufff9' .. '\ufffb' | '\U000110bd' - | '\U0001d173' to '\U0001d17a' - | '\U000e0001' to '\U000e007f' => true, + | '\U0001d173' .. '\U0001d17a' + | '\U000e0001' .. '\U000e007f' => true, _ => false }; } pure fn Co(c: char) -> bool { return match c { - '\ue000' to '\uf8ff' => true, + '\ue000' .. '\uf8ff' => true, _ => false }; } pure fn Cs(c: char) -> bool { return match c { - '\ud800' to '\udfff' => true, + '\ud800' .. '\udfff' => true, _ => false }; } pure fn Ll(c: char) -> bool { return match c { - '\x61' to '\x7a' + '\x61' .. '\x7a' | '\xaa' | '\xb5' | '\xba' - | '\xdf' to '\xf6' - | '\xf8' to '\xff' + | '\xdf' .. '\xf6' + | '\xf8' .. '\xff' | '\u0101' | '\u0103' | '\u0105' @@ -79,7 +79,7 @@ mod general_category { | '\u0131' | '\u0133' | '\u0135' - | '\u0137' to '\u0138' + | '\u0137' .. '\u0138' | '\u013a' | '\u013c' | '\u013e' @@ -87,7 +87,7 @@ mod general_category { | '\u0142' | '\u0144' | '\u0146' - | '\u0148' to '\u0149' + | '\u0148' .. '\u0149' | '\u014b' | '\u014d' | '\u014f' @@ -113,26 +113,26 @@ mod general_category { | '\u0177' | '\u017a' | '\u017c' - | '\u017e' to '\u0180' + | '\u017e' .. '\u0180' | '\u0183' | '\u0185' | '\u0188' - | '\u018c' to '\u018d' + | '\u018c' .. '\u018d' | '\u0192' | '\u0195' - | '\u0199' to '\u019b' + | '\u0199' .. '\u019b' | '\u019e' | '\u01a1' | '\u01a3' | '\u01a5' | '\u01a8' - | '\u01aa' to '\u01ab' + | '\u01aa' .. '\u01ab' | '\u01ad' | '\u01b0' | '\u01b4' | '\u01b6' - | '\u01b9' to '\u01ba' - | '\u01bd' to '\u01bf' + | '\u01b9' .. '\u01ba' + | '\u01bd' .. '\u01bf' | '\u01c6' | '\u01c9' | '\u01cc' @@ -143,7 +143,7 @@ mod general_category { | '\u01d6' | '\u01d8' | '\u01da' - | '\u01dc' to '\u01dd' + | '\u01dc' .. '\u01dd' | '\u01df' | '\u01e1' | '\u01e3' @@ -152,7 +152,7 @@ mod general_category { | '\u01e9' | '\u01eb' | '\u01ed' - | '\u01ef' to '\u01f0' + | '\u01ef' .. '\u01f0' | '\u01f3' | '\u01f5' | '\u01f9' @@ -184,24 +184,24 @@ mod general_category { | '\u022d' | '\u022f' | '\u0231' - | '\u0233' to '\u0239' + | '\u0233' .. '\u0239' | '\u023c' - | '\u023f' to '\u0240' + | '\u023f' .. '\u0240' | '\u0242' | '\u0247' | '\u0249' | '\u024b' | '\u024d' - | '\u024f' to '\u0293' - | '\u0295' to '\u02af' + | '\u024f' .. '\u0293' + | '\u0295' .. '\u02af' | '\u0371' | '\u0373' | '\u0377' - | '\u037b' to '\u037d' + | '\u037b' .. '\u037d' | '\u0390' - | '\u03ac' to '\u03ce' - | '\u03d0' to '\u03d1' - | '\u03d5' to '\u03d7' + | '\u03ac' .. '\u03ce' + | '\u03d0' .. '\u03d1' + | '\u03d5' .. '\u03d7' | '\u03d9' | '\u03db' | '\u03dd' @@ -213,11 +213,11 @@ mod general_category { | '\u03e9' | '\u03eb' | '\u03ed' - | '\u03ef' to '\u03f3' + | '\u03ef' .. '\u03f3' | '\u03f5' | '\u03f8' - | '\u03fb' to '\u03fc' - | '\u0430' to '\u045f' + | '\u03fb' .. '\u03fc' + | '\u0430' .. '\u045f' | '\u0461' | '\u0463' | '\u0465' @@ -268,7 +268,7 @@ mod general_category { | '\u04c8' | '\u04ca' | '\u04cc' - | '\u04ce' to '\u04cf' + | '\u04ce' .. '\u04cf' | '\u04d1' | '\u04d3' | '\u04d5' @@ -313,10 +313,10 @@ mod general_category { | '\u0523' | '\u0525' | '\u0527' - | '\u0561' to '\u0587' - | '\u1d00' to '\u1d2b' - | '\u1d62' to '\u1d77' - | '\u1d79' to '\u1d9a' + | '\u0561' .. '\u0587' + | '\u1d00' .. '\u1d2b' + | '\u1d62' .. '\u1d77' + | '\u1d79' .. '\u1d9a' | '\u1e01' | '\u1e03' | '\u1e05' @@ -391,7 +391,7 @@ mod general_category { | '\u1e8f' | '\u1e91' | '\u1e93' - | '\u1e95' to '\u1e9d' + | '\u1e95' .. '\u1e9d' | '\u1e9f' | '\u1ea1' | '\u1ea3' @@ -440,41 +440,41 @@ mod general_category { | '\u1ef9' | '\u1efb' | '\u1efd' - | '\u1eff' to '\u1f07' - | '\u1f10' to '\u1f15' - | '\u1f20' to '\u1f27' - | '\u1f30' to '\u1f37' - | '\u1f40' to '\u1f45' - | '\u1f50' to '\u1f57' - | '\u1f60' to '\u1f67' - | '\u1f70' to '\u1f87' - | '\u1f90' to '\u1f97' - | '\u1fa0' to '\u1fa7' - | '\u1fb0' to '\u1fb7' + | '\u1eff' .. '\u1f07' + | '\u1f10' .. '\u1f15' + | '\u1f20' .. '\u1f27' + | '\u1f30' .. '\u1f37' + | '\u1f40' .. '\u1f45' + | '\u1f50' .. '\u1f57' + | '\u1f60' .. '\u1f67' + | '\u1f70' .. '\u1f87' + | '\u1f90' .. '\u1f97' + | '\u1fa0' .. '\u1fa7' + | '\u1fb0' .. '\u1fb7' | '\u1fbe' - | '\u1fc2' to '\u1fc7' - | '\u1fd0' to '\u1fd7' - | '\u1fe0' to '\u1fe7' - | '\u1ff2' to '\u1ff7' + | '\u1fc2' .. '\u1fc7' + | '\u1fd0' .. '\u1fd7' + | '\u1fe0' .. '\u1fe7' + | '\u1ff2' .. '\u1ff7' | '\u210a' - | '\u210e' to '\u210f' + | '\u210e' .. '\u210f' | '\u2113' | '\u212f' | '\u2134' | '\u2139' - | '\u213c' to '\u213d' - | '\u2146' to '\u2149' + | '\u213c' .. '\u213d' + | '\u2146' .. '\u2149' | '\u214e' | '\u2184' - | '\u2c30' to '\u2c5e' + | '\u2c30' .. '\u2c5e' | '\u2c61' - | '\u2c65' to '\u2c66' + | '\u2c65' .. '\u2c66' | '\u2c68' | '\u2c6a' | '\u2c6c' | '\u2c71' - | '\u2c73' to '\u2c74' - | '\u2c76' to '\u2c7c' + | '\u2c73' .. '\u2c74' + | '\u2c76' .. '\u2c7c' | '\u2c81' | '\u2c83' | '\u2c85' @@ -524,10 +524,10 @@ mod general_category { | '\u2cdd' | '\u2cdf' | '\u2ce1' - | '\u2ce3' to '\u2ce4' + | '\u2ce3' .. '\u2ce4' | '\u2cec' | '\u2cee' - | '\u2d00' to '\u2d25' + | '\u2d00' .. '\u2d25' | '\ua641' | '\ua643' | '\ua645' @@ -569,7 +569,7 @@ mod general_category { | '\ua729' | '\ua72b' | '\ua72d' - | '\ua72f' to '\ua731' + | '\ua72f' .. '\ua731' | '\ua733' | '\ua735' | '\ua737' @@ -601,7 +601,7 @@ mod general_category { | '\ua76b' | '\ua76d' | '\ua76f' - | '\ua771' to '\ua778' + | '\ua771' .. '\ua778' | '\ua77a' | '\ua77c' | '\ua77f' @@ -616,33 +616,33 @@ mod general_category { | '\ua7a3' | '\ua7a5' | '\ua7a7' - | '\ua7a9' to '\ua7fa' - | '\ufb00' to '\ufb17' - | '\uff41' to '\uff5a' - | '\U00010428' to '\U0001044f' - | '\U0001d41a' to '\U0001d433' - | '\U0001d44e' to '\U0001d467' - | '\U0001d482' to '\U0001d49b' - | '\U0001d4b6' to '\U0001d4cf' - | '\U0001d4ea' to '\U0001d503' - | '\U0001d51e' to '\U0001d537' - | '\U0001d552' to '\U0001d56b' - | '\U0001d586' to '\U0001d59f' - | '\U0001d5ba' to '\U0001d5d3' - | '\U0001d5ee' to '\U0001d607' - | '\U0001d622' to '\U0001d63b' - | '\U0001d656' to '\U0001d66f' - | '\U0001d68a' to '\U0001d6a5' - | '\U0001d6c2' to '\U0001d6da' - | '\U0001d6dc' to '\U0001d6e1' - | '\U0001d6fc' to '\U0001d714' - | '\U0001d716' to '\U0001d71b' - | '\U0001d736' to '\U0001d74e' - | '\U0001d750' to '\U0001d755' - | '\U0001d770' to '\U0001d788' - | '\U0001d78a' to '\U0001d78f' - | '\U0001d7aa' to '\U0001d7c2' - | '\U0001d7c4' to '\U0001d7c9' + | '\ua7a9' .. '\ua7fa' + | '\ufb00' .. '\ufb17' + | '\uff41' .. '\uff5a' + | '\U00010428' .. '\U0001044f' + | '\U0001d41a' .. '\U0001d433' + | '\U0001d44e' .. '\U0001d467' + | '\U0001d482' .. '\U0001d49b' + | '\U0001d4b6' .. '\U0001d4cf' + | '\U0001d4ea' .. '\U0001d503' + | '\U0001d51e' .. '\U0001d537' + | '\U0001d552' .. '\U0001d56b' + | '\U0001d586' .. '\U0001d59f' + | '\U0001d5ba' .. '\U0001d5d3' + | '\U0001d5ee' .. '\U0001d607' + | '\U0001d622' .. '\U0001d63b' + | '\U0001d656' .. '\U0001d66f' + | '\U0001d68a' .. '\U0001d6a5' + | '\U0001d6c2' .. '\U0001d6da' + | '\U0001d6dc' .. '\U0001d6e1' + | '\U0001d6fc' .. '\U0001d714' + | '\U0001d716' .. '\U0001d71b' + | '\U0001d736' .. '\U0001d74e' + | '\U0001d750' .. '\U0001d755' + | '\U0001d770' .. '\U0001d788' + | '\U0001d78a' .. '\U0001d78f' + | '\U0001d7aa' .. '\U0001d7c2' + | '\U0001d7c4' .. '\U0001d7c9' | '\U0001d7cb' => true, _ => false @@ -651,17 +651,17 @@ mod general_category { pure fn Lm(c: char) -> bool { return match c { - '\u02b0' to '\u02c1' - | '\u02c6' to '\u02d1' - | '\u02e0' to '\u02e4' + '\u02b0' .. '\u02c1' + | '\u02c6' .. '\u02d1' + | '\u02e0' .. '\u02e4' | '\u02ec' | '\u02ee' | '\u0374' | '\u037a' | '\u0559' | '\u0640' - | '\u06e5' to '\u06e6' - | '\u07f4' to '\u07f5' + | '\u06e5' .. '\u06e6' + | '\u07f4' .. '\u07f5' | '\u07fa' | '\u081a' | '\u0824' @@ -673,33 +673,33 @@ mod general_category { | '\u17d7' | '\u1843' | '\u1aa7' - | '\u1c78' to '\u1c7d' - | '\u1d2c' to '\u1d61' + | '\u1c78' .. '\u1c7d' + | '\u1d2c' .. '\u1d61' | '\u1d78' - | '\u1d9b' to '\u1dbf' + | '\u1d9b' .. '\u1dbf' | '\u2071' | '\u207f' - | '\u2090' to '\u209c' + | '\u2090' .. '\u209c' | '\u2c7d' | '\u2d6f' | '\u2e2f' | '\u3005' - | '\u3031' to '\u3035' + | '\u3031' .. '\u3035' | '\u303b' - | '\u309d' to '\u309e' - | '\u30fc' to '\u30fe' + | '\u309d' .. '\u309e' + | '\u30fc' .. '\u30fe' | '\ua015' - | '\ua4f8' to '\ua4fd' + | '\ua4f8' .. '\ua4fd' | '\ua60c' | '\ua67f' - | '\ua717' to '\ua71f' + | '\ua717' .. '\ua71f' | '\ua770' | '\ua788' | '\ua9cf' | '\uaa70' | '\uaadd' | '\uff70' - | '\uff9e' to '\uff9f' + | '\uff9e' .. '\uff9f' => true, _ => false }; @@ -708,184 +708,184 @@ mod general_category { pure fn Lo(c: char) -> bool { return match c { '\u01bb' - | '\u01c0' to '\u01c3' + | '\u01c0' .. '\u01c3' | '\u0294' - | '\u05d0' to '\u05f2' - | '\u0620' to '\u063f' - | '\u0641' to '\u064a' - | '\u066e' to '\u066f' - | '\u0671' to '\u06d3' + | '\u05d0' .. '\u05f2' + | '\u0620' .. '\u063f' + | '\u0641' .. '\u064a' + | '\u066e' .. '\u066f' + | '\u0671' .. '\u06d3' | '\u06d5' - | '\u06ee' to '\u06ef' - | '\u06fa' to '\u06fc' + | '\u06ee' .. '\u06ef' + | '\u06fa' .. '\u06fc' | '\u06ff' | '\u0710' - | '\u0712' to '\u072f' - | '\u074d' to '\u07a5' + | '\u0712' .. '\u072f' + | '\u074d' .. '\u07a5' | '\u07b1' - | '\u07ca' to '\u07ea' - | '\u0800' to '\u0815' - | '\u0840' to '\u0858' - | '\u0904' to '\u0939' + | '\u07ca' .. '\u07ea' + | '\u0800' .. '\u0815' + | '\u0840' .. '\u0858' + | '\u0904' .. '\u0939' | '\u093d' | '\u0950' - | '\u0958' to '\u0961' - | '\u0972' to '\u097f' - | '\u0985' to '\u09b9' + | '\u0958' .. '\u0961' + | '\u0972' .. '\u097f' + | '\u0985' .. '\u09b9' | '\u09bd' | '\u09ce' - | '\u09dc' to '\u09e1' - | '\u09f0' to '\u09f1' - | '\u0a05' to '\u0a39' - | '\u0a59' to '\u0a5e' - | '\u0a72' to '\u0a74' - | '\u0a85' to '\u0ab9' + | '\u09dc' .. '\u09e1' + | '\u09f0' .. '\u09f1' + | '\u0a05' .. '\u0a39' + | '\u0a59' .. '\u0a5e' + | '\u0a72' .. '\u0a74' + | '\u0a85' .. '\u0ab9' | '\u0abd' - | '\u0ad0' to '\u0ae1' - | '\u0b05' to '\u0b39' + | '\u0ad0' .. '\u0ae1' + | '\u0b05' .. '\u0b39' | '\u0b3d' - | '\u0b5c' to '\u0b61' + | '\u0b5c' .. '\u0b61' | '\u0b71' - | '\u0b83' to '\u0bb9' + | '\u0b83' .. '\u0bb9' | '\u0bd0' - | '\u0c05' to '\u0c3d' - | '\u0c58' to '\u0c61' - | '\u0c85' to '\u0cb9' + | '\u0c05' .. '\u0c3d' + | '\u0c58' .. '\u0c61' + | '\u0c85' .. '\u0cb9' | '\u0cbd' - | '\u0cde' to '\u0ce1' - | '\u0cf1' to '\u0cf2' - | '\u0d05' to '\u0d3d' + | '\u0cde' .. '\u0ce1' + | '\u0cf1' .. '\u0cf2' + | '\u0d05' .. '\u0d3d' | '\u0d4e' - | '\u0d60' to '\u0d61' - | '\u0d7a' to '\u0d7f' - | '\u0d85' to '\u0dc6' - | '\u0e01' to '\u0e30' - | '\u0e32' to '\u0e33' - | '\u0e40' to '\u0e45' - | '\u0e81' to '\u0eb0' - | '\u0eb2' to '\u0eb3' - | '\u0ebd' to '\u0ec4' - | '\u0edc' to '\u0f00' - | '\u0f40' to '\u0f6c' - | '\u0f88' to '\u0f8c' - | '\u1000' to '\u102a' + | '\u0d60' .. '\u0d61' + | '\u0d7a' .. '\u0d7f' + | '\u0d85' .. '\u0dc6' + | '\u0e01' .. '\u0e30' + | '\u0e32' .. '\u0e33' + | '\u0e40' .. '\u0e45' + | '\u0e81' .. '\u0eb0' + | '\u0eb2' .. '\u0eb3' + | '\u0ebd' .. '\u0ec4' + | '\u0edc' .. '\u0f00' + | '\u0f40' .. '\u0f6c' + | '\u0f88' .. '\u0f8c' + | '\u1000' .. '\u102a' | '\u103f' - | '\u1050' to '\u1055' - | '\u105a' to '\u105d' + | '\u1050' .. '\u1055' + | '\u105a' .. '\u105d' | '\u1061' - | '\u1065' to '\u1066' - | '\u106e' to '\u1070' - | '\u1075' to '\u1081' + | '\u1065' .. '\u1066' + | '\u106e' .. '\u1070' + | '\u1075' .. '\u1081' | '\u108e' - | '\u10d0' to '\u10fa' - | '\u1100' to '\u135a' - | '\u1380' to '\u138f' - | '\u13a0' to '\u13f4' - | '\u1401' to '\u166c' - | '\u166f' to '\u167f' - | '\u1681' to '\u169a' - | '\u16a0' to '\u16ea' - | '\u1700' to '\u1711' - | '\u1720' to '\u1731' - | '\u1740' to '\u1751' - | '\u1760' to '\u1770' - | '\u1780' to '\u17b3' + | '\u10d0' .. '\u10fa' + | '\u1100' .. '\u135a' + | '\u1380' .. '\u138f' + | '\u13a0' .. '\u13f4' + | '\u1401' .. '\u166c' + | '\u166f' .. '\u167f' + | '\u1681' .. '\u169a' + | '\u16a0' .. '\u16ea' + | '\u1700' .. '\u1711' + | '\u1720' .. '\u1731' + | '\u1740' .. '\u1751' + | '\u1760' .. '\u1770' + | '\u1780' .. '\u17b3' | '\u17dc' - | '\u1820' to '\u1842' - | '\u1844' to '\u18a8' - | '\u18aa' to '\u191c' - | '\u1950' to '\u19ab' - | '\u19c1' to '\u19c7' - | '\u1a00' to '\u1a16' - | '\u1a20' to '\u1a54' - | '\u1b05' to '\u1b33' - | '\u1b45' to '\u1b4b' - | '\u1b83' to '\u1ba0' - | '\u1bae' to '\u1baf' - | '\u1bc0' to '\u1be5' - | '\u1c00' to '\u1c23' - | '\u1c4d' to '\u1c4f' - | '\u1c5a' to '\u1c77' - | '\u1ce9' to '\u1cec' - | '\u1cee' to '\u1cf1' - | '\u2135' to '\u2138' - | '\u2d30' to '\u2d65' - | '\u2d80' to '\u2dde' + | '\u1820' .. '\u1842' + | '\u1844' .. '\u18a8' + | '\u18aa' .. '\u191c' + | '\u1950' .. '\u19ab' + | '\u19c1' .. '\u19c7' + | '\u1a00' .. '\u1a16' + | '\u1a20' .. '\u1a54' + | '\u1b05' .. '\u1b33' + | '\u1b45' .. '\u1b4b' + | '\u1b83' .. '\u1ba0' + | '\u1bae' .. '\u1baf' + | '\u1bc0' .. '\u1be5' + | '\u1c00' .. '\u1c23' + | '\u1c4d' .. '\u1c4f' + | '\u1c5a' .. '\u1c77' + | '\u1ce9' .. '\u1cec' + | '\u1cee' .. '\u1cf1' + | '\u2135' .. '\u2138' + | '\u2d30' .. '\u2d65' + | '\u2d80' .. '\u2dde' | '\u3006' | '\u303c' - | '\u3041' to '\u3096' + | '\u3041' .. '\u3096' | '\u309f' - | '\u30a1' to '\u30fa' - | '\u30ff' to '\u318e' - | '\u31a0' to '\u31ba' - | '\u31f0' to '\u31ff' - | '\u3400' to '\u4db5' - | '\u4e00' to '\ua014' - | '\ua016' to '\ua48c' - | '\ua4d0' to '\ua4f7' - | '\ua500' to '\ua60b' - | '\ua610' to '\ua61f' - | '\ua62a' to '\ua62b' + | '\u30a1' .. '\u30fa' + | '\u30ff' .. '\u318e' + | '\u31a0' .. '\u31ba' + | '\u31f0' .. '\u31ff' + | '\u3400' .. '\u4db5' + | '\u4e00' .. '\ua014' + | '\ua016' .. '\ua48c' + | '\ua4d0' .. '\ua4f7' + | '\ua500' .. '\ua60b' + | '\ua610' .. '\ua61f' + | '\ua62a' .. '\ua62b' | '\ua66e' - | '\ua6a0' to '\ua6e5' - | '\ua7fb' to '\ua801' - | '\ua803' to '\ua805' - | '\ua807' to '\ua80a' - | '\ua80c' to '\ua822' - | '\ua840' to '\ua873' - | '\ua882' to '\ua8b3' - | '\ua8f2' to '\ua8f7' + | '\ua6a0' .. '\ua6e5' + | '\ua7fb' .. '\ua801' + | '\ua803' .. '\ua805' + | '\ua807' .. '\ua80a' + | '\ua80c' .. '\ua822' + | '\ua840' .. '\ua873' + | '\ua882' .. '\ua8b3' + | '\ua8f2' .. '\ua8f7' | '\ua8fb' - | '\ua90a' to '\ua925' - | '\ua930' to '\ua946' - | '\ua960' to '\ua97c' - | '\ua984' to '\ua9b2' - | '\uaa00' to '\uaa28' - | '\uaa40' to '\uaa42' - | '\uaa44' to '\uaa4b' - | '\uaa60' to '\uaa6f' - | '\uaa71' to '\uaa76' + | '\ua90a' .. '\ua925' + | '\ua930' .. '\ua946' + | '\ua960' .. '\ua97c' + | '\ua984' .. '\ua9b2' + | '\uaa00' .. '\uaa28' + | '\uaa40' .. '\uaa42' + | '\uaa44' .. '\uaa4b' + | '\uaa60' .. '\uaa6f' + | '\uaa71' .. '\uaa76' | '\uaa7a' - | '\uaa80' to '\uaaaf' + | '\uaa80' .. '\uaaaf' | '\uaab1' - | '\uaab5' to '\uaab6' - | '\uaab9' to '\uaabd' + | '\uaab5' .. '\uaab6' + | '\uaab9' .. '\uaabd' | '\uaac0' - | '\uaac2' to '\uaadc' - | '\uab01' to '\uabe2' - | '\uac00' to '\ud7fb' - | '\uf900' to '\ufad9' + | '\uaac2' .. '\uaadc' + | '\uab01' .. '\uabe2' + | '\uac00' .. '\ud7fb' + | '\uf900' .. '\ufad9' | '\ufb1d' - | '\ufb1f' to '\ufb28' - | '\ufb2a' to '\ufbb1' - | '\ufbd3' to '\ufd3d' - | '\ufd50' to '\ufdfb' - | '\ufe70' to '\ufefc' - | '\uff66' to '\uff6f' - | '\uff71' to '\uff9d' - | '\uffa0' to '\uffdc' - | '\U00010000' to '\U000100fa' - | '\U00010280' to '\U0001031e' - | '\U00010330' to '\U00010340' - | '\U00010342' to '\U00010349' - | '\U00010380' to '\U0001039d' - | '\U000103a0' to '\U000103cf' - | '\U00010450' to '\U0001049d' - | '\U00010800' to '\U00010855' - | '\U00010900' to '\U00010915' - | '\U00010920' to '\U00010939' + | '\ufb1f' .. '\ufb28' + | '\ufb2a' .. '\ufbb1' + | '\ufbd3' .. '\ufd3d' + | '\ufd50' .. '\ufdfb' + | '\ufe70' .. '\ufefc' + | '\uff66' .. '\uff6f' + | '\uff71' .. '\uff9d' + | '\uffa0' .. '\uffdc' + | '\U00010000' .. '\U000100fa' + | '\U00010280' .. '\U0001031e' + | '\U00010330' .. '\U00010340' + | '\U00010342' .. '\U00010349' + | '\U00010380' .. '\U0001039d' + | '\U000103a0' .. '\U000103cf' + | '\U00010450' .. '\U0001049d' + | '\U00010800' .. '\U00010855' + | '\U00010900' .. '\U00010915' + | '\U00010920' .. '\U00010939' | '\U00010a00' - | '\U00010a10' to '\U00010a33' - | '\U00010a60' to '\U00010a7c' - | '\U00010b00' to '\U00010b35' - | '\U00010b40' to '\U00010b55' - | '\U00010b60' to '\U00010b72' - | '\U00010c00' to '\U00010c48' - | '\U00011003' to '\U00011037' - | '\U00011083' to '\U000110af' - | '\U00012000' to '\U0001236e' - | '\U00013000' to '\U0001b001' - | '\U00020000' to '\U0002fa1d' + | '\U00010a10' .. '\U00010a33' + | '\U00010a60' .. '\U00010a7c' + | '\U00010b00' .. '\U00010b35' + | '\U00010b40' .. '\U00010b55' + | '\U00010b60' .. '\U00010b72' + | '\U00010c00' .. '\U00010c48' + | '\U00011003' .. '\U00011037' + | '\U00011083' .. '\U000110af' + | '\U00012000' .. '\U0001236e' + | '\U00013000' .. '\U0001b001' + | '\U00020000' .. '\U0002fa1d' => true, _ => false }; @@ -897,9 +897,9 @@ mod general_category { | '\u01c8' | '\u01cb' | '\u01f2' - | '\u1f88' to '\u1f8f' - | '\u1f98' to '\u1f9f' - | '\u1fa8' to '\u1faf' + | '\u1f88' .. '\u1f8f' + | '\u1f98' .. '\u1f9f' + | '\u1fa8' .. '\u1faf' | '\u1fbc' | '\u1fcc' | '\u1ffc' @@ -910,9 +910,9 @@ mod general_category { pure fn Lu(c: char) -> bool { return match c { - '\x41' to '\x5a' - | '\xc0' to '\xd6' - | '\xd8' to '\xde' + '\x41' .. '\x5a' + | '\xc0' .. '\xd6' + | '\xd8' .. '\xde' | '\u0100' | '\u0102' | '\u0104' @@ -972,27 +972,27 @@ mod general_category { | '\u0172' | '\u0174' | '\u0176' - | '\u0178' to '\u0179' + | '\u0178' .. '\u0179' | '\u017b' | '\u017d' - | '\u0181' to '\u0182' + | '\u0181' .. '\u0182' | '\u0184' - | '\u0186' to '\u0187' - | '\u0189' to '\u018b' - | '\u018e' to '\u0191' - | '\u0193' to '\u0194' - | '\u0196' to '\u0198' - | '\u019c' to '\u019d' - | '\u019f' to '\u01a0' + | '\u0186' .. '\u0187' + | '\u0189' .. '\u018b' + | '\u018e' .. '\u0191' + | '\u0193' .. '\u0194' + | '\u0196' .. '\u0198' + | '\u019c' .. '\u019d' + | '\u019f' .. '\u01a0' | '\u01a2' | '\u01a4' - | '\u01a6' to '\u01a7' + | '\u01a6' .. '\u01a7' | '\u01a9' | '\u01ac' - | '\u01ae' to '\u01af' - | '\u01b1' to '\u01b3' + | '\u01ae' .. '\u01af' + | '\u01b1' .. '\u01b3' | '\u01b5' - | '\u01b7' to '\u01b8' + | '\u01b7' .. '\u01b8' | '\u01bc' | '\u01c4' | '\u01c7' @@ -1016,7 +1016,7 @@ mod general_category { | '\u01ee' | '\u01f1' | '\u01f4' - | '\u01f6' to '\u01f8' + | '\u01f6' .. '\u01f8' | '\u01fa' | '\u01fc' | '\u01fe' @@ -1046,10 +1046,10 @@ mod general_category { | '\u022e' | '\u0230' | '\u0232' - | '\u023a' to '\u023b' - | '\u023d' to '\u023e' + | '\u023a' .. '\u023b' + | '\u023d' .. '\u023e' | '\u0241' - | '\u0243' to '\u0246' + | '\u0243' .. '\u0246' | '\u0248' | '\u024a' | '\u024c' @@ -1058,10 +1058,10 @@ mod general_category { | '\u0372' | '\u0376' | '\u0386' - | '\u0388' to '\u038f' - | '\u0391' to '\u03ab' + | '\u0388' .. '\u038f' + | '\u0391' .. '\u03ab' | '\u03cf' - | '\u03d2' to '\u03d4' + | '\u03d2' .. '\u03d4' | '\u03d8' | '\u03da' | '\u03dc' @@ -1076,8 +1076,8 @@ mod general_category { | '\u03ee' | '\u03f4' | '\u03f7' - | '\u03f9' to '\u03fa' - | '\u03fd' to '\u042f' + | '\u03f9' .. '\u03fa' + | '\u03fd' .. '\u042f' | '\u0460' | '\u0462' | '\u0464' @@ -1122,7 +1122,7 @@ mod general_category { | '\u04ba' | '\u04bc' | '\u04be' - | '\u04c0' to '\u04c1' + | '\u04c0' .. '\u04c1' | '\u04c3' | '\u04c5' | '\u04c7' @@ -1173,8 +1173,8 @@ mod general_category { | '\u0522' | '\u0524' | '\u0526' - | '\u0531' to '\u0556' - | '\u10a0' to '\u10c5' + | '\u0531' .. '\u0556' + | '\u10a0' .. '\u10c5' | '\u1e00' | '\u1e02' | '\u1e04' @@ -1299,42 +1299,42 @@ mod general_category { | '\u1efa' | '\u1efc' | '\u1efe' - | '\u1f08' to '\u1f0f' - | '\u1f18' to '\u1f1d' - | '\u1f28' to '\u1f2f' - | '\u1f38' to '\u1f3f' - | '\u1f48' to '\u1f4d' - | '\u1f59' to '\u1f5f' - | '\u1f68' to '\u1f6f' - | '\u1fb8' to '\u1fbb' - | '\u1fc8' to '\u1fcb' - | '\u1fd8' to '\u1fdb' - | '\u1fe8' to '\u1fec' - | '\u1ff8' to '\u1ffb' + | '\u1f08' .. '\u1f0f' + | '\u1f18' .. '\u1f1d' + | '\u1f28' .. '\u1f2f' + | '\u1f38' .. '\u1f3f' + | '\u1f48' .. '\u1f4d' + | '\u1f59' .. '\u1f5f' + | '\u1f68' .. '\u1f6f' + | '\u1fb8' .. '\u1fbb' + | '\u1fc8' .. '\u1fcb' + | '\u1fd8' .. '\u1fdb' + | '\u1fe8' .. '\u1fec' + | '\u1ff8' .. '\u1ffb' | '\u2102' | '\u2107' - | '\u210b' to '\u210d' - | '\u2110' to '\u2112' + | '\u210b' .. '\u210d' + | '\u2110' .. '\u2112' | '\u2115' - | '\u2119' to '\u211d' + | '\u2119' .. '\u211d' | '\u2124' | '\u2126' | '\u2128' - | '\u212a' to '\u212d' - | '\u2130' to '\u2133' - | '\u213e' to '\u213f' + | '\u212a' .. '\u212d' + | '\u2130' .. '\u2133' + | '\u213e' .. '\u213f' | '\u2145' | '\u2183' - | '\u2c00' to '\u2c2e' + | '\u2c00' .. '\u2c2e' | '\u2c60' - | '\u2c62' to '\u2c64' + | '\u2c62' .. '\u2c64' | '\u2c67' | '\u2c69' | '\u2c6b' - | '\u2c6d' to '\u2c70' + | '\u2c6d' .. '\u2c70' | '\u2c72' | '\u2c75' - | '\u2c7e' to '\u2c80' + | '\u2c7e' .. '\u2c80' | '\u2c82' | '\u2c84' | '\u2c86' @@ -1461,7 +1461,7 @@ mod general_category { | '\ua76e' | '\ua779' | '\ua77b' - | '\ua77d' to '\ua77e' + | '\ua77d' .. '\ua77e' | '\ua780' | '\ua782' | '\ua784' @@ -1474,26 +1474,26 @@ mod general_category { | '\ua7a4' | '\ua7a6' | '\ua7a8' - | '\uff21' to '\uff3a' - | '\U00010400' to '\U00010427' - | '\U0001d400' to '\U0001d419' - | '\U0001d434' to '\U0001d44d' - | '\U0001d468' to '\U0001d481' - | '\U0001d49c' to '\U0001d4b5' - | '\U0001d4d0' to '\U0001d4e9' - | '\U0001d504' to '\U0001d51c' - | '\U0001d538' to '\U0001d550' - | '\U0001d56c' to '\U0001d585' - | '\U0001d5a0' to '\U0001d5b9' - | '\U0001d5d4' to '\U0001d5ed' - | '\U0001d608' to '\U0001d621' - | '\U0001d63c' to '\U0001d655' - | '\U0001d670' to '\U0001d689' - | '\U0001d6a8' to '\U0001d6c0' - | '\U0001d6e2' to '\U0001d6fa' - | '\U0001d71c' to '\U0001d734' - | '\U0001d756' to '\U0001d76e' - | '\U0001d790' to '\U0001d7a8' + | '\uff21' .. '\uff3a' + | '\U00010400' .. '\U00010427' + | '\U0001d400' .. '\U0001d419' + | '\U0001d434' .. '\U0001d44d' + | '\U0001d468' .. '\U0001d481' + | '\U0001d49c' .. '\U0001d4b5' + | '\U0001d4d0' .. '\U0001d4e9' + | '\U0001d504' .. '\U0001d51c' + | '\U0001d538' .. '\U0001d550' + | '\U0001d56c' .. '\U0001d585' + | '\U0001d5a0' .. '\U0001d5b9' + | '\U0001d5d4' .. '\U0001d5ed' + | '\U0001d608' .. '\U0001d621' + | '\U0001d63c' .. '\U0001d655' + | '\U0001d670' .. '\U0001d689' + | '\U0001d6a8' .. '\U0001d6c0' + | '\U0001d6e2' .. '\U0001d6fa' + | '\U0001d71c' .. '\U0001d734' + | '\U0001d756' .. '\U0001d76e' + | '\U0001d790' .. '\U0001d7a8' | '\U0001d7ca' => true, _ => false @@ -1504,108 +1504,108 @@ mod general_category { return match c { '\u0903' | '\u093b' - | '\u093e' to '\u0940' - | '\u0949' to '\u094c' - | '\u094e' to '\u094f' - | '\u0982' to '\u0983' - | '\u09be' to '\u09c0' - | '\u09c7' to '\u09cc' + | '\u093e' .. '\u0940' + | '\u0949' .. '\u094c' + | '\u094e' .. '\u094f' + | '\u0982' .. '\u0983' + | '\u09be' .. '\u09c0' + | '\u09c7' .. '\u09cc' | '\u09d7' | '\u0a03' - | '\u0a3e' to '\u0a40' + | '\u0a3e' .. '\u0a40' | '\u0a83' - | '\u0abe' to '\u0ac0' - | '\u0ac9' to '\u0acc' - | '\u0b02' to '\u0b03' + | '\u0abe' .. '\u0ac0' + | '\u0ac9' .. '\u0acc' + | '\u0b02' .. '\u0b03' | '\u0b3e' | '\u0b40' - | '\u0b47' to '\u0b4c' + | '\u0b47' .. '\u0b4c' | '\u0b57' - | '\u0bbe' to '\u0bbf' - | '\u0bc1' to '\u0bcc' + | '\u0bbe' .. '\u0bbf' + | '\u0bc1' .. '\u0bcc' | '\u0bd7' - | '\u0c01' to '\u0c03' - | '\u0c41' to '\u0c44' - | '\u0c82' to '\u0c83' + | '\u0c01' .. '\u0c03' + | '\u0c41' .. '\u0c44' + | '\u0c82' .. '\u0c83' | '\u0cbe' - | '\u0cc0' to '\u0cc4' - | '\u0cc7' to '\u0ccb' - | '\u0cd5' to '\u0cd6' - | '\u0d02' to '\u0d03' - | '\u0d3e' to '\u0d40' - | '\u0d46' to '\u0d4c' + | '\u0cc0' .. '\u0cc4' + | '\u0cc7' .. '\u0ccb' + | '\u0cd5' .. '\u0cd6' + | '\u0d02' .. '\u0d03' + | '\u0d3e' .. '\u0d40' + | '\u0d46' .. '\u0d4c' | '\u0d57' - | '\u0d82' to '\u0d83' - | '\u0dcf' to '\u0dd1' - | '\u0dd8' to '\u0df3' - | '\u0f3e' to '\u0f3f' + | '\u0d82' .. '\u0d83' + | '\u0dcf' .. '\u0dd1' + | '\u0dd8' .. '\u0df3' + | '\u0f3e' .. '\u0f3f' | '\u0f7f' - | '\u102b' to '\u102c' + | '\u102b' .. '\u102c' | '\u1031' | '\u1038' - | '\u103b' to '\u103c' - | '\u1056' to '\u1057' - | '\u1062' to '\u1064' - | '\u1067' to '\u106d' - | '\u1083' to '\u1084' - | '\u1087' to '\u108c' + | '\u103b' .. '\u103c' + | '\u1056' .. '\u1057' + | '\u1062' .. '\u1064' + | '\u1067' .. '\u106d' + | '\u1083' .. '\u1084' + | '\u1087' .. '\u108c' | '\u108f' - | '\u109a' to '\u109c' + | '\u109a' .. '\u109c' | '\u17b6' - | '\u17be' to '\u17c5' - | '\u17c7' to '\u17c8' - | '\u1923' to '\u1926' - | '\u1929' to '\u1931' - | '\u1933' to '\u1938' - | '\u19b0' to '\u19c0' - | '\u19c8' to '\u19c9' - | '\u1a19' to '\u1a1b' + | '\u17be' .. '\u17c5' + | '\u17c7' .. '\u17c8' + | '\u1923' .. '\u1926' + | '\u1929' .. '\u1931' + | '\u1933' .. '\u1938' + | '\u19b0' .. '\u19c0' + | '\u19c8' .. '\u19c9' + | '\u1a19' .. '\u1a1b' | '\u1a55' | '\u1a57' | '\u1a61' - | '\u1a63' to '\u1a64' - | '\u1a6d' to '\u1a72' + | '\u1a63' .. '\u1a64' + | '\u1a6d' .. '\u1a72' | '\u1b04' | '\u1b35' | '\u1b3b' - | '\u1b3d' to '\u1b41' - | '\u1b43' to '\u1b44' + | '\u1b3d' .. '\u1b41' + | '\u1b43' .. '\u1b44' | '\u1b82' | '\u1ba1' - | '\u1ba6' to '\u1ba7' + | '\u1ba6' .. '\u1ba7' | '\u1baa' | '\u1be7' - | '\u1bea' to '\u1bec' + | '\u1bea' .. '\u1bec' | '\u1bee' - | '\u1bf2' to '\u1bf3' - | '\u1c24' to '\u1c2b' - | '\u1c34' to '\u1c35' + | '\u1bf2' .. '\u1bf3' + | '\u1c24' .. '\u1c2b' + | '\u1c34' .. '\u1c35' | '\u1ce1' | '\u1cf2' - | '\ua823' to '\ua824' + | '\ua823' .. '\ua824' | '\ua827' - | '\ua880' to '\ua881' - | '\ua8b4' to '\ua8c3' - | '\ua952' to '\ua953' + | '\ua880' .. '\ua881' + | '\ua8b4' .. '\ua8c3' + | '\ua952' .. '\ua953' | '\ua983' - | '\ua9b4' to '\ua9b5' - | '\ua9ba' to '\ua9bb' - | '\ua9bd' to '\ua9c0' - | '\uaa2f' to '\uaa30' - | '\uaa33' to '\uaa34' + | '\ua9b4' .. '\ua9b5' + | '\ua9ba' .. '\ua9bb' + | '\ua9bd' .. '\ua9c0' + | '\uaa2f' .. '\uaa30' + | '\uaa33' .. '\uaa34' | '\uaa4d' | '\uaa7b' - | '\uabe3' to '\uabe4' - | '\uabe6' to '\uabe7' - | '\uabe9' to '\uabea' + | '\uabe3' .. '\uabe4' + | '\uabe6' .. '\uabe7' + | '\uabe9' .. '\uabea' | '\uabec' | '\U00011000' | '\U00011002' | '\U00011082' - | '\U000110b0' to '\U000110b2' - | '\U000110b7' to '\U000110b8' - | '\U0001d165' to '\U0001d166' - | '\U0001d16d' to '\U0001d172' + | '\U000110b0' .. '\U000110b2' + | '\U000110b7' .. '\U000110b8' + | '\U0001d165' .. '\U0001d166' + | '\U0001d16d' .. '\U0001d172' => true, _ => false }; @@ -1613,10 +1613,10 @@ mod general_category { pure fn Me(c: char) -> bool { return match c { - '\u0488' to '\u0489' - | '\u20dd' to '\u20e0' - | '\u20e2' to '\u20e4' - | '\ua670' to '\ua672' + '\u0488' .. '\u0489' + | '\u20dd' .. '\u20e0' + | '\u20e2' .. '\u20e4' + | '\ua670' .. '\ua672' => true, _ => false }; @@ -1624,192 +1624,192 @@ mod general_category { pure fn Mn(c: char) -> bool { return match c { - '\u0300' to '\u036f' - | '\u0483' to '\u0487' - | '\u0591' to '\u05bd' + '\u0300' .. '\u036f' + | '\u0483' .. '\u0487' + | '\u0591' .. '\u05bd' | '\u05bf' - | '\u05c1' to '\u05c2' - | '\u05c4' to '\u05c5' + | '\u05c1' .. '\u05c2' + | '\u05c4' .. '\u05c5' | '\u05c7' - | '\u0610' to '\u061a' - | '\u064b' to '\u065f' + | '\u0610' .. '\u061a' + | '\u064b' .. '\u065f' | '\u0670' - | '\u06d6' to '\u06dc' - | '\u06df' to '\u06e4' - | '\u06e7' to '\u06e8' - | '\u06ea' to '\u06ed' + | '\u06d6' .. '\u06dc' + | '\u06df' .. '\u06e4' + | '\u06e7' .. '\u06e8' + | '\u06ea' .. '\u06ed' | '\u0711' - | '\u0730' to '\u074a' - | '\u07a6' to '\u07b0' - | '\u07eb' to '\u07f3' - | '\u0816' to '\u0819' - | '\u081b' to '\u0823' - | '\u0825' to '\u0827' - | '\u0829' to '\u082d' - | '\u0859' to '\u085b' - | '\u0900' to '\u0902' + | '\u0730' .. '\u074a' + | '\u07a6' .. '\u07b0' + | '\u07eb' .. '\u07f3' + | '\u0816' .. '\u0819' + | '\u081b' .. '\u0823' + | '\u0825' .. '\u0827' + | '\u0829' .. '\u082d' + | '\u0859' .. '\u085b' + | '\u0900' .. '\u0902' | '\u093a' | '\u093c' - | '\u0941' to '\u0948' + | '\u0941' .. '\u0948' | '\u094d' - | '\u0951' to '\u0957' - | '\u0962' to '\u0963' + | '\u0951' .. '\u0957' + | '\u0962' .. '\u0963' | '\u0981' | '\u09bc' - | '\u09c1' to '\u09c4' + | '\u09c1' .. '\u09c4' | '\u09cd' - | '\u09e2' to '\u09e3' - | '\u0a01' to '\u0a02' + | '\u09e2' .. '\u09e3' + | '\u0a01' .. '\u0a02' | '\u0a3c' - | '\u0a41' to '\u0a51' - | '\u0a70' to '\u0a71' - | '\u0a75' to '\u0a82' + | '\u0a41' .. '\u0a51' + | '\u0a70' .. '\u0a71' + | '\u0a75' .. '\u0a82' | '\u0abc' - | '\u0ac1' to '\u0ac8' + | '\u0ac1' .. '\u0ac8' | '\u0acd' - | '\u0ae2' to '\u0ae3' + | '\u0ae2' .. '\u0ae3' | '\u0b01' | '\u0b3c' | '\u0b3f' - | '\u0b41' to '\u0b44' - | '\u0b4d' to '\u0b56' - | '\u0b62' to '\u0b63' + | '\u0b41' .. '\u0b44' + | '\u0b4d' .. '\u0b56' + | '\u0b62' .. '\u0b63' | '\u0b82' | '\u0bc0' | '\u0bcd' - | '\u0c3e' to '\u0c40' - | '\u0c46' to '\u0c56' - | '\u0c62' to '\u0c63' + | '\u0c3e' .. '\u0c40' + | '\u0c46' .. '\u0c56' + | '\u0c62' .. '\u0c63' | '\u0cbc' | '\u0cbf' | '\u0cc6' - | '\u0ccc' to '\u0ccd' - | '\u0ce2' to '\u0ce3' - | '\u0d41' to '\u0d44' + | '\u0ccc' .. '\u0ccd' + | '\u0ce2' .. '\u0ce3' + | '\u0d41' .. '\u0d44' | '\u0d4d' - | '\u0d62' to '\u0d63' + | '\u0d62' .. '\u0d63' | '\u0dca' - | '\u0dd2' to '\u0dd6' + | '\u0dd2' .. '\u0dd6' | '\u0e31' - | '\u0e34' to '\u0e3a' - | '\u0e47' to '\u0e4e' + | '\u0e34' .. '\u0e3a' + | '\u0e47' .. '\u0e4e' | '\u0eb1' - | '\u0eb4' to '\u0ebc' - | '\u0ec8' to '\u0ecd' - | '\u0f18' to '\u0f19' + | '\u0eb4' .. '\u0ebc' + | '\u0ec8' .. '\u0ecd' + | '\u0f18' .. '\u0f19' | '\u0f35' | '\u0f37' | '\u0f39' - | '\u0f71' to '\u0f7e' - | '\u0f80' to '\u0f84' - | '\u0f86' to '\u0f87' - | '\u0f8d' to '\u0fbc' + | '\u0f71' .. '\u0f7e' + | '\u0f80' .. '\u0f84' + | '\u0f86' .. '\u0f87' + | '\u0f8d' .. '\u0fbc' | '\u0fc6' - | '\u102d' to '\u1030' - | '\u1032' to '\u1037' - | '\u1039' to '\u103a' - | '\u103d' to '\u103e' - | '\u1058' to '\u1059' - | '\u105e' to '\u1060' - | '\u1071' to '\u1074' + | '\u102d' .. '\u1030' + | '\u1032' .. '\u1037' + | '\u1039' .. '\u103a' + | '\u103d' .. '\u103e' + | '\u1058' .. '\u1059' + | '\u105e' .. '\u1060' + | '\u1071' .. '\u1074' | '\u1082' - | '\u1085' to '\u1086' + | '\u1085' .. '\u1086' | '\u108d' | '\u109d' - | '\u135d' to '\u135f' - | '\u1712' to '\u1714' - | '\u1732' to '\u1734' - | '\u1752' to '\u1753' - | '\u1772' to '\u1773' - | '\u17b7' to '\u17bd' + | '\u135d' .. '\u135f' + | '\u1712' .. '\u1714' + | '\u1732' .. '\u1734' + | '\u1752' .. '\u1753' + | '\u1772' .. '\u1773' + | '\u17b7' .. '\u17bd' | '\u17c6' - | '\u17c9' to '\u17d3' + | '\u17c9' .. '\u17d3' | '\u17dd' - | '\u180b' to '\u180d' + | '\u180b' .. '\u180d' | '\u18a9' - | '\u1920' to '\u1922' - | '\u1927' to '\u1928' + | '\u1920' .. '\u1922' + | '\u1927' .. '\u1928' | '\u1932' - | '\u1939' to '\u193b' - | '\u1a17' to '\u1a18' + | '\u1939' .. '\u193b' + | '\u1a17' .. '\u1a18' | '\u1a56' - | '\u1a58' to '\u1a60' + | '\u1a58' .. '\u1a60' | '\u1a62' - | '\u1a65' to '\u1a6c' - | '\u1a73' to '\u1a7f' - | '\u1b00' to '\u1b03' + | '\u1a65' .. '\u1a6c' + | '\u1a73' .. '\u1a7f' + | '\u1b00' .. '\u1b03' | '\u1b34' - | '\u1b36' to '\u1b3a' + | '\u1b36' .. '\u1b3a' | '\u1b3c' | '\u1b42' - | '\u1b6b' to '\u1b73' - | '\u1b80' to '\u1b81' - | '\u1ba2' to '\u1ba5' - | '\u1ba8' to '\u1ba9' + | '\u1b6b' .. '\u1b73' + | '\u1b80' .. '\u1b81' + | '\u1ba2' .. '\u1ba5' + | '\u1ba8' .. '\u1ba9' | '\u1be6' - | '\u1be8' to '\u1be9' + | '\u1be8' .. '\u1be9' | '\u1bed' - | '\u1bef' to '\u1bf1' - | '\u1c2c' to '\u1c33' - | '\u1c36' to '\u1c37' - | '\u1cd0' to '\u1cd2' - | '\u1cd4' to '\u1ce0' - | '\u1ce2' to '\u1ce8' + | '\u1bef' .. '\u1bf1' + | '\u1c2c' .. '\u1c33' + | '\u1c36' .. '\u1c37' + | '\u1cd0' .. '\u1cd2' + | '\u1cd4' .. '\u1ce0' + | '\u1ce2' .. '\u1ce8' | '\u1ced' - | '\u1dc0' to '\u1dff' - | '\u20d0' to '\u20dc' + | '\u1dc0' .. '\u1dff' + | '\u20d0' .. '\u20dc' | '\u20e1' - | '\u20e5' to '\u20f0' - | '\u2cef' to '\u2cf1' + | '\u20e5' .. '\u20f0' + | '\u2cef' .. '\u2cf1' | '\u2d7f' - | '\u2de0' to '\u2dff' - | '\u302a' to '\u302f' - | '\u3099' to '\u309a' + | '\u2de0' .. '\u2dff' + | '\u302a' .. '\u302f' + | '\u3099' .. '\u309a' | '\ua66f' - | '\ua67c' to '\ua67d' - | '\ua6f0' to '\ua6f1' + | '\ua67c' .. '\ua67d' + | '\ua6f0' .. '\ua6f1' | '\ua802' | '\ua806' | '\ua80b' - | '\ua825' to '\ua826' + | '\ua825' .. '\ua826' | '\ua8c4' - | '\ua8e0' to '\ua8f1' - | '\ua926' to '\ua92d' - | '\ua947' to '\ua951' - | '\ua980' to '\ua982' + | '\ua8e0' .. '\ua8f1' + | '\ua926' .. '\ua92d' + | '\ua947' .. '\ua951' + | '\ua980' .. '\ua982' | '\ua9b3' - | '\ua9b6' to '\ua9b9' + | '\ua9b6' .. '\ua9b9' | '\ua9bc' - | '\uaa29' to '\uaa2e' - | '\uaa31' to '\uaa32' - | '\uaa35' to '\uaa36' + | '\uaa29' .. '\uaa2e' + | '\uaa31' .. '\uaa32' + | '\uaa35' .. '\uaa36' | '\uaa43' | '\uaa4c' | '\uaab0' - | '\uaab2' to '\uaab4' - | '\uaab7' to '\uaab8' - | '\uaabe' to '\uaabf' + | '\uaab2' .. '\uaab4' + | '\uaab7' .. '\uaab8' + | '\uaabe' .. '\uaabf' | '\uaac1' | '\uabe5' | '\uabe8' | '\uabed' | '\ufb1e' - | '\ufe00' to '\ufe0f' - | '\ufe20' to '\ufe26' + | '\ufe00' .. '\ufe0f' + | '\ufe20' .. '\ufe26' | '\U000101fd' - | '\U00010a01' to '\U00010a0f' - | '\U00010a38' to '\U00010a3f' + | '\U00010a01' .. '\U00010a0f' + | '\U00010a38' .. '\U00010a3f' | '\U00011001' - | '\U00011038' to '\U00011046' - | '\U00011080' to '\U00011081' - | '\U000110b3' to '\U000110b6' - | '\U000110b9' to '\U000110ba' - | '\U0001d167' to '\U0001d169' - | '\U0001d17b' to '\U0001d182' - | '\U0001d185' to '\U0001d18b' - | '\U0001d1aa' to '\U0001d1ad' - | '\U0001d242' to '\U0001d244' - | '\U000e0100' to '\U000e01ef' + | '\U00011038' .. '\U00011046' + | '\U00011080' .. '\U00011081' + | '\U000110b3' .. '\U000110b6' + | '\U000110b9' .. '\U000110ba' + | '\U0001d167' .. '\U0001d169' + | '\U0001d17b' .. '\U0001d182' + | '\U0001d185' .. '\U0001d18b' + | '\U0001d1aa' .. '\U0001d1ad' + | '\U0001d242' .. '\U0001d244' + | '\U000e0100' .. '\U000e01ef' => true, _ => false }; @@ -1817,43 +1817,43 @@ mod general_category { pure fn Nd(c: char) -> bool { return match c { - '\x30' to '\x39' - | '\u0660' to '\u0669' - | '\u06f0' to '\u06f9' - | '\u07c0' to '\u07c9' - | '\u0966' to '\u096f' - | '\u09e6' to '\u09ef' - | '\u0a66' to '\u0a6f' - | '\u0ae6' to '\u0aef' - | '\u0b66' to '\u0b6f' - | '\u0be6' to '\u0bef' - | '\u0c66' to '\u0c6f' - | '\u0ce6' to '\u0cef' - | '\u0d66' to '\u0d6f' - | '\u0e50' to '\u0e59' - | '\u0ed0' to '\u0ed9' - | '\u0f20' to '\u0f29' - | '\u1040' to '\u1049' - | '\u1090' to '\u1099' - | '\u17e0' to '\u17e9' - | '\u1810' to '\u1819' - | '\u1946' to '\u194f' - | '\u19d0' to '\u19d9' - | '\u1a80' to '\u1a99' - | '\u1b50' to '\u1b59' - | '\u1bb0' to '\u1bb9' - | '\u1c40' to '\u1c49' - | '\u1c50' to '\u1c59' - | '\ua620' to '\ua629' - | '\ua8d0' to '\ua8d9' - | '\ua900' to '\ua909' - | '\ua9d0' to '\ua9d9' - | '\uaa50' to '\uaa59' - | '\uabf0' to '\uabf9' - | '\uff10' to '\uff19' - | '\U000104a0' to '\U000104a9' - | '\U00011066' to '\U0001106f' - | '\U0001d7ce' to '\U0001d7ff' + '\x30' .. '\x39' + | '\u0660' .. '\u0669' + | '\u06f0' .. '\u06f9' + | '\u07c0' .. '\u07c9' + | '\u0966' .. '\u096f' + | '\u09e6' .. '\u09ef' + | '\u0a66' .. '\u0a6f' + | '\u0ae6' .. '\u0aef' + | '\u0b66' .. '\u0b6f' + | '\u0be6' .. '\u0bef' + | '\u0c66' .. '\u0c6f' + | '\u0ce6' .. '\u0cef' + | '\u0d66' .. '\u0d6f' + | '\u0e50' .. '\u0e59' + | '\u0ed0' .. '\u0ed9' + | '\u0f20' .. '\u0f29' + | '\u1040' .. '\u1049' + | '\u1090' .. '\u1099' + | '\u17e0' .. '\u17e9' + | '\u1810' .. '\u1819' + | '\u1946' .. '\u194f' + | '\u19d0' .. '\u19d9' + | '\u1a80' .. '\u1a99' + | '\u1b50' .. '\u1b59' + | '\u1bb0' .. '\u1bb9' + | '\u1c40' .. '\u1c49' + | '\u1c50' .. '\u1c59' + | '\ua620' .. '\ua629' + | '\ua8d0' .. '\ua8d9' + | '\ua900' .. '\ua909' + | '\ua9d0' .. '\ua9d9' + | '\uaa50' .. '\uaa59' + | '\uabf0' .. '\uabf9' + | '\uff10' .. '\uff19' + | '\U000104a0' .. '\U000104a9' + | '\U00011066' .. '\U0001106f' + | '\U0001d7ce' .. '\U0001d7ff' => true, _ => false }; @@ -1861,18 +1861,18 @@ mod general_category { pure fn Nl(c: char) -> bool { return match c { - '\u16ee' to '\u16f0' - | '\u2160' to '\u2182' - | '\u2185' to '\u2188' + '\u16ee' .. '\u16f0' + | '\u2160' .. '\u2182' + | '\u2185' .. '\u2188' | '\u3007' - | '\u3021' to '\u3029' - | '\u3038' to '\u303a' - | '\ua6e6' to '\ua6ef' - | '\U00010140' to '\U00010174' + | '\u3021' .. '\u3029' + | '\u3038' .. '\u303a' + | '\ua6e6' .. '\ua6ef' + | '\U00010140' .. '\U00010174' | '\U00010341' | '\U0001034a' - | '\U000103d1' to '\U000103d5' - | '\U00012400' to '\U00012462' + | '\U000103d1' .. '\U000103d5' + | '\U00012400' .. '\U00012462' => true, _ => false }; @@ -1880,47 +1880,47 @@ mod general_category { pure fn No(c: char) -> bool { return match c { - '\xb2' to '\xb3' + '\xb2' .. '\xb3' | '\xb9' - | '\xbc' to '\xbe' - | '\u09f4' to '\u09f9' - | '\u0b72' to '\u0b77' - | '\u0bf0' to '\u0bf2' - | '\u0c78' to '\u0c7e' - | '\u0d70' to '\u0d75' - | '\u0f2a' to '\u0f33' - | '\u1369' to '\u137c' - | '\u17f0' to '\u17f9' + | '\xbc' .. '\xbe' + | '\u09f4' .. '\u09f9' + | '\u0b72' .. '\u0b77' + | '\u0bf0' .. '\u0bf2' + | '\u0c78' .. '\u0c7e' + | '\u0d70' .. '\u0d75' + | '\u0f2a' .. '\u0f33' + | '\u1369' .. '\u137c' + | '\u17f0' .. '\u17f9' | '\u19da' | '\u2070' - | '\u2074' to '\u2079' - | '\u2080' to '\u2089' - | '\u2150' to '\u215f' + | '\u2074' .. '\u2079' + | '\u2080' .. '\u2089' + | '\u2150' .. '\u215f' | '\u2189' - | '\u2460' to '\u249b' - | '\u24ea' to '\u24ff' - | '\u2776' to '\u2793' + | '\u2460' .. '\u249b' + | '\u24ea' .. '\u24ff' + | '\u2776' .. '\u2793' | '\u2cfd' - | '\u3192' to '\u3195' - | '\u3220' to '\u3229' - | '\u3251' to '\u325f' - | '\u3280' to '\u3289' - | '\u32b1' to '\u32bf' - | '\ua830' to '\ua835' - | '\U00010107' to '\U00010133' - | '\U00010175' to '\U00010178' + | '\u3192' .. '\u3195' + | '\u3220' .. '\u3229' + | '\u3251' .. '\u325f' + | '\u3280' .. '\u3289' + | '\u32b1' .. '\u32bf' + | '\ua830' .. '\ua835' + | '\U00010107' .. '\U00010133' + | '\U00010175' .. '\U00010178' | '\U0001018a' - | '\U00010320' to '\U00010323' - | '\U00010858' to '\U0001085f' - | '\U00010916' to '\U0001091b' - | '\U00010a40' to '\U00010a47' - | '\U00010a7d' to '\U00010a7e' - | '\U00010b58' to '\U00010b5f' - | '\U00010b78' to '\U00010b7f' - | '\U00010e60' to '\U00010e7e' - | '\U00011052' to '\U00011065' - | '\U0001d360' to '\U0001d371' - | '\U0001f100' to '\U0001f10a' + | '\U00010320' .. '\U00010323' + | '\U00010858' .. '\U0001085f' + | '\U00010916' .. '\U0001091b' + | '\U00010a40' .. '\U00010a47' + | '\U00010a7d' .. '\U00010a7e' + | '\U00010b58' .. '\U00010b5f' + | '\U00010b78' .. '\U00010b7f' + | '\U00010e60' .. '\U00010e7e' + | '\U00011052' .. '\U00011065' + | '\U0001d360' .. '\U0001d371' + | '\U0001f100' .. '\U0001f10a' => true, _ => false }; @@ -1929,10 +1929,10 @@ mod general_category { pure fn Pc(c: char) -> bool { return match c { '\x5f' - | '\u203f' to '\u2040' + | '\u203f' .. '\u2040' | '\u2054' - | '\ufe33' to '\ufe34' - | '\ufe4d' to '\ufe4f' + | '\ufe33' .. '\ufe34' + | '\ufe4d' .. '\ufe4f' | '\uff3f' => true, _ => false @@ -1946,13 +1946,13 @@ mod general_category { | '\u05be' | '\u1400' | '\u1806' - | '\u2010' to '\u2015' + | '\u2010' .. '\u2015' | '\u2e17' | '\u2e1a' | '\u301c' | '\u3030' | '\u30a0' - | '\ufe31' to '\ufe32' + | '\ufe31' .. '\ufe32' | '\ufe58' | '\ufe63' | '\uff0d' @@ -2013,7 +2013,7 @@ mod general_category { | '\u3017' | '\u3019' | '\u301b' - | '\u301e' to '\u301f' + | '\u301e' .. '\u301f' | '\ufd3f' | '\ufe18' | '\ufe36' @@ -2059,7 +2059,7 @@ mod general_category { return match c { '\xab' | '\u2018' - | '\u201b' to '\u201c' + | '\u201b' .. '\u201c' | '\u201f' | '\u2039' | '\u2e02' @@ -2075,132 +2075,132 @@ mod general_category { pure fn Po(c: char) -> bool { return match c { - '\x21' to '\x23' - | '\x25' to '\x27' + '\x21' .. '\x23' + | '\x25' .. '\x27' | '\x2a' | '\x2c' - | '\x2e' to '\x2f' - | '\x3a' to '\x3b' - | '\x3f' to '\x40' + | '\x2e' .. '\x2f' + | '\x3a' .. '\x3b' + | '\x3f' .. '\x40' | '\x5c' | '\xa1' | '\xb7' | '\xbf' | '\u037e' | '\u0387' - | '\u055a' to '\u055f' + | '\u055a' .. '\u055f' | '\u0589' | '\u05c0' | '\u05c3' | '\u05c6' - | '\u05f3' to '\u05f4' - | '\u0609' to '\u060a' - | '\u060c' to '\u060d' - | '\u061b' to '\u061f' - | '\u066a' to '\u066d' + | '\u05f3' .. '\u05f4' + | '\u0609' .. '\u060a' + | '\u060c' .. '\u060d' + | '\u061b' .. '\u061f' + | '\u066a' .. '\u066d' | '\u06d4' - | '\u0700' to '\u070d' - | '\u07f7' to '\u07f9' - | '\u0830' to '\u083e' + | '\u0700' .. '\u070d' + | '\u07f7' .. '\u07f9' + | '\u0830' .. '\u083e' | '\u085e' - | '\u0964' to '\u0965' + | '\u0964' .. '\u0965' | '\u0970' | '\u0df4' | '\u0e4f' - | '\u0e5a' to '\u0e5b' - | '\u0f04' to '\u0f12' + | '\u0e5a' .. '\u0e5b' + | '\u0f04' .. '\u0f12' | '\u0f85' - | '\u0fd0' to '\u0fd4' - | '\u0fd9' to '\u0fda' - | '\u104a' to '\u104f' + | '\u0fd0' .. '\u0fd4' + | '\u0fd9' .. '\u0fda' + | '\u104a' .. '\u104f' | '\u10fb' - | '\u1361' to '\u1368' - | '\u166d' to '\u166e' - | '\u16eb' to '\u16ed' - | '\u1735' to '\u1736' - | '\u17d4' to '\u17d6' - | '\u17d8' to '\u17da' - | '\u1800' to '\u1805' - | '\u1807' to '\u180a' - | '\u1944' to '\u1945' - | '\u1a1e' to '\u1a1f' - | '\u1aa0' to '\u1aa6' - | '\u1aa8' to '\u1aad' - | '\u1b5a' to '\u1b60' - | '\u1bfc' to '\u1bff' - | '\u1c3b' to '\u1c3f' - | '\u1c7e' to '\u1c7f' + | '\u1361' .. '\u1368' + | '\u166d' .. '\u166e' + | '\u16eb' .. '\u16ed' + | '\u1735' .. '\u1736' + | '\u17d4' .. '\u17d6' + | '\u17d8' .. '\u17da' + | '\u1800' .. '\u1805' + | '\u1807' .. '\u180a' + | '\u1944' .. '\u1945' + | '\u1a1e' .. '\u1a1f' + | '\u1aa0' .. '\u1aa6' + | '\u1aa8' .. '\u1aad' + | '\u1b5a' .. '\u1b60' + | '\u1bfc' .. '\u1bff' + | '\u1c3b' .. '\u1c3f' + | '\u1c7e' .. '\u1c7f' | '\u1cd3' - | '\u2016' to '\u2017' - | '\u2020' to '\u2027' - | '\u2030' to '\u2038' - | '\u203b' to '\u203e' - | '\u2041' to '\u2043' - | '\u2047' to '\u2051' + | '\u2016' .. '\u2017' + | '\u2020' .. '\u2027' + | '\u2030' .. '\u2038' + | '\u203b' .. '\u203e' + | '\u2041' .. '\u2043' + | '\u2047' .. '\u2051' | '\u2053' - | '\u2055' to '\u205e' - | '\u2cf9' to '\u2cfc' - | '\u2cfe' to '\u2cff' + | '\u2055' .. '\u205e' + | '\u2cf9' .. '\u2cfc' + | '\u2cfe' .. '\u2cff' | '\u2d70' - | '\u2e00' to '\u2e01' - | '\u2e06' to '\u2e08' + | '\u2e00' .. '\u2e01' + | '\u2e06' .. '\u2e08' | '\u2e0b' - | '\u2e0e' to '\u2e16' - | '\u2e18' to '\u2e19' + | '\u2e0e' .. '\u2e16' + | '\u2e18' .. '\u2e19' | '\u2e1b' - | '\u2e1e' to '\u2e1f' - | '\u2e2a' to '\u2e2e' - | '\u2e30' to '\u2e31' - | '\u3001' to '\u3003' + | '\u2e1e' .. '\u2e1f' + | '\u2e2a' .. '\u2e2e' + | '\u2e30' .. '\u2e31' + | '\u3001' .. '\u3003' | '\u303d' | '\u30fb' - | '\ua4fe' to '\ua4ff' - | '\ua60d' to '\ua60f' + | '\ua4fe' .. '\ua4ff' + | '\ua60d' .. '\ua60f' | '\ua673' | '\ua67e' - | '\ua6f2' to '\ua6f7' - | '\ua874' to '\ua877' - | '\ua8ce' to '\ua8cf' - | '\ua8f8' to '\ua8fa' - | '\ua92e' to '\ua92f' + | '\ua6f2' .. '\ua6f7' + | '\ua874' .. '\ua877' + | '\ua8ce' .. '\ua8cf' + | '\ua8f8' .. '\ua8fa' + | '\ua92e' .. '\ua92f' | '\ua95f' - | '\ua9c1' to '\ua9cd' - | '\ua9de' to '\ua9df' - | '\uaa5c' to '\uaa5f' - | '\uaade' to '\uaadf' + | '\ua9c1' .. '\ua9cd' + | '\ua9de' .. '\ua9df' + | '\uaa5c' .. '\uaa5f' + | '\uaade' .. '\uaadf' | '\uabeb' - | '\ufe10' to '\ufe16' + | '\ufe10' .. '\ufe16' | '\ufe19' | '\ufe30' - | '\ufe45' to '\ufe46' - | '\ufe49' to '\ufe4c' - | '\ufe50' to '\ufe57' - | '\ufe5f' to '\ufe61' + | '\ufe45' .. '\ufe46' + | '\ufe49' .. '\ufe4c' + | '\ufe50' .. '\ufe57' + | '\ufe5f' .. '\ufe61' | '\ufe68' - | '\ufe6a' to '\ufe6b' - | '\uff01' to '\uff03' - | '\uff05' to '\uff07' + | '\ufe6a' .. '\ufe6b' + | '\uff01' .. '\uff03' + | '\uff05' .. '\uff07' | '\uff0a' | '\uff0c' - | '\uff0e' to '\uff0f' - | '\uff1a' to '\uff1b' - | '\uff1f' to '\uff20' + | '\uff0e' .. '\uff0f' + | '\uff1a' .. '\uff1b' + | '\uff1f' .. '\uff20' | '\uff3c' | '\uff61' - | '\uff64' to '\uff65' - | '\U00010100' to '\U00010101' + | '\uff64' .. '\uff65' + | '\U00010100' .. '\U00010101' | '\U0001039f' | '\U000103d0' | '\U00010857' | '\U0001091f' | '\U0001093f' - | '\U00010a50' to '\U00010a58' + | '\U00010a50' .. '\U00010a58' | '\U00010a7f' - | '\U00010b39' to '\U00010b3f' - | '\U00011047' to '\U0001104d' - | '\U000110bb' to '\U000110bc' - | '\U000110be' to '\U000110c1' - | '\U00012470' to '\U00012473' + | '\U00010b39' .. '\U00010b3f' + | '\U00011047' .. '\U0001104d' + | '\U000110bb' .. '\U000110bc' + | '\U000110be' .. '\U000110c1' + | '\U00012470' .. '\U00012473' => true, _ => false }; @@ -2288,21 +2288,21 @@ mod general_category { pure fn Sc(c: char) -> bool { return match c { '\x24' - | '\xa2' to '\xa5' + | '\xa2' .. '\xa5' | '\u060b' - | '\u09f2' to '\u09f3' + | '\u09f2' .. '\u09f3' | '\u09fb' | '\u0af1' | '\u0bf9' | '\u0e3f' | '\u17db' - | '\u20a0' to '\u20b9' + | '\u20a0' .. '\u20b9' | '\ua838' | '\ufdfc' | '\ufe69' | '\uff04' - | '\uffe0' to '\uffe1' - | '\uffe5' to '\uffe6' + | '\uffe0' .. '\uffe1' + | '\uffe5' .. '\uffe6' => true, _ => false }; @@ -2316,24 +2316,24 @@ mod general_category { | '\xaf' | '\xb4' | '\xb8' - | '\u02c2' to '\u02c5' - | '\u02d2' to '\u02df' - | '\u02e5' to '\u02eb' + | '\u02c2' .. '\u02c5' + | '\u02d2' .. '\u02df' + | '\u02e5' .. '\u02eb' | '\u02ed' - | '\u02ef' to '\u02ff' + | '\u02ef' .. '\u02ff' | '\u0375' - | '\u0384' to '\u0385' + | '\u0384' .. '\u0385' | '\u1fbd' - | '\u1fbf' to '\u1fc1' - | '\u1fcd' to '\u1fcf' - | '\u1fdd' to '\u1fdf' - | '\u1fed' to '\u1fef' - | '\u1ffd' to '\u1ffe' - | '\u309b' to '\u309c' - | '\ua700' to '\ua716' - | '\ua720' to '\ua721' - | '\ua789' to '\ua78a' - | '\ufbb2' to '\ufbc1' + | '\u1fbf' .. '\u1fc1' + | '\u1fcd' .. '\u1fcf' + | '\u1fdd' .. '\u1fdf' + | '\u1fed' .. '\u1fef' + | '\u1ffd' .. '\u1ffe' + | '\u309b' .. '\u309c' + | '\ua700' .. '\ua716' + | '\ua720' .. '\ua721' + | '\ua789' .. '\ua78a' + | '\ufbb2' .. '\ufbc1' | '\uff3e' | '\uff40' | '\uffe3' @@ -2345,7 +2345,7 @@ mod general_category { pure fn Sm(c: char) -> bool { return match c { '\x2b' - | '\x3c' to '\x3e' + | '\x3c' .. '\x3e' | '\x7c' | '\x7e' | '\xac' @@ -2353,51 +2353,51 @@ mod general_category { | '\xd7' | '\xf7' | '\u03f6' - | '\u0606' to '\u0608' + | '\u0606' .. '\u0608' | '\u2044' | '\u2052' - | '\u207a' to '\u207c' - | '\u208a' to '\u208c' + | '\u207a' .. '\u207c' + | '\u208a' .. '\u208c' | '\u2118' - | '\u2140' to '\u2144' + | '\u2140' .. '\u2144' | '\u214b' - | '\u2190' to '\u2194' - | '\u219a' to '\u219b' + | '\u2190' .. '\u2194' + | '\u219a' .. '\u219b' | '\u21a0' | '\u21a3' | '\u21a6' | '\u21ae' - | '\u21ce' to '\u21cf' + | '\u21ce' .. '\u21cf' | '\u21d2' | '\u21d4' - | '\u21f4' to '\u22ff' - | '\u2308' to '\u230b' - | '\u2320' to '\u2321' + | '\u21f4' .. '\u22ff' + | '\u2308' .. '\u230b' + | '\u2320' .. '\u2321' | '\u237c' - | '\u239b' to '\u23b3' - | '\u23dc' to '\u23e1' + | '\u239b' .. '\u23b3' + | '\u23dc' .. '\u23e1' | '\u25b7' | '\u25c1' - | '\u25f8' to '\u25ff' + | '\u25f8' .. '\u25ff' | '\u266f' - | '\u27c0' to '\u27c4' - | '\u27c7' to '\u27e5' - | '\u27f0' to '\u27ff' - | '\u2900' to '\u2982' - | '\u2999' to '\u29d7' - | '\u29dc' to '\u29fb' - | '\u29fe' to '\u2aff' - | '\u2b30' to '\u2b44' - | '\u2b47' to '\u2b4c' + | '\u27c0' .. '\u27c4' + | '\u27c7' .. '\u27e5' + | '\u27f0' .. '\u27ff' + | '\u2900' .. '\u2982' + | '\u2999' .. '\u29d7' + | '\u29dc' .. '\u29fb' + | '\u29fe' .. '\u2aff' + | '\u2b30' .. '\u2b44' + | '\u2b47' .. '\u2b4c' | '\ufb29' | '\ufe62' - | '\ufe64' to '\ufe66' + | '\ufe64' .. '\ufe66' | '\uff0b' - | '\uff1c' to '\uff1e' + | '\uff1c' .. '\uff1e' | '\uff5c' | '\uff5e' | '\uffe2' - | '\uffe9' to '\uffec' + | '\uffe9' .. '\uffec' | '\U0001d6c1' | '\U0001d6db' | '\U0001d6fb' @@ -2415,118 +2415,118 @@ mod general_category { pure fn So(c: char) -> bool { return match c { - '\xa6' to '\xa7' + '\xa6' .. '\xa7' | '\xa9' | '\xae' | '\xb0' | '\xb6' | '\u0482' - | '\u060e' to '\u060f' + | '\u060e' .. '\u060f' | '\u06de' | '\u06e9' - | '\u06fd' to '\u06fe' + | '\u06fd' .. '\u06fe' | '\u07f6' | '\u09fa' | '\u0b70' - | '\u0bf3' to '\u0bf8' + | '\u0bf3' .. '\u0bf8' | '\u0bfa' | '\u0c7f' | '\u0d79' - | '\u0f01' to '\u0f03' - | '\u0f13' to '\u0f17' - | '\u0f1a' to '\u0f1f' + | '\u0f01' .. '\u0f03' + | '\u0f13' .. '\u0f17' + | '\u0f1a' .. '\u0f1f' | '\u0f34' | '\u0f36' | '\u0f38' - | '\u0fbe' to '\u0fc5' - | '\u0fc7' to '\u0fcf' - | '\u0fd5' to '\u0fd8' - | '\u109e' to '\u109f' + | '\u0fbe' .. '\u0fc5' + | '\u0fc7' .. '\u0fcf' + | '\u0fd5' .. '\u0fd8' + | '\u109e' .. '\u109f' | '\u1360' - | '\u1390' to '\u1399' + | '\u1390' .. '\u1399' | '\u1940' - | '\u19de' to '\u19ff' - | '\u1b61' to '\u1b6a' - | '\u1b74' to '\u1b7c' - | '\u2100' to '\u2101' - | '\u2103' to '\u2106' - | '\u2108' to '\u2109' + | '\u19de' .. '\u19ff' + | '\u1b61' .. '\u1b6a' + | '\u1b74' .. '\u1b7c' + | '\u2100' .. '\u2101' + | '\u2103' .. '\u2106' + | '\u2108' .. '\u2109' | '\u2114' - | '\u2116' to '\u2117' - | '\u211e' to '\u2123' + | '\u2116' .. '\u2117' + | '\u211e' .. '\u2123' | '\u2125' | '\u2127' | '\u2129' | '\u212e' - | '\u213a' to '\u213b' + | '\u213a' .. '\u213b' | '\u214a' - | '\u214c' to '\u214d' + | '\u214c' .. '\u214d' | '\u214f' - | '\u2195' to '\u2199' - | '\u219c' to '\u219f' - | '\u21a1' to '\u21a2' - | '\u21a4' to '\u21a5' - | '\u21a7' to '\u21ad' - | '\u21af' to '\u21cd' - | '\u21d0' to '\u21d1' + | '\u2195' .. '\u2199' + | '\u219c' .. '\u219f' + | '\u21a1' .. '\u21a2' + | '\u21a4' .. '\u21a5' + | '\u21a7' .. '\u21ad' + | '\u21af' .. '\u21cd' + | '\u21d0' .. '\u21d1' | '\u21d3' - | '\u21d5' to '\u21f3' - | '\u2300' to '\u2307' - | '\u230c' to '\u231f' - | '\u2322' to '\u2328' - | '\u232b' to '\u237b' - | '\u237d' to '\u239a' - | '\u23b4' to '\u23db' - | '\u23e2' to '\u244a' - | '\u249c' to '\u24e9' - | '\u2500' to '\u25b6' - | '\u25b8' to '\u25c0' - | '\u25c2' to '\u25f7' - | '\u2600' to '\u266e' - | '\u2670' to '\u2767' - | '\u2794' to '\u27bf' - | '\u2800' to '\u28ff' - | '\u2b00' to '\u2b2f' - | '\u2b45' to '\u2b46' - | '\u2b50' to '\u2b59' - | '\u2ce5' to '\u2cea' - | '\u2e80' to '\u2ffb' + | '\u21d5' .. '\u21f3' + | '\u2300' .. '\u2307' + | '\u230c' .. '\u231f' + | '\u2322' .. '\u2328' + | '\u232b' .. '\u237b' + | '\u237d' .. '\u239a' + | '\u23b4' .. '\u23db' + | '\u23e2' .. '\u244a' + | '\u249c' .. '\u24e9' + | '\u2500' .. '\u25b6' + | '\u25b8' .. '\u25c0' + | '\u25c2' .. '\u25f7' + | '\u2600' .. '\u266e' + | '\u2670' .. '\u2767' + | '\u2794' .. '\u27bf' + | '\u2800' .. '\u28ff' + | '\u2b00' .. '\u2b2f' + | '\u2b45' .. '\u2b46' + | '\u2b50' .. '\u2b59' + | '\u2ce5' .. '\u2cea' + | '\u2e80' .. '\u2ffb' | '\u3004' - | '\u3012' to '\u3013' + | '\u3012' .. '\u3013' | '\u3020' - | '\u3036' to '\u3037' - | '\u303e' to '\u303f' - | '\u3190' to '\u3191' - | '\u3196' to '\u319f' - | '\u31c0' to '\u31e3' - | '\u3200' to '\u321e' - | '\u322a' to '\u3250' - | '\u3260' to '\u327f' - | '\u328a' to '\u32b0' - | '\u32c0' to '\u33ff' - | '\u4dc0' to '\u4dff' - | '\ua490' to '\ua4c6' - | '\ua828' to '\ua82b' - | '\ua836' to '\ua837' + | '\u3036' .. '\u3037' + | '\u303e' .. '\u303f' + | '\u3190' .. '\u3191' + | '\u3196' .. '\u319f' + | '\u31c0' .. '\u31e3' + | '\u3200' .. '\u321e' + | '\u322a' .. '\u3250' + | '\u3260' .. '\u327f' + | '\u328a' .. '\u32b0' + | '\u32c0' .. '\u33ff' + | '\u4dc0' .. '\u4dff' + | '\ua490' .. '\ua4c6' + | '\ua828' .. '\ua82b' + | '\ua836' .. '\ua837' | '\ua839' - | '\uaa77' to '\uaa79' + | '\uaa77' .. '\uaa79' | '\ufdfd' | '\uffe4' | '\uffe8' - | '\uffed' to '\uffee' - | '\ufffc' to '\ufffd' + | '\uffed' .. '\uffee' + | '\ufffc' .. '\ufffd' | '\U00010102' - | '\U00010137' to '\U0001013f' - | '\U00010179' to '\U00010189' - | '\U00010190' to '\U000101fc' - | '\U0001d000' to '\U0001d164' - | '\U0001d16a' to '\U0001d16c' - | '\U0001d183' to '\U0001d184' - | '\U0001d18c' to '\U0001d1a9' - | '\U0001d1ae' to '\U0001d241' - | '\U0001d245' to '\U0001d356' - | '\U0001f000' to '\U0001f0df' - | '\U0001f110' to '\U0001f773' + | '\U00010137' .. '\U0001013f' + | '\U00010179' .. '\U00010189' + | '\U00010190' .. '\U000101fc' + | '\U0001d000' .. '\U0001d164' + | '\U0001d16a' .. '\U0001d16c' + | '\U0001d183' .. '\U0001d184' + | '\U0001d18c' .. '\U0001d1a9' + | '\U0001d1ae' .. '\U0001d241' + | '\U0001d245' .. '\U0001d356' + | '\U0001f000' .. '\U0001f0df' + | '\U0001f110' .. '\U0001f773' => true, _ => false }; @@ -2552,7 +2552,7 @@ mod general_category { | '\xa0' | '\u1680' | '\u180e' - | '\u2000' to '\u200a' + | '\u2000' .. '\u200a' | '\u202f' | '\u205f' | '\u3000' @@ -2566,737 +2566,737 @@ mod derived_property { /// Check if a character has the alphabetic unicode property pure fn Alphabetic(c: char) -> bool { return match c { - '\x41' to '\x5a' - | '\x61' to '\x7a' + '\x41' .. '\x5a' + | '\x61' .. '\x7a' | '\xaa' | '\xb5' | '\xba' - | '\xc0' to '\xd6' - | '\xd8' to '\xf6' - | '\xf8' to '\u01ba' + | '\xc0' .. '\xd6' + | '\xd8' .. '\xf6' + | '\xf8' .. '\u01ba' | '\u01bb' - | '\u01bc' to '\u01bf' - | '\u01c0' to '\u01c3' - | '\u01c4' to '\u0293' + | '\u01bc' .. '\u01bf' + | '\u01c0' .. '\u01c3' + | '\u01c4' .. '\u0293' | '\u0294' - | '\u0295' to '\u02af' - | '\u02b0' to '\u02c1' - | '\u02c6' to '\u02d1' - | '\u02e0' to '\u02e4' + | '\u0295' .. '\u02af' + | '\u02b0' .. '\u02c1' + | '\u02c6' .. '\u02d1' + | '\u02e0' .. '\u02e4' | '\u02ec' | '\u02ee' | '\u0345' - | '\u0370' to '\u0373' + | '\u0370' .. '\u0373' | '\u0374' - | '\u0376' to '\u0377' + | '\u0376' .. '\u0377' | '\u037a' - | '\u037b' to '\u037d' + | '\u037b' .. '\u037d' | '\u0386' - | '\u0388' to '\u038a' + | '\u0388' .. '\u038a' | '\u038c' - | '\u038e' to '\u03a1' - | '\u03a3' to '\u03f5' - | '\u03f7' to '\u0481' - | '\u048a' to '\u0527' - | '\u0531' to '\u0556' + | '\u038e' .. '\u03a1' + | '\u03a3' .. '\u03f5' + | '\u03f7' .. '\u0481' + | '\u048a' .. '\u0527' + | '\u0531' .. '\u0556' | '\u0559' - | '\u0561' to '\u0587' - | '\u05b0' to '\u05bd' + | '\u0561' .. '\u0587' + | '\u05b0' .. '\u05bd' | '\u05bf' - | '\u05c1' to '\u05c2' - | '\u05c4' to '\u05c5' + | '\u05c1' .. '\u05c2' + | '\u05c4' .. '\u05c5' | '\u05c7' - | '\u05d0' to '\u05ea' - | '\u05f0' to '\u05f2' - | '\u0610' to '\u061a' - | '\u0620' to '\u063f' + | '\u05d0' .. '\u05ea' + | '\u05f0' .. '\u05f2' + | '\u0610' .. '\u061a' + | '\u0620' .. '\u063f' | '\u0640' - | '\u0641' to '\u064a' - | '\u064b' to '\u0657' - | '\u0659' to '\u065f' - | '\u066e' to '\u066f' + | '\u0641' .. '\u064a' + | '\u064b' .. '\u0657' + | '\u0659' .. '\u065f' + | '\u066e' .. '\u066f' | '\u0670' - | '\u0671' to '\u06d3' + | '\u0671' .. '\u06d3' | '\u06d5' - | '\u06d6' to '\u06dc' - | '\u06e1' to '\u06e4' - | '\u06e5' to '\u06e6' - | '\u06e7' to '\u06e8' + | '\u06d6' .. '\u06dc' + | '\u06e1' .. '\u06e4' + | '\u06e5' .. '\u06e6' + | '\u06e7' .. '\u06e8' | '\u06ed' - | '\u06ee' to '\u06ef' - | '\u06fa' to '\u06fc' + | '\u06ee' .. '\u06ef' + | '\u06fa' .. '\u06fc' | '\u06ff' | '\u0710' | '\u0711' - | '\u0712' to '\u072f' - | '\u0730' to '\u073f' - | '\u074d' to '\u07a5' - | '\u07a6' to '\u07b0' + | '\u0712' .. '\u072f' + | '\u0730' .. '\u073f' + | '\u074d' .. '\u07a5' + | '\u07a6' .. '\u07b0' | '\u07b1' - | '\u07ca' to '\u07ea' - | '\u07f4' to '\u07f5' + | '\u07ca' .. '\u07ea' + | '\u07f4' .. '\u07f5' | '\u07fa' - | '\u0800' to '\u0815' - | '\u0816' to '\u0817' + | '\u0800' .. '\u0815' + | '\u0816' .. '\u0817' | '\u081a' - | '\u081b' to '\u0823' + | '\u081b' .. '\u0823' | '\u0824' - | '\u0825' to '\u0827' + | '\u0825' .. '\u0827' | '\u0828' - | '\u0829' to '\u082c' - | '\u0840' to '\u0858' - | '\u0900' to '\u0902' + | '\u0829' .. '\u082c' + | '\u0840' .. '\u0858' + | '\u0900' .. '\u0902' | '\u0903' - | '\u0904' to '\u0939' + | '\u0904' .. '\u0939' | '\u093a' | '\u093b' | '\u093d' - | '\u093e' to '\u0940' - | '\u0941' to '\u0948' - | '\u0949' to '\u094c' - | '\u094e' to '\u094f' + | '\u093e' .. '\u0940' + | '\u0941' .. '\u0948' + | '\u0949' .. '\u094c' + | '\u094e' .. '\u094f' | '\u0950' - | '\u0955' to '\u0957' - | '\u0958' to '\u0961' - | '\u0962' to '\u0963' + | '\u0955' .. '\u0957' + | '\u0958' .. '\u0961' + | '\u0962' .. '\u0963' | '\u0971' - | '\u0972' to '\u0977' - | '\u0979' to '\u097f' + | '\u0972' .. '\u0977' + | '\u0979' .. '\u097f' | '\u0981' - | '\u0982' to '\u0983' - | '\u0985' to '\u098c' - | '\u098f' to '\u0990' - | '\u0993' to '\u09a8' - | '\u09aa' to '\u09b0' + | '\u0982' .. '\u0983' + | '\u0985' .. '\u098c' + | '\u098f' .. '\u0990' + | '\u0993' .. '\u09a8' + | '\u09aa' .. '\u09b0' | '\u09b2' - | '\u09b6' to '\u09b9' + | '\u09b6' .. '\u09b9' | '\u09bd' - | '\u09be' to '\u09c0' - | '\u09c1' to '\u09c4' - | '\u09c7' to '\u09c8' - | '\u09cb' to '\u09cc' + | '\u09be' .. '\u09c0' + | '\u09c1' .. '\u09c4' + | '\u09c7' .. '\u09c8' + | '\u09cb' .. '\u09cc' | '\u09ce' | '\u09d7' - | '\u09dc' to '\u09dd' - | '\u09df' to '\u09e1' - | '\u09e2' to '\u09e3' - | '\u09f0' to '\u09f1' - | '\u0a01' to '\u0a02' + | '\u09dc' .. '\u09dd' + | '\u09df' .. '\u09e1' + | '\u09e2' .. '\u09e3' + | '\u09f0' .. '\u09f1' + | '\u0a01' .. '\u0a02' | '\u0a03' - | '\u0a05' to '\u0a0a' - | '\u0a0f' to '\u0a10' - | '\u0a13' to '\u0a28' - | '\u0a2a' to '\u0a30' - | '\u0a32' to '\u0a33' - | '\u0a35' to '\u0a36' - | '\u0a38' to '\u0a39' - | '\u0a3e' to '\u0a40' - | '\u0a41' to '\u0a42' - | '\u0a47' to '\u0a48' - | '\u0a4b' to '\u0a4c' + | '\u0a05' .. '\u0a0a' + | '\u0a0f' .. '\u0a10' + | '\u0a13' .. '\u0a28' + | '\u0a2a' .. '\u0a30' + | '\u0a32' .. '\u0a33' + | '\u0a35' .. '\u0a36' + | '\u0a38' .. '\u0a39' + | '\u0a3e' .. '\u0a40' + | '\u0a41' .. '\u0a42' + | '\u0a47' .. '\u0a48' + | '\u0a4b' .. '\u0a4c' | '\u0a51' - | '\u0a59' to '\u0a5c' + | '\u0a59' .. '\u0a5c' | '\u0a5e' - | '\u0a70' to '\u0a71' - | '\u0a72' to '\u0a74' + | '\u0a70' .. '\u0a71' + | '\u0a72' .. '\u0a74' | '\u0a75' - | '\u0a81' to '\u0a82' + | '\u0a81' .. '\u0a82' | '\u0a83' - | '\u0a85' to '\u0a8d' - | '\u0a8f' to '\u0a91' - | '\u0a93' to '\u0aa8' - | '\u0aaa' to '\u0ab0' - | '\u0ab2' to '\u0ab3' - | '\u0ab5' to '\u0ab9' + | '\u0a85' .. '\u0a8d' + | '\u0a8f' .. '\u0a91' + | '\u0a93' .. '\u0aa8' + | '\u0aaa' .. '\u0ab0' + | '\u0ab2' .. '\u0ab3' + | '\u0ab5' .. '\u0ab9' | '\u0abd' - | '\u0abe' to '\u0ac0' - | '\u0ac1' to '\u0ac5' - | '\u0ac7' to '\u0ac8' + | '\u0abe' .. '\u0ac0' + | '\u0ac1' .. '\u0ac5' + | '\u0ac7' .. '\u0ac8' | '\u0ac9' - | '\u0acb' to '\u0acc' + | '\u0acb' .. '\u0acc' | '\u0ad0' - | '\u0ae0' to '\u0ae1' - | '\u0ae2' to '\u0ae3' + | '\u0ae0' .. '\u0ae1' + | '\u0ae2' .. '\u0ae3' | '\u0b01' - | '\u0b02' to '\u0b03' - | '\u0b05' to '\u0b0c' - | '\u0b0f' to '\u0b10' - | '\u0b13' to '\u0b28' - | '\u0b2a' to '\u0b30' - | '\u0b32' to '\u0b33' - | '\u0b35' to '\u0b39' + | '\u0b02' .. '\u0b03' + | '\u0b05' .. '\u0b0c' + | '\u0b0f' .. '\u0b10' + | '\u0b13' .. '\u0b28' + | '\u0b2a' .. '\u0b30' + | '\u0b32' .. '\u0b33' + | '\u0b35' .. '\u0b39' | '\u0b3d' | '\u0b3e' | '\u0b3f' | '\u0b40' - | '\u0b41' to '\u0b44' - | '\u0b47' to '\u0b48' - | '\u0b4b' to '\u0b4c' + | '\u0b41' .. '\u0b44' + | '\u0b47' .. '\u0b48' + | '\u0b4b' .. '\u0b4c' | '\u0b56' | '\u0b57' - | '\u0b5c' to '\u0b5d' - | '\u0b5f' to '\u0b61' - | '\u0b62' to '\u0b63' + | '\u0b5c' .. '\u0b5d' + | '\u0b5f' .. '\u0b61' + | '\u0b62' .. '\u0b63' | '\u0b71' | '\u0b82' | '\u0b83' - | '\u0b85' to '\u0b8a' - | '\u0b8e' to '\u0b90' - | '\u0b92' to '\u0b95' - | '\u0b99' to '\u0b9a' + | '\u0b85' .. '\u0b8a' + | '\u0b8e' .. '\u0b90' + | '\u0b92' .. '\u0b95' + | '\u0b99' .. '\u0b9a' | '\u0b9c' - | '\u0b9e' to '\u0b9f' - | '\u0ba3' to '\u0ba4' - | '\u0ba8' to '\u0baa' - | '\u0bae' to '\u0bb9' - | '\u0bbe' to '\u0bbf' + | '\u0b9e' .. '\u0b9f' + | '\u0ba3' .. '\u0ba4' + | '\u0ba8' .. '\u0baa' + | '\u0bae' .. '\u0bb9' + | '\u0bbe' .. '\u0bbf' | '\u0bc0' - | '\u0bc1' to '\u0bc2' - | '\u0bc6' to '\u0bc8' - | '\u0bca' to '\u0bcc' + | '\u0bc1' .. '\u0bc2' + | '\u0bc6' .. '\u0bc8' + | '\u0bca' .. '\u0bcc' | '\u0bd0' | '\u0bd7' - | '\u0c01' to '\u0c03' - | '\u0c05' to '\u0c0c' - | '\u0c0e' to '\u0c10' - | '\u0c12' to '\u0c28' - | '\u0c2a' to '\u0c33' - | '\u0c35' to '\u0c39' + | '\u0c01' .. '\u0c03' + | '\u0c05' .. '\u0c0c' + | '\u0c0e' .. '\u0c10' + | '\u0c12' .. '\u0c28' + | '\u0c2a' .. '\u0c33' + | '\u0c35' .. '\u0c39' | '\u0c3d' - | '\u0c3e' to '\u0c40' - | '\u0c41' to '\u0c44' - | '\u0c46' to '\u0c48' - | '\u0c4a' to '\u0c4c' - | '\u0c55' to '\u0c56' - | '\u0c58' to '\u0c59' - | '\u0c60' to '\u0c61' - | '\u0c62' to '\u0c63' - | '\u0c82' to '\u0c83' - | '\u0c85' to '\u0c8c' - | '\u0c8e' to '\u0c90' - | '\u0c92' to '\u0ca8' - | '\u0caa' to '\u0cb3' - | '\u0cb5' to '\u0cb9' + | '\u0c3e' .. '\u0c40' + | '\u0c41' .. '\u0c44' + | '\u0c46' .. '\u0c48' + | '\u0c4a' .. '\u0c4c' + | '\u0c55' .. '\u0c56' + | '\u0c58' .. '\u0c59' + | '\u0c60' .. '\u0c61' + | '\u0c62' .. '\u0c63' + | '\u0c82' .. '\u0c83' + | '\u0c85' .. '\u0c8c' + | '\u0c8e' .. '\u0c90' + | '\u0c92' .. '\u0ca8' + | '\u0caa' .. '\u0cb3' + | '\u0cb5' .. '\u0cb9' | '\u0cbd' | '\u0cbe' | '\u0cbf' - | '\u0cc0' to '\u0cc4' + | '\u0cc0' .. '\u0cc4' | '\u0cc6' - | '\u0cc7' to '\u0cc8' - | '\u0cca' to '\u0ccb' + | '\u0cc7' .. '\u0cc8' + | '\u0cca' .. '\u0ccb' | '\u0ccc' - | '\u0cd5' to '\u0cd6' + | '\u0cd5' .. '\u0cd6' | '\u0cde' - | '\u0ce0' to '\u0ce1' - | '\u0ce2' to '\u0ce3' - | '\u0cf1' to '\u0cf2' - | '\u0d02' to '\u0d03' - | '\u0d05' to '\u0d0c' - | '\u0d0e' to '\u0d10' - | '\u0d12' to '\u0d3a' + | '\u0ce0' .. '\u0ce1' + | '\u0ce2' .. '\u0ce3' + | '\u0cf1' .. '\u0cf2' + | '\u0d02' .. '\u0d03' + | '\u0d05' .. '\u0d0c' + | '\u0d0e' .. '\u0d10' + | '\u0d12' .. '\u0d3a' | '\u0d3d' - | '\u0d3e' to '\u0d40' - | '\u0d41' to '\u0d44' - | '\u0d46' to '\u0d48' - | '\u0d4a' to '\u0d4c' + | '\u0d3e' .. '\u0d40' + | '\u0d41' .. '\u0d44' + | '\u0d46' .. '\u0d48' + | '\u0d4a' .. '\u0d4c' | '\u0d4e' | '\u0d57' - | '\u0d60' to '\u0d61' - | '\u0d62' to '\u0d63' - | '\u0d7a' to '\u0d7f' - | '\u0d82' to '\u0d83' - | '\u0d85' to '\u0d96' - | '\u0d9a' to '\u0db1' - | '\u0db3' to '\u0dbb' + | '\u0d60' .. '\u0d61' + | '\u0d62' .. '\u0d63' + | '\u0d7a' .. '\u0d7f' + | '\u0d82' .. '\u0d83' + | '\u0d85' .. '\u0d96' + | '\u0d9a' .. '\u0db1' + | '\u0db3' .. '\u0dbb' | '\u0dbd' - | '\u0dc0' to '\u0dc6' - | '\u0dcf' to '\u0dd1' - | '\u0dd2' to '\u0dd4' + | '\u0dc0' .. '\u0dc6' + | '\u0dcf' .. '\u0dd1' + | '\u0dd2' .. '\u0dd4' | '\u0dd6' - | '\u0dd8' to '\u0ddf' - | '\u0df2' to '\u0df3' - | '\u0e01' to '\u0e30' + | '\u0dd8' .. '\u0ddf' + | '\u0df2' .. '\u0df3' + | '\u0e01' .. '\u0e30' | '\u0e31' - | '\u0e32' to '\u0e33' - | '\u0e34' to '\u0e3a' - | '\u0e40' to '\u0e45' + | '\u0e32' .. '\u0e33' + | '\u0e34' .. '\u0e3a' + | '\u0e40' .. '\u0e45' | '\u0e46' | '\u0e4d' - | '\u0e81' to '\u0e82' + | '\u0e81' .. '\u0e82' | '\u0e84' - | '\u0e87' to '\u0e88' + | '\u0e87' .. '\u0e88' | '\u0e8a' | '\u0e8d' - | '\u0e94' to '\u0e97' - | '\u0e99' to '\u0e9f' - | '\u0ea1' to '\u0ea3' + | '\u0e94' .. '\u0e97' + | '\u0e99' .. '\u0e9f' + | '\u0ea1' .. '\u0ea3' | '\u0ea5' | '\u0ea7' - | '\u0eaa' to '\u0eab' - | '\u0ead' to '\u0eb0' + | '\u0eaa' .. '\u0eab' + | '\u0ead' .. '\u0eb0' | '\u0eb1' - | '\u0eb2' to '\u0eb3' - | '\u0eb4' to '\u0eb9' - | '\u0ebb' to '\u0ebc' + | '\u0eb2' .. '\u0eb3' + | '\u0eb4' .. '\u0eb9' + | '\u0ebb' .. '\u0ebc' | '\u0ebd' - | '\u0ec0' to '\u0ec4' + | '\u0ec0' .. '\u0ec4' | '\u0ec6' | '\u0ecd' - | '\u0edc' to '\u0edd' + | '\u0edc' .. '\u0edd' | '\u0f00' - | '\u0f40' to '\u0f47' - | '\u0f49' to '\u0f6c' - | '\u0f71' to '\u0f7e' + | '\u0f40' .. '\u0f47' + | '\u0f49' .. '\u0f6c' + | '\u0f71' .. '\u0f7e' | '\u0f7f' - | '\u0f80' to '\u0f81' - | '\u0f88' to '\u0f8c' - | '\u0f8d' to '\u0f97' - | '\u0f99' to '\u0fbc' - | '\u1000' to '\u102a' - | '\u102b' to '\u102c' - | '\u102d' to '\u1030' + | '\u0f80' .. '\u0f81' + | '\u0f88' .. '\u0f8c' + | '\u0f8d' .. '\u0f97' + | '\u0f99' .. '\u0fbc' + | '\u1000' .. '\u102a' + | '\u102b' .. '\u102c' + | '\u102d' .. '\u1030' | '\u1031' - | '\u1032' to '\u1036' + | '\u1032' .. '\u1036' | '\u1038' - | '\u103b' to '\u103c' - | '\u103d' to '\u103e' + | '\u103b' .. '\u103c' + | '\u103d' .. '\u103e' | '\u103f' - | '\u1050' to '\u1055' - | '\u1056' to '\u1057' - | '\u1058' to '\u1059' - | '\u105a' to '\u105d' - | '\u105e' to '\u1060' + | '\u1050' .. '\u1055' + | '\u1056' .. '\u1057' + | '\u1058' .. '\u1059' + | '\u105a' .. '\u105d' + | '\u105e' .. '\u1060' | '\u1061' | '\u1062' - | '\u1065' to '\u1066' - | '\u1067' to '\u1068' - | '\u106e' to '\u1070' - | '\u1071' to '\u1074' - | '\u1075' to '\u1081' + | '\u1065' .. '\u1066' + | '\u1067' .. '\u1068' + | '\u106e' .. '\u1070' + | '\u1071' .. '\u1074' + | '\u1075' .. '\u1081' | '\u1082' - | '\u1083' to '\u1084' - | '\u1085' to '\u1086' + | '\u1083' .. '\u1084' + | '\u1085' .. '\u1086' | '\u108e' | '\u109c' | '\u109d' - | '\u10a0' to '\u10c5' - | '\u10d0' to '\u10fa' + | '\u10a0' .. '\u10c5' + | '\u10d0' .. '\u10fa' | '\u10fc' - | '\u1100' to '\u1248' - | '\u124a' to '\u124d' - | '\u1250' to '\u1256' + | '\u1100' .. '\u1248' + | '\u124a' .. '\u124d' + | '\u1250' .. '\u1256' | '\u1258' - | '\u125a' to '\u125d' - | '\u1260' to '\u1288' - | '\u128a' to '\u128d' - | '\u1290' to '\u12b0' - | '\u12b2' to '\u12b5' - | '\u12b8' to '\u12be' + | '\u125a' .. '\u125d' + | '\u1260' .. '\u1288' + | '\u128a' .. '\u128d' + | '\u1290' .. '\u12b0' + | '\u12b2' .. '\u12b5' + | '\u12b8' .. '\u12be' | '\u12c0' - | '\u12c2' to '\u12c5' - | '\u12c8' to '\u12d6' - | '\u12d8' to '\u1310' - | '\u1312' to '\u1315' - | '\u1318' to '\u135a' + | '\u12c2' .. '\u12c5' + | '\u12c8' .. '\u12d6' + | '\u12d8' .. '\u1310' + | '\u1312' .. '\u1315' + | '\u1318' .. '\u135a' | '\u135f' - | '\u1380' to '\u138f' - | '\u13a0' to '\u13f4' - | '\u1401' to '\u166c' - | '\u166f' to '\u167f' - | '\u1681' to '\u169a' - | '\u16a0' to '\u16ea' - | '\u16ee' to '\u16f0' - | '\u1700' to '\u170c' - | '\u170e' to '\u1711' - | '\u1712' to '\u1713' - | '\u1720' to '\u1731' - | '\u1732' to '\u1733' - | '\u1740' to '\u1751' - | '\u1752' to '\u1753' - | '\u1760' to '\u176c' - | '\u176e' to '\u1770' - | '\u1772' to '\u1773' - | '\u1780' to '\u17b3' + | '\u1380' .. '\u138f' + | '\u13a0' .. '\u13f4' + | '\u1401' .. '\u166c' + | '\u166f' .. '\u167f' + | '\u1681' .. '\u169a' + | '\u16a0' .. '\u16ea' + | '\u16ee' .. '\u16f0' + | '\u1700' .. '\u170c' + | '\u170e' .. '\u1711' + | '\u1712' .. '\u1713' + | '\u1720' .. '\u1731' + | '\u1732' .. '\u1733' + | '\u1740' .. '\u1751' + | '\u1752' .. '\u1753' + | '\u1760' .. '\u176c' + | '\u176e' .. '\u1770' + | '\u1772' .. '\u1773' + | '\u1780' .. '\u17b3' | '\u17b6' - | '\u17b7' to '\u17bd' - | '\u17be' to '\u17c5' + | '\u17b7' .. '\u17bd' + | '\u17be' .. '\u17c5' | '\u17c6' - | '\u17c7' to '\u17c8' + | '\u17c7' .. '\u17c8' | '\u17d7' | '\u17dc' - | '\u1820' to '\u1842' + | '\u1820' .. '\u1842' | '\u1843' - | '\u1844' to '\u1877' - | '\u1880' to '\u18a8' + | '\u1844' .. '\u1877' + | '\u1880' .. '\u18a8' | '\u18a9' | '\u18aa' - | '\u18b0' to '\u18f5' - | '\u1900' to '\u191c' - | '\u1920' to '\u1922' - | '\u1923' to '\u1926' - | '\u1927' to '\u1928' - | '\u1929' to '\u192b' - | '\u1930' to '\u1931' + | '\u18b0' .. '\u18f5' + | '\u1900' .. '\u191c' + | '\u1920' .. '\u1922' + | '\u1923' .. '\u1926' + | '\u1927' .. '\u1928' + | '\u1929' .. '\u192b' + | '\u1930' .. '\u1931' | '\u1932' - | '\u1933' to '\u1938' - | '\u1950' to '\u196d' - | '\u1970' to '\u1974' - | '\u1980' to '\u19ab' - | '\u19b0' to '\u19c0' - | '\u19c1' to '\u19c7' - | '\u19c8' to '\u19c9' - | '\u1a00' to '\u1a16' - | '\u1a17' to '\u1a18' - | '\u1a19' to '\u1a1b' - | '\u1a20' to '\u1a54' + | '\u1933' .. '\u1938' + | '\u1950' .. '\u196d' + | '\u1970' .. '\u1974' + | '\u1980' .. '\u19ab' + | '\u19b0' .. '\u19c0' + | '\u19c1' .. '\u19c7' + | '\u19c8' .. '\u19c9' + | '\u1a00' .. '\u1a16' + | '\u1a17' .. '\u1a18' + | '\u1a19' .. '\u1a1b' + | '\u1a20' .. '\u1a54' | '\u1a55' | '\u1a56' | '\u1a57' - | '\u1a58' to '\u1a5e' + | '\u1a58' .. '\u1a5e' | '\u1a61' | '\u1a62' - | '\u1a63' to '\u1a64' - | '\u1a65' to '\u1a6c' - | '\u1a6d' to '\u1a72' - | '\u1a73' to '\u1a74' + | '\u1a63' .. '\u1a64' + | '\u1a65' .. '\u1a6c' + | '\u1a6d' .. '\u1a72' + | '\u1a73' .. '\u1a74' | '\u1aa7' - | '\u1b00' to '\u1b03' + | '\u1b00' .. '\u1b03' | '\u1b04' - | '\u1b05' to '\u1b33' + | '\u1b05' .. '\u1b33' | '\u1b35' - | '\u1b36' to '\u1b3a' + | '\u1b36' .. '\u1b3a' | '\u1b3b' | '\u1b3c' - | '\u1b3d' to '\u1b41' + | '\u1b3d' .. '\u1b41' | '\u1b42' | '\u1b43' - | '\u1b45' to '\u1b4b' - | '\u1b80' to '\u1b81' + | '\u1b45' .. '\u1b4b' + | '\u1b80' .. '\u1b81' | '\u1b82' - | '\u1b83' to '\u1ba0' + | '\u1b83' .. '\u1ba0' | '\u1ba1' - | '\u1ba2' to '\u1ba5' - | '\u1ba6' to '\u1ba7' - | '\u1ba8' to '\u1ba9' - | '\u1bae' to '\u1baf' - | '\u1bc0' to '\u1be5' + | '\u1ba2' .. '\u1ba5' + | '\u1ba6' .. '\u1ba7' + | '\u1ba8' .. '\u1ba9' + | '\u1bae' .. '\u1baf' + | '\u1bc0' .. '\u1be5' | '\u1be7' - | '\u1be8' to '\u1be9' - | '\u1bea' to '\u1bec' + | '\u1be8' .. '\u1be9' + | '\u1bea' .. '\u1bec' | '\u1bed' | '\u1bee' - | '\u1bef' to '\u1bf1' - | '\u1c00' to '\u1c23' - | '\u1c24' to '\u1c2b' - | '\u1c2c' to '\u1c33' - | '\u1c34' to '\u1c35' - | '\u1c4d' to '\u1c4f' - | '\u1c5a' to '\u1c77' - | '\u1c78' to '\u1c7d' - | '\u1ce9' to '\u1cec' - | '\u1cee' to '\u1cf1' + | '\u1bef' .. '\u1bf1' + | '\u1c00' .. '\u1c23' + | '\u1c24' .. '\u1c2b' + | '\u1c2c' .. '\u1c33' + | '\u1c34' .. '\u1c35' + | '\u1c4d' .. '\u1c4f' + | '\u1c5a' .. '\u1c77' + | '\u1c78' .. '\u1c7d' + | '\u1ce9' .. '\u1cec' + | '\u1cee' .. '\u1cf1' | '\u1cf2' - | '\u1d00' to '\u1d2b' - | '\u1d2c' to '\u1d61' - | '\u1d62' to '\u1d77' + | '\u1d00' .. '\u1d2b' + | '\u1d2c' .. '\u1d61' + | '\u1d62' .. '\u1d77' | '\u1d78' - | '\u1d79' to '\u1d9a' - | '\u1d9b' to '\u1dbf' - | '\u1e00' to '\u1f15' - | '\u1f18' to '\u1f1d' - | '\u1f20' to '\u1f45' - | '\u1f48' to '\u1f4d' - | '\u1f50' to '\u1f57' + | '\u1d79' .. '\u1d9a' + | '\u1d9b' .. '\u1dbf' + | '\u1e00' .. '\u1f15' + | '\u1f18' .. '\u1f1d' + | '\u1f20' .. '\u1f45' + | '\u1f48' .. '\u1f4d' + | '\u1f50' .. '\u1f57' | '\u1f59' | '\u1f5b' | '\u1f5d' - | '\u1f5f' to '\u1f7d' - | '\u1f80' to '\u1fb4' - | '\u1fb6' to '\u1fbc' + | '\u1f5f' .. '\u1f7d' + | '\u1f80' .. '\u1fb4' + | '\u1fb6' .. '\u1fbc' | '\u1fbe' - | '\u1fc2' to '\u1fc4' - | '\u1fc6' to '\u1fcc' - | '\u1fd0' to '\u1fd3' - | '\u1fd6' to '\u1fdb' - | '\u1fe0' to '\u1fec' - | '\u1ff2' to '\u1ff4' - | '\u1ff6' to '\u1ffc' + | '\u1fc2' .. '\u1fc4' + | '\u1fc6' .. '\u1fcc' + | '\u1fd0' .. '\u1fd3' + | '\u1fd6' .. '\u1fdb' + | '\u1fe0' .. '\u1fec' + | '\u1ff2' .. '\u1ff4' + | '\u1ff6' .. '\u1ffc' | '\u2071' | '\u207f' - | '\u2090' to '\u209c' + | '\u2090' .. '\u209c' | '\u2102' | '\u2107' - | '\u210a' to '\u2113' + | '\u210a' .. '\u2113' | '\u2115' - | '\u2119' to '\u211d' + | '\u2119' .. '\u211d' | '\u2124' | '\u2126' | '\u2128' - | '\u212a' to '\u212d' - | '\u212f' to '\u2134' - | '\u2135' to '\u2138' + | '\u212a' .. '\u212d' + | '\u212f' .. '\u2134' + | '\u2135' .. '\u2138' | '\u2139' - | '\u213c' to '\u213f' - | '\u2145' to '\u2149' + | '\u213c' .. '\u213f' + | '\u2145' .. '\u2149' | '\u214e' - | '\u2160' to '\u2182' - | '\u2183' to '\u2184' - | '\u2185' to '\u2188' - | '\u24b6' to '\u24e9' - | '\u2c00' to '\u2c2e' - | '\u2c30' to '\u2c5e' - | '\u2c60' to '\u2c7c' + | '\u2160' .. '\u2182' + | '\u2183' .. '\u2184' + | '\u2185' .. '\u2188' + | '\u24b6' .. '\u24e9' + | '\u2c00' .. '\u2c2e' + | '\u2c30' .. '\u2c5e' + | '\u2c60' .. '\u2c7c' | '\u2c7d' - | '\u2c7e' to '\u2ce4' - | '\u2ceb' to '\u2cee' - | '\u2d00' to '\u2d25' - | '\u2d30' to '\u2d65' + | '\u2c7e' .. '\u2ce4' + | '\u2ceb' .. '\u2cee' + | '\u2d00' .. '\u2d25' + | '\u2d30' .. '\u2d65' | '\u2d6f' - | '\u2d80' to '\u2d96' - | '\u2da0' to '\u2da6' - | '\u2da8' to '\u2dae' - | '\u2db0' to '\u2db6' - | '\u2db8' to '\u2dbe' - | '\u2dc0' to '\u2dc6' - | '\u2dc8' to '\u2dce' - | '\u2dd0' to '\u2dd6' - | '\u2dd8' to '\u2dde' - | '\u2de0' to '\u2dff' + | '\u2d80' .. '\u2d96' + | '\u2da0' .. '\u2da6' + | '\u2da8' .. '\u2dae' + | '\u2db0' .. '\u2db6' + | '\u2db8' .. '\u2dbe' + | '\u2dc0' .. '\u2dc6' + | '\u2dc8' .. '\u2dce' + | '\u2dd0' .. '\u2dd6' + | '\u2dd8' .. '\u2dde' + | '\u2de0' .. '\u2dff' | '\u2e2f' | '\u3005' | '\u3006' | '\u3007' - | '\u3021' to '\u3029' - | '\u3031' to '\u3035' - | '\u3038' to '\u303a' + | '\u3021' .. '\u3029' + | '\u3031' .. '\u3035' + | '\u3038' .. '\u303a' | '\u303b' | '\u303c' - | '\u3041' to '\u3096' - | '\u309d' to '\u309e' + | '\u3041' .. '\u3096' + | '\u309d' .. '\u309e' | '\u309f' - | '\u30a1' to '\u30fa' - | '\u30fc' to '\u30fe' + | '\u30a1' .. '\u30fa' + | '\u30fc' .. '\u30fe' | '\u30ff' - | '\u3105' to '\u312d' - | '\u3131' to '\u318e' - | '\u31a0' to '\u31ba' - | '\u31f0' to '\u31ff' - | '\u3400' to '\u4db5' - | '\u4e00' to '\u9fcb' - | '\ua000' to '\ua014' + | '\u3105' .. '\u312d' + | '\u3131' .. '\u318e' + | '\u31a0' .. '\u31ba' + | '\u31f0' .. '\u31ff' + | '\u3400' .. '\u4db5' + | '\u4e00' .. '\u9fcb' + | '\ua000' .. '\ua014' | '\ua015' - | '\ua016' to '\ua48c' - | '\ua4d0' to '\ua4f7' - | '\ua4f8' to '\ua4fd' - | '\ua500' to '\ua60b' + | '\ua016' .. '\ua48c' + | '\ua4d0' .. '\ua4f7' + | '\ua4f8' .. '\ua4fd' + | '\ua500' .. '\ua60b' | '\ua60c' - | '\ua610' to '\ua61f' - | '\ua62a' to '\ua62b' - | '\ua640' to '\ua66d' + | '\ua610' .. '\ua61f' + | '\ua62a' .. '\ua62b' + | '\ua640' .. '\ua66d' | '\ua66e' | '\ua67f' - | '\ua680' to '\ua697' - | '\ua6a0' to '\ua6e5' - | '\ua6e6' to '\ua6ef' - | '\ua717' to '\ua71f' - | '\ua722' to '\ua76f' + | '\ua680' .. '\ua697' + | '\ua6a0' .. '\ua6e5' + | '\ua6e6' .. '\ua6ef' + | '\ua717' .. '\ua71f' + | '\ua722' .. '\ua76f' | '\ua770' - | '\ua771' to '\ua787' + | '\ua771' .. '\ua787' | '\ua788' - | '\ua78b' to '\ua78e' - | '\ua790' to '\ua791' - | '\ua7a0' to '\ua7a9' + | '\ua78b' .. '\ua78e' + | '\ua790' .. '\ua791' + | '\ua7a0' .. '\ua7a9' | '\ua7fa' - | '\ua7fb' to '\ua801' - | '\ua803' to '\ua805' - | '\ua807' to '\ua80a' - | '\ua80c' to '\ua822' - | '\ua823' to '\ua824' - | '\ua825' to '\ua826' + | '\ua7fb' .. '\ua801' + | '\ua803' .. '\ua805' + | '\ua807' .. '\ua80a' + | '\ua80c' .. '\ua822' + | '\ua823' .. '\ua824' + | '\ua825' .. '\ua826' | '\ua827' - | '\ua840' to '\ua873' - | '\ua880' to '\ua881' - | '\ua882' to '\ua8b3' - | '\ua8b4' to '\ua8c3' - | '\ua8f2' to '\ua8f7' + | '\ua840' .. '\ua873' + | '\ua880' .. '\ua881' + | '\ua882' .. '\ua8b3' + | '\ua8b4' .. '\ua8c3' + | '\ua8f2' .. '\ua8f7' | '\ua8fb' - | '\ua90a' to '\ua925' - | '\ua926' to '\ua92a' - | '\ua930' to '\ua946' - | '\ua947' to '\ua951' + | '\ua90a' .. '\ua925' + | '\ua926' .. '\ua92a' + | '\ua930' .. '\ua946' + | '\ua947' .. '\ua951' | '\ua952' - | '\ua960' to '\ua97c' - | '\ua980' to '\ua982' + | '\ua960' .. '\ua97c' + | '\ua980' .. '\ua982' | '\ua983' - | '\ua984' to '\ua9b2' - | '\ua9b4' to '\ua9b5' - | '\ua9b6' to '\ua9b9' - | '\ua9ba' to '\ua9bb' + | '\ua984' .. '\ua9b2' + | '\ua9b4' .. '\ua9b5' + | '\ua9b6' .. '\ua9b9' + | '\ua9ba' .. '\ua9bb' | '\ua9bc' - | '\ua9bd' to '\ua9bf' + | '\ua9bd' .. '\ua9bf' | '\ua9cf' - | '\uaa00' to '\uaa28' - | '\uaa29' to '\uaa2e' - | '\uaa2f' to '\uaa30' - | '\uaa31' to '\uaa32' - | '\uaa33' to '\uaa34' - | '\uaa35' to '\uaa36' - | '\uaa40' to '\uaa42' + | '\uaa00' .. '\uaa28' + | '\uaa29' .. '\uaa2e' + | '\uaa2f' .. '\uaa30' + | '\uaa31' .. '\uaa32' + | '\uaa33' .. '\uaa34' + | '\uaa35' .. '\uaa36' + | '\uaa40' .. '\uaa42' | '\uaa43' - | '\uaa44' to '\uaa4b' + | '\uaa44' .. '\uaa4b' | '\uaa4c' | '\uaa4d' - | '\uaa60' to '\uaa6f' + | '\uaa60' .. '\uaa6f' | '\uaa70' - | '\uaa71' to '\uaa76' + | '\uaa71' .. '\uaa76' | '\uaa7a' - | '\uaa80' to '\uaaaf' + | '\uaa80' .. '\uaaaf' | '\uaab0' | '\uaab1' - | '\uaab2' to '\uaab4' - | '\uaab5' to '\uaab6' - | '\uaab7' to '\uaab8' - | '\uaab9' to '\uaabd' + | '\uaab2' .. '\uaab4' + | '\uaab5' .. '\uaab6' + | '\uaab7' .. '\uaab8' + | '\uaab9' .. '\uaabd' | '\uaabe' | '\uaac0' | '\uaac2' - | '\uaadb' to '\uaadc' + | '\uaadb' .. '\uaadc' | '\uaadd' - | '\uab01' to '\uab06' - | '\uab09' to '\uab0e' - | '\uab11' to '\uab16' - | '\uab20' to '\uab26' - | '\uab28' to '\uab2e' - | '\uabc0' to '\uabe2' - | '\uabe3' to '\uabe4' + | '\uab01' .. '\uab06' + | '\uab09' .. '\uab0e' + | '\uab11' .. '\uab16' + | '\uab20' .. '\uab26' + | '\uab28' .. '\uab2e' + | '\uabc0' .. '\uabe2' + | '\uabe3' .. '\uabe4' | '\uabe5' - | '\uabe6' to '\uabe7' + | '\uabe6' .. '\uabe7' | '\uabe8' - | '\uabe9' to '\uabea' - | '\uac00' to '\ud7a3' - | '\ud7b0' to '\ud7c6' - | '\ud7cb' to '\ud7fb' - | '\uf900' to '\ufa2d' - | '\ufa30' to '\ufa6d' - | '\ufa70' to '\ufad9' - | '\ufb00' to '\ufb06' - | '\ufb13' to '\ufb17' + | '\uabe9' .. '\uabea' + | '\uac00' .. '\ud7a3' + | '\ud7b0' .. '\ud7c6' + | '\ud7cb' .. '\ud7fb' + | '\uf900' .. '\ufa2d' + | '\ufa30' .. '\ufa6d' + | '\ufa70' .. '\ufad9' + | '\ufb00' .. '\ufb06' + | '\ufb13' .. '\ufb17' | '\ufb1d' | '\ufb1e' - | '\ufb1f' to '\ufb28' - | '\ufb2a' to '\ufb36' - | '\ufb38' to '\ufb3c' + | '\ufb1f' .. '\ufb28' + | '\ufb2a' .. '\ufb36' + | '\ufb38' .. '\ufb3c' | '\ufb3e' - | '\ufb40' to '\ufb41' - | '\ufb43' to '\ufb44' - | '\ufb46' to '\ufbb1' - | '\ufbd3' to '\ufd3d' - | '\ufd50' to '\ufd8f' - | '\ufd92' to '\ufdc7' - | '\ufdf0' to '\ufdfb' - | '\ufe70' to '\ufe74' - | '\ufe76' to '\ufefc' - | '\uff21' to '\uff3a' - | '\uff41' to '\uff5a' - | '\uff66' to '\uff6f' + | '\ufb40' .. '\ufb41' + | '\ufb43' .. '\ufb44' + | '\ufb46' .. '\ufbb1' + | '\ufbd3' .. '\ufd3d' + | '\ufd50' .. '\ufd8f' + | '\ufd92' .. '\ufdc7' + | '\ufdf0' .. '\ufdfb' + | '\ufe70' .. '\ufe74' + | '\ufe76' .. '\ufefc' + | '\uff21' .. '\uff3a' + | '\uff41' .. '\uff5a' + | '\uff66' .. '\uff6f' | '\uff70' - | '\uff71' to '\uff9d' - | '\uff9e' to '\uff9f' - | '\uffa0' to '\uffbe' - | '\uffc2' to '\uffc7' - | '\uffca' to '\uffcf' - | '\uffd2' to '\uffd7' - | '\uffda' to '\uffdc' - | '\U00010000' to '\U0001000b' - | '\U0001000d' to '\U00010026' - | '\U00010028' to '\U0001003a' - | '\U0001003c' to '\U0001003d' - | '\U0001003f' to '\U0001004d' - | '\U00010050' to '\U0001005d' - | '\U00010080' to '\U000100fa' - | '\U00010140' to '\U00010174' - | '\U00010280' to '\U0001029c' - | '\U000102a0' to '\U000102d0' - | '\U00010300' to '\U0001031e' - | '\U00010330' to '\U00010340' + | '\uff71' .. '\uff9d' + | '\uff9e' .. '\uff9f' + | '\uffa0' .. '\uffbe' + | '\uffc2' .. '\uffc7' + | '\uffca' .. '\uffcf' + | '\uffd2' .. '\uffd7' + | '\uffda' .. '\uffdc' + | '\U00010000' .. '\U0001000b' + | '\U0001000d' .. '\U00010026' + | '\U00010028' .. '\U0001003a' + | '\U0001003c' .. '\U0001003d' + | '\U0001003f' .. '\U0001004d' + | '\U00010050' .. '\U0001005d' + | '\U00010080' .. '\U000100fa' + | '\U00010140' .. '\U00010174' + | '\U00010280' .. '\U0001029c' + | '\U000102a0' .. '\U000102d0' + | '\U00010300' .. '\U0001031e' + | '\U00010330' .. '\U00010340' | '\U00010341' - | '\U00010342' to '\U00010349' + | '\U00010342' .. '\U00010349' | '\U0001034a' - | '\U00010380' to '\U0001039d' - | '\U000103a0' to '\U000103c3' - | '\U000103c8' to '\U000103cf' - | '\U000103d1' to '\U000103d5' - | '\U00010400' to '\U0001044f' - | '\U00010450' to '\U0001049d' - | '\U00010800' to '\U00010805' + | '\U00010380' .. '\U0001039d' + | '\U000103a0' .. '\U000103c3' + | '\U000103c8' .. '\U000103cf' + | '\U000103d1' .. '\U000103d5' + | '\U00010400' .. '\U0001044f' + | '\U00010450' .. '\U0001049d' + | '\U00010800' .. '\U00010805' | '\U00010808' - | '\U0001080a' to '\U00010835' - | '\U00010837' to '\U00010838' + | '\U0001080a' .. '\U00010835' + | '\U00010837' .. '\U00010838' | '\U0001083c' - | '\U0001083f' to '\U00010855' - | '\U00010900' to '\U00010915' - | '\U00010920' to '\U00010939' + | '\U0001083f' .. '\U00010855' + | '\U00010900' .. '\U00010915' + | '\U00010920' .. '\U00010939' | '\U00010a00' - | '\U00010a01' to '\U00010a03' - | '\U00010a05' to '\U00010a06' - | '\U00010a0c' to '\U00010a0f' - | '\U00010a10' to '\U00010a13' - | '\U00010a15' to '\U00010a17' - | '\U00010a19' to '\U00010a33' - | '\U00010a60' to '\U00010a7c' - | '\U00010b00' to '\U00010b35' - | '\U00010b40' to '\U00010b55' - | '\U00010b60' to '\U00010b72' - | '\U00010c00' to '\U00010c48' + | '\U00010a01' .. '\U00010a03' + | '\U00010a05' .. '\U00010a06' + | '\U00010a0c' .. '\U00010a0f' + | '\U00010a10' .. '\U00010a13' + | '\U00010a15' .. '\U00010a17' + | '\U00010a19' .. '\U00010a33' + | '\U00010a60' .. '\U00010a7c' + | '\U00010b00' .. '\U00010b35' + | '\U00010b40' .. '\U00010b55' + | '\U00010b60' .. '\U00010b72' + | '\U00010c00' .. '\U00010c48' | '\U00011000' | '\U00011001' | '\U00011002' - | '\U00011003' to '\U00011037' - | '\U00011038' to '\U00011045' + | '\U00011003' .. '\U00011037' + | '\U00011038' .. '\U00011045' | '\U00011082' - | '\U00011083' to '\U000110af' - | '\U000110b0' to '\U000110b2' - | '\U000110b3' to '\U000110b6' - | '\U000110b7' to '\U000110b8' - | '\U00012000' to '\U0001236e' - | '\U00012400' to '\U00012462' - | '\U00013000' to '\U0001342e' - | '\U00016800' to '\U00016a38' - | '\U0001b000' to '\U0001b001' - | '\U0001d400' to '\U0001d454' - | '\U0001d456' to '\U0001d49c' - | '\U0001d49e' to '\U0001d49f' + | '\U00011083' .. '\U000110af' + | '\U000110b0' .. '\U000110b2' + | '\U000110b3' .. '\U000110b6' + | '\U000110b7' .. '\U000110b8' + | '\U00012000' .. '\U0001236e' + | '\U00012400' .. '\U00012462' + | '\U00013000' .. '\U0001342e' + | '\U00016800' .. '\U00016a38' + | '\U0001b000' .. '\U0001b001' + | '\U0001d400' .. '\U0001d454' + | '\U0001d456' .. '\U0001d49c' + | '\U0001d49e' .. '\U0001d49f' | '\U0001d4a2' - | '\U0001d4a5' to '\U0001d4a6' - | '\U0001d4a9' to '\U0001d4ac' - | '\U0001d4ae' to '\U0001d4b9' + | '\U0001d4a5' .. '\U0001d4a6' + | '\U0001d4a9' .. '\U0001d4ac' + | '\U0001d4ae' .. '\U0001d4b9' | '\U0001d4bb' - | '\U0001d4bd' to '\U0001d4c3' - | '\U0001d4c5' to '\U0001d505' - | '\U0001d507' to '\U0001d50a' - | '\U0001d50d' to '\U0001d514' - | '\U0001d516' to '\U0001d51c' - | '\U0001d51e' to '\U0001d539' - | '\U0001d53b' to '\U0001d53e' - | '\U0001d540' to '\U0001d544' + | '\U0001d4bd' .. '\U0001d4c3' + | '\U0001d4c5' .. '\U0001d505' + | '\U0001d507' .. '\U0001d50a' + | '\U0001d50d' .. '\U0001d514' + | '\U0001d516' .. '\U0001d51c' + | '\U0001d51e' .. '\U0001d539' + | '\U0001d53b' .. '\U0001d53e' + | '\U0001d540' .. '\U0001d544' | '\U0001d546' - | '\U0001d54a' to '\U0001d550' - | '\U0001d552' to '\U0001d6a5' - | '\U0001d6a8' to '\U0001d6c0' - | '\U0001d6c2' to '\U0001d6da' - | '\U0001d6dc' to '\U0001d6fa' - | '\U0001d6fc' to '\U0001d714' - | '\U0001d716' to '\U0001d734' - | '\U0001d736' to '\U0001d74e' - | '\U0001d750' to '\U0001d76e' - | '\U0001d770' to '\U0001d788' - | '\U0001d78a' to '\U0001d7a8' - | '\U0001d7aa' to '\U0001d7c2' - | '\U0001d7c4' to '\U0001d7cb' - | '\U00020000' to '\U0002a6d6' - | '\U0002a700' to '\U0002b734' - | '\U0002b740' to '\U0002b81d' - | '\U0002f800' to '\U0002fa1d' + | '\U0001d54a' .. '\U0001d550' + | '\U0001d552' .. '\U0001d6a5' + | '\U0001d6a8' .. '\U0001d6c0' + | '\U0001d6c2' .. '\U0001d6da' + | '\U0001d6dc' .. '\U0001d6fa' + | '\U0001d6fc' .. '\U0001d714' + | '\U0001d716' .. '\U0001d734' + | '\U0001d736' .. '\U0001d74e' + | '\U0001d750' .. '\U0001d76e' + | '\U0001d770' .. '\U0001d788' + | '\U0001d78a' .. '\U0001d7a8' + | '\U0001d7aa' .. '\U0001d7c2' + | '\U0001d7c4' .. '\U0001d7cb' + | '\U00020000' .. '\U0002a6d6' + | '\U0002a700' .. '\U0002b734' + | '\U0002b740' .. '\U0002b81d' + | '\U0002f800' .. '\U0002fa1d' => true, _ => false }; @@ -3304,870 +3304,870 @@ mod derived_property { pure fn XID_Continue(c: char) -> bool { return match c { - '\x30' to '\x39' - | '\x41' to '\x5a' + '\x30' .. '\x39' + | '\x41' .. '\x5a' | '\x5f' - | '\x61' to '\x7a' + | '\x61' .. '\x7a' | '\xaa' | '\xb5' | '\xb7' | '\xba' - | '\xc0' to '\xd6' - | '\xd8' to '\xf6' - | '\xf8' to '\u01ba' + | '\xc0' .. '\xd6' + | '\xd8' .. '\xf6' + | '\xf8' .. '\u01ba' | '\u01bb' - | '\u01bc' to '\u01bf' - | '\u01c0' to '\u01c3' - | '\u01c4' to '\u0293' + | '\u01bc' .. '\u01bf' + | '\u01c0' .. '\u01c3' + | '\u01c4' .. '\u0293' | '\u0294' - | '\u0295' to '\u02af' - | '\u02b0' to '\u02c1' - | '\u02c6' to '\u02d1' - | '\u02e0' to '\u02e4' + | '\u0295' .. '\u02af' + | '\u02b0' .. '\u02c1' + | '\u02c6' .. '\u02d1' + | '\u02e0' .. '\u02e4' | '\u02ec' | '\u02ee' - | '\u0300' to '\u036f' - | '\u0370' to '\u0373' + | '\u0300' .. '\u036f' + | '\u0370' .. '\u0373' | '\u0374' - | '\u0376' to '\u0377' - | '\u037b' to '\u037d' + | '\u0376' .. '\u0377' + | '\u037b' .. '\u037d' | '\u0386' | '\u0387' - | '\u0388' to '\u038a' + | '\u0388' .. '\u038a' | '\u038c' - | '\u038e' to '\u03a1' - | '\u03a3' to '\u03f5' - | '\u03f7' to '\u0481' - | '\u0483' to '\u0487' - | '\u048a' to '\u0527' - | '\u0531' to '\u0556' + | '\u038e' .. '\u03a1' + | '\u03a3' .. '\u03f5' + | '\u03f7' .. '\u0481' + | '\u0483' .. '\u0487' + | '\u048a' .. '\u0527' + | '\u0531' .. '\u0556' | '\u0559' - | '\u0561' to '\u0587' - | '\u0591' to '\u05bd' + | '\u0561' .. '\u0587' + | '\u0591' .. '\u05bd' | '\u05bf' - | '\u05c1' to '\u05c2' - | '\u05c4' to '\u05c5' + | '\u05c1' .. '\u05c2' + | '\u05c4' .. '\u05c5' | '\u05c7' - | '\u05d0' to '\u05ea' - | '\u05f0' to '\u05f2' - | '\u0610' to '\u061a' - | '\u0620' to '\u063f' + | '\u05d0' .. '\u05ea' + | '\u05f0' .. '\u05f2' + | '\u0610' .. '\u061a' + | '\u0620' .. '\u063f' | '\u0640' - | '\u0641' to '\u064a' - | '\u064b' to '\u065f' - | '\u0660' to '\u0669' - | '\u066e' to '\u066f' + | '\u0641' .. '\u064a' + | '\u064b' .. '\u065f' + | '\u0660' .. '\u0669' + | '\u066e' .. '\u066f' | '\u0670' - | '\u0671' to '\u06d3' + | '\u0671' .. '\u06d3' | '\u06d5' - | '\u06d6' to '\u06dc' - | '\u06df' to '\u06e4' - | '\u06e5' to '\u06e6' - | '\u06e7' to '\u06e8' - | '\u06ea' to '\u06ed' - | '\u06ee' to '\u06ef' - | '\u06f0' to '\u06f9' - | '\u06fa' to '\u06fc' + | '\u06d6' .. '\u06dc' + | '\u06df' .. '\u06e4' + | '\u06e5' .. '\u06e6' + | '\u06e7' .. '\u06e8' + | '\u06ea' .. '\u06ed' + | '\u06ee' .. '\u06ef' + | '\u06f0' .. '\u06f9' + | '\u06fa' .. '\u06fc' | '\u06ff' | '\u0710' | '\u0711' - | '\u0712' to '\u072f' - | '\u0730' to '\u074a' - | '\u074d' to '\u07a5' - | '\u07a6' to '\u07b0' + | '\u0712' .. '\u072f' + | '\u0730' .. '\u074a' + | '\u074d' .. '\u07a5' + | '\u07a6' .. '\u07b0' | '\u07b1' - | '\u07c0' to '\u07c9' - | '\u07ca' to '\u07ea' - | '\u07eb' to '\u07f3' - | '\u07f4' to '\u07f5' + | '\u07c0' .. '\u07c9' + | '\u07ca' .. '\u07ea' + | '\u07eb' .. '\u07f3' + | '\u07f4' .. '\u07f5' | '\u07fa' - | '\u0800' to '\u0815' - | '\u0816' to '\u0819' + | '\u0800' .. '\u0815' + | '\u0816' .. '\u0819' | '\u081a' - | '\u081b' to '\u0823' + | '\u081b' .. '\u0823' | '\u0824' - | '\u0825' to '\u0827' + | '\u0825' .. '\u0827' | '\u0828' - | '\u0829' to '\u082d' - | '\u0840' to '\u0858' - | '\u0859' to '\u085b' - | '\u0900' to '\u0902' + | '\u0829' .. '\u082d' + | '\u0840' .. '\u0858' + | '\u0859' .. '\u085b' + | '\u0900' .. '\u0902' | '\u0903' - | '\u0904' to '\u0939' + | '\u0904' .. '\u0939' | '\u093a' | '\u093b' | '\u093c' | '\u093d' - | '\u093e' to '\u0940' - | '\u0941' to '\u0948' - | '\u0949' to '\u094c' + | '\u093e' .. '\u0940' + | '\u0941' .. '\u0948' + | '\u0949' .. '\u094c' | '\u094d' - | '\u094e' to '\u094f' + | '\u094e' .. '\u094f' | '\u0950' - | '\u0951' to '\u0957' - | '\u0958' to '\u0961' - | '\u0962' to '\u0963' - | '\u0966' to '\u096f' + | '\u0951' .. '\u0957' + | '\u0958' .. '\u0961' + | '\u0962' .. '\u0963' + | '\u0966' .. '\u096f' | '\u0971' - | '\u0972' to '\u0977' - | '\u0979' to '\u097f' + | '\u0972' .. '\u0977' + | '\u0979' .. '\u097f' | '\u0981' - | '\u0982' to '\u0983' - | '\u0985' to '\u098c' - | '\u098f' to '\u0990' - | '\u0993' to '\u09a8' - | '\u09aa' to '\u09b0' + | '\u0982' .. '\u0983' + | '\u0985' .. '\u098c' + | '\u098f' .. '\u0990' + | '\u0993' .. '\u09a8' + | '\u09aa' .. '\u09b0' | '\u09b2' - | '\u09b6' to '\u09b9' + | '\u09b6' .. '\u09b9' | '\u09bc' | '\u09bd' - | '\u09be' to '\u09c0' - | '\u09c1' to '\u09c4' - | '\u09c7' to '\u09c8' - | '\u09cb' to '\u09cc' + | '\u09be' .. '\u09c0' + | '\u09c1' .. '\u09c4' + | '\u09c7' .. '\u09c8' + | '\u09cb' .. '\u09cc' | '\u09cd' | '\u09ce' | '\u09d7' - | '\u09dc' to '\u09dd' - | '\u09df' to '\u09e1' - | '\u09e2' to '\u09e3' - | '\u09e6' to '\u09ef' - | '\u09f0' to '\u09f1' - | '\u0a01' to '\u0a02' + | '\u09dc' .. '\u09dd' + | '\u09df' .. '\u09e1' + | '\u09e2' .. '\u09e3' + | '\u09e6' .. '\u09ef' + | '\u09f0' .. '\u09f1' + | '\u0a01' .. '\u0a02' | '\u0a03' - | '\u0a05' to '\u0a0a' - | '\u0a0f' to '\u0a10' - | '\u0a13' to '\u0a28' - | '\u0a2a' to '\u0a30' - | '\u0a32' to '\u0a33' - | '\u0a35' to '\u0a36' - | '\u0a38' to '\u0a39' + | '\u0a05' .. '\u0a0a' + | '\u0a0f' .. '\u0a10' + | '\u0a13' .. '\u0a28' + | '\u0a2a' .. '\u0a30' + | '\u0a32' .. '\u0a33' + | '\u0a35' .. '\u0a36' + | '\u0a38' .. '\u0a39' | '\u0a3c' - | '\u0a3e' to '\u0a40' - | '\u0a41' to '\u0a42' - | '\u0a47' to '\u0a48' - | '\u0a4b' to '\u0a4d' + | '\u0a3e' .. '\u0a40' + | '\u0a41' .. '\u0a42' + | '\u0a47' .. '\u0a48' + | '\u0a4b' .. '\u0a4d' | '\u0a51' - | '\u0a59' to '\u0a5c' + | '\u0a59' .. '\u0a5c' | '\u0a5e' - | '\u0a66' to '\u0a6f' - | '\u0a70' to '\u0a71' - | '\u0a72' to '\u0a74' + | '\u0a66' .. '\u0a6f' + | '\u0a70' .. '\u0a71' + | '\u0a72' .. '\u0a74' | '\u0a75' - | '\u0a81' to '\u0a82' + | '\u0a81' .. '\u0a82' | '\u0a83' - | '\u0a85' to '\u0a8d' - | '\u0a8f' to '\u0a91' - | '\u0a93' to '\u0aa8' - | '\u0aaa' to '\u0ab0' - | '\u0ab2' to '\u0ab3' - | '\u0ab5' to '\u0ab9' + | '\u0a85' .. '\u0a8d' + | '\u0a8f' .. '\u0a91' + | '\u0a93' .. '\u0aa8' + | '\u0aaa' .. '\u0ab0' + | '\u0ab2' .. '\u0ab3' + | '\u0ab5' .. '\u0ab9' | '\u0abc' | '\u0abd' - | '\u0abe' to '\u0ac0' - | '\u0ac1' to '\u0ac5' - | '\u0ac7' to '\u0ac8' + | '\u0abe' .. '\u0ac0' + | '\u0ac1' .. '\u0ac5' + | '\u0ac7' .. '\u0ac8' | '\u0ac9' - | '\u0acb' to '\u0acc' + | '\u0acb' .. '\u0acc' | '\u0acd' | '\u0ad0' - | '\u0ae0' to '\u0ae1' - | '\u0ae2' to '\u0ae3' - | '\u0ae6' to '\u0aef' + | '\u0ae0' .. '\u0ae1' + | '\u0ae2' .. '\u0ae3' + | '\u0ae6' .. '\u0aef' | '\u0b01' - | '\u0b02' to '\u0b03' - | '\u0b05' to '\u0b0c' - | '\u0b0f' to '\u0b10' - | '\u0b13' to '\u0b28' - | '\u0b2a' to '\u0b30' - | '\u0b32' to '\u0b33' - | '\u0b35' to '\u0b39' + | '\u0b02' .. '\u0b03' + | '\u0b05' .. '\u0b0c' + | '\u0b0f' .. '\u0b10' + | '\u0b13' .. '\u0b28' + | '\u0b2a' .. '\u0b30' + | '\u0b32' .. '\u0b33' + | '\u0b35' .. '\u0b39' | '\u0b3c' | '\u0b3d' | '\u0b3e' | '\u0b3f' | '\u0b40' - | '\u0b41' to '\u0b44' - | '\u0b47' to '\u0b48' - | '\u0b4b' to '\u0b4c' + | '\u0b41' .. '\u0b44' + | '\u0b47' .. '\u0b48' + | '\u0b4b' .. '\u0b4c' | '\u0b4d' | '\u0b56' | '\u0b57' - | '\u0b5c' to '\u0b5d' - | '\u0b5f' to '\u0b61' - | '\u0b62' to '\u0b63' - | '\u0b66' to '\u0b6f' + | '\u0b5c' .. '\u0b5d' + | '\u0b5f' .. '\u0b61' + | '\u0b62' .. '\u0b63' + | '\u0b66' .. '\u0b6f' | '\u0b71' | '\u0b82' | '\u0b83' - | '\u0b85' to '\u0b8a' - | '\u0b8e' to '\u0b90' - | '\u0b92' to '\u0b95' - | '\u0b99' to '\u0b9a' + | '\u0b85' .. '\u0b8a' + | '\u0b8e' .. '\u0b90' + | '\u0b92' .. '\u0b95' + | '\u0b99' .. '\u0b9a' | '\u0b9c' - | '\u0b9e' to '\u0b9f' - | '\u0ba3' to '\u0ba4' - | '\u0ba8' to '\u0baa' - | '\u0bae' to '\u0bb9' - | '\u0bbe' to '\u0bbf' + | '\u0b9e' .. '\u0b9f' + | '\u0ba3' .. '\u0ba4' + | '\u0ba8' .. '\u0baa' + | '\u0bae' .. '\u0bb9' + | '\u0bbe' .. '\u0bbf' | '\u0bc0' - | '\u0bc1' to '\u0bc2' - | '\u0bc6' to '\u0bc8' - | '\u0bca' to '\u0bcc' + | '\u0bc1' .. '\u0bc2' + | '\u0bc6' .. '\u0bc8' + | '\u0bca' .. '\u0bcc' | '\u0bcd' | '\u0bd0' | '\u0bd7' - | '\u0be6' to '\u0bef' - | '\u0c01' to '\u0c03' - | '\u0c05' to '\u0c0c' - | '\u0c0e' to '\u0c10' - | '\u0c12' to '\u0c28' - | '\u0c2a' to '\u0c33' - | '\u0c35' to '\u0c39' + | '\u0be6' .. '\u0bef' + | '\u0c01' .. '\u0c03' + | '\u0c05' .. '\u0c0c' + | '\u0c0e' .. '\u0c10' + | '\u0c12' .. '\u0c28' + | '\u0c2a' .. '\u0c33' + | '\u0c35' .. '\u0c39' | '\u0c3d' - | '\u0c3e' to '\u0c40' - | '\u0c41' to '\u0c44' - | '\u0c46' to '\u0c48' - | '\u0c4a' to '\u0c4d' - | '\u0c55' to '\u0c56' - | '\u0c58' to '\u0c59' - | '\u0c60' to '\u0c61' - | '\u0c62' to '\u0c63' - | '\u0c66' to '\u0c6f' - | '\u0c82' to '\u0c83' - | '\u0c85' to '\u0c8c' - | '\u0c8e' to '\u0c90' - | '\u0c92' to '\u0ca8' - | '\u0caa' to '\u0cb3' - | '\u0cb5' to '\u0cb9' + | '\u0c3e' .. '\u0c40' + | '\u0c41' .. '\u0c44' + | '\u0c46' .. '\u0c48' + | '\u0c4a' .. '\u0c4d' + | '\u0c55' .. '\u0c56' + | '\u0c58' .. '\u0c59' + | '\u0c60' .. '\u0c61' + | '\u0c62' .. '\u0c63' + | '\u0c66' .. '\u0c6f' + | '\u0c82' .. '\u0c83' + | '\u0c85' .. '\u0c8c' + | '\u0c8e' .. '\u0c90' + | '\u0c92' .. '\u0ca8' + | '\u0caa' .. '\u0cb3' + | '\u0cb5' .. '\u0cb9' | '\u0cbc' | '\u0cbd' | '\u0cbe' | '\u0cbf' - | '\u0cc0' to '\u0cc4' + | '\u0cc0' .. '\u0cc4' | '\u0cc6' - | '\u0cc7' to '\u0cc8' - | '\u0cca' to '\u0ccb' - | '\u0ccc' to '\u0ccd' - | '\u0cd5' to '\u0cd6' + | '\u0cc7' .. '\u0cc8' + | '\u0cca' .. '\u0ccb' + | '\u0ccc' .. '\u0ccd' + | '\u0cd5' .. '\u0cd6' | '\u0cde' - | '\u0ce0' to '\u0ce1' - | '\u0ce2' to '\u0ce3' - | '\u0ce6' to '\u0cef' - | '\u0cf1' to '\u0cf2' - | '\u0d02' to '\u0d03' - | '\u0d05' to '\u0d0c' - | '\u0d0e' to '\u0d10' - | '\u0d12' to '\u0d3a' + | '\u0ce0' .. '\u0ce1' + | '\u0ce2' .. '\u0ce3' + | '\u0ce6' .. '\u0cef' + | '\u0cf1' .. '\u0cf2' + | '\u0d02' .. '\u0d03' + | '\u0d05' .. '\u0d0c' + | '\u0d0e' .. '\u0d10' + | '\u0d12' .. '\u0d3a' | '\u0d3d' - | '\u0d3e' to '\u0d40' - | '\u0d41' to '\u0d44' - | '\u0d46' to '\u0d48' - | '\u0d4a' to '\u0d4c' + | '\u0d3e' .. '\u0d40' + | '\u0d41' .. '\u0d44' + | '\u0d46' .. '\u0d48' + | '\u0d4a' .. '\u0d4c' | '\u0d4d' | '\u0d4e' | '\u0d57' - | '\u0d60' to '\u0d61' - | '\u0d62' to '\u0d63' - | '\u0d66' to '\u0d6f' - | '\u0d7a' to '\u0d7f' - | '\u0d82' to '\u0d83' - | '\u0d85' to '\u0d96' - | '\u0d9a' to '\u0db1' - | '\u0db3' to '\u0dbb' + | '\u0d60' .. '\u0d61' + | '\u0d62' .. '\u0d63' + | '\u0d66' .. '\u0d6f' + | '\u0d7a' .. '\u0d7f' + | '\u0d82' .. '\u0d83' + | '\u0d85' .. '\u0d96' + | '\u0d9a' .. '\u0db1' + | '\u0db3' .. '\u0dbb' | '\u0dbd' - | '\u0dc0' to '\u0dc6' + | '\u0dc0' .. '\u0dc6' | '\u0dca' - | '\u0dcf' to '\u0dd1' - | '\u0dd2' to '\u0dd4' + | '\u0dcf' .. '\u0dd1' + | '\u0dd2' .. '\u0dd4' | '\u0dd6' - | '\u0dd8' to '\u0ddf' - | '\u0df2' to '\u0df3' - | '\u0e01' to '\u0e30' + | '\u0dd8' .. '\u0ddf' + | '\u0df2' .. '\u0df3' + | '\u0e01' .. '\u0e30' | '\u0e31' - | '\u0e32' to '\u0e33' - | '\u0e34' to '\u0e3a' - | '\u0e40' to '\u0e45' + | '\u0e32' .. '\u0e33' + | '\u0e34' .. '\u0e3a' + | '\u0e40' .. '\u0e45' | '\u0e46' - | '\u0e47' to '\u0e4e' - | '\u0e50' to '\u0e59' - | '\u0e81' to '\u0e82' + | '\u0e47' .. '\u0e4e' + | '\u0e50' .. '\u0e59' + | '\u0e81' .. '\u0e82' | '\u0e84' - | '\u0e87' to '\u0e88' + | '\u0e87' .. '\u0e88' | '\u0e8a' | '\u0e8d' - | '\u0e94' to '\u0e97' - | '\u0e99' to '\u0e9f' - | '\u0ea1' to '\u0ea3' + | '\u0e94' .. '\u0e97' + | '\u0e99' .. '\u0e9f' + | '\u0ea1' .. '\u0ea3' | '\u0ea5' | '\u0ea7' - | '\u0eaa' to '\u0eab' - | '\u0ead' to '\u0eb0' + | '\u0eaa' .. '\u0eab' + | '\u0ead' .. '\u0eb0' | '\u0eb1' - | '\u0eb2' to '\u0eb3' - | '\u0eb4' to '\u0eb9' - | '\u0ebb' to '\u0ebc' + | '\u0eb2' .. '\u0eb3' + | '\u0eb4' .. '\u0eb9' + | '\u0ebb' .. '\u0ebc' | '\u0ebd' - | '\u0ec0' to '\u0ec4' + | '\u0ec0' .. '\u0ec4' | '\u0ec6' - | '\u0ec8' to '\u0ecd' - | '\u0ed0' to '\u0ed9' - | '\u0edc' to '\u0edd' + | '\u0ec8' .. '\u0ecd' + | '\u0ed0' .. '\u0ed9' + | '\u0edc' .. '\u0edd' | '\u0f00' - | '\u0f18' to '\u0f19' - | '\u0f20' to '\u0f29' + | '\u0f18' .. '\u0f19' + | '\u0f20' .. '\u0f29' | '\u0f35' | '\u0f37' | '\u0f39' - | '\u0f3e' to '\u0f3f' - | '\u0f40' to '\u0f47' - | '\u0f49' to '\u0f6c' - | '\u0f71' to '\u0f7e' + | '\u0f3e' .. '\u0f3f' + | '\u0f40' .. '\u0f47' + | '\u0f49' .. '\u0f6c' + | '\u0f71' .. '\u0f7e' | '\u0f7f' - | '\u0f80' to '\u0f84' - | '\u0f86' to '\u0f87' - | '\u0f88' to '\u0f8c' - | '\u0f8d' to '\u0f97' - | '\u0f99' to '\u0fbc' + | '\u0f80' .. '\u0f84' + | '\u0f86' .. '\u0f87' + | '\u0f88' .. '\u0f8c' + | '\u0f8d' .. '\u0f97' + | '\u0f99' .. '\u0fbc' | '\u0fc6' - | '\u1000' to '\u102a' - | '\u102b' to '\u102c' - | '\u102d' to '\u1030' + | '\u1000' .. '\u102a' + | '\u102b' .. '\u102c' + | '\u102d' .. '\u1030' | '\u1031' - | '\u1032' to '\u1037' + | '\u1032' .. '\u1037' | '\u1038' - | '\u1039' to '\u103a' - | '\u103b' to '\u103c' - | '\u103d' to '\u103e' + | '\u1039' .. '\u103a' + | '\u103b' .. '\u103c' + | '\u103d' .. '\u103e' | '\u103f' - | '\u1040' to '\u1049' - | '\u1050' to '\u1055' - | '\u1056' to '\u1057' - | '\u1058' to '\u1059' - | '\u105a' to '\u105d' - | '\u105e' to '\u1060' + | '\u1040' .. '\u1049' + | '\u1050' .. '\u1055' + | '\u1056' .. '\u1057' + | '\u1058' .. '\u1059' + | '\u105a' .. '\u105d' + | '\u105e' .. '\u1060' | '\u1061' - | '\u1062' to '\u1064' - | '\u1065' to '\u1066' - | '\u1067' to '\u106d' - | '\u106e' to '\u1070' - | '\u1071' to '\u1074' - | '\u1075' to '\u1081' + | '\u1062' .. '\u1064' + | '\u1065' .. '\u1066' + | '\u1067' .. '\u106d' + | '\u106e' .. '\u1070' + | '\u1071' .. '\u1074' + | '\u1075' .. '\u1081' | '\u1082' - | '\u1083' to '\u1084' - | '\u1085' to '\u1086' - | '\u1087' to '\u108c' + | '\u1083' .. '\u1084' + | '\u1085' .. '\u1086' + | '\u1087' .. '\u108c' | '\u108d' | '\u108e' | '\u108f' - | '\u1090' to '\u1099' - | '\u109a' to '\u109c' + | '\u1090' .. '\u1099' + | '\u109a' .. '\u109c' | '\u109d' - | '\u10a0' to '\u10c5' - | '\u10d0' to '\u10fa' + | '\u10a0' .. '\u10c5' + | '\u10d0' .. '\u10fa' | '\u10fc' - | '\u1100' to '\u1248' - | '\u124a' to '\u124d' - | '\u1250' to '\u1256' + | '\u1100' .. '\u1248' + | '\u124a' .. '\u124d' + | '\u1250' .. '\u1256' | '\u1258' - | '\u125a' to '\u125d' - | '\u1260' to '\u1288' - | '\u128a' to '\u128d' - | '\u1290' to '\u12b0' - | '\u12b2' to '\u12b5' - | '\u12b8' to '\u12be' + | '\u125a' .. '\u125d' + | '\u1260' .. '\u1288' + | '\u128a' .. '\u128d' + | '\u1290' .. '\u12b0' + | '\u12b2' .. '\u12b5' + | '\u12b8' .. '\u12be' | '\u12c0' - | '\u12c2' to '\u12c5' - | '\u12c8' to '\u12d6' - | '\u12d8' to '\u1310' - | '\u1312' to '\u1315' - | '\u1318' to '\u135a' - | '\u135d' to '\u135f' - | '\u1369' to '\u1371' - | '\u1380' to '\u138f' - | '\u13a0' to '\u13f4' - | '\u1401' to '\u166c' - | '\u166f' to '\u167f' - | '\u1681' to '\u169a' - | '\u16a0' to '\u16ea' - | '\u16ee' to '\u16f0' - | '\u1700' to '\u170c' - | '\u170e' to '\u1711' - | '\u1712' to '\u1714' - | '\u1720' to '\u1731' - | '\u1732' to '\u1734' - | '\u1740' to '\u1751' - | '\u1752' to '\u1753' - | '\u1760' to '\u176c' - | '\u176e' to '\u1770' - | '\u1772' to '\u1773' - | '\u1780' to '\u17b3' + | '\u12c2' .. '\u12c5' + | '\u12c8' .. '\u12d6' + | '\u12d8' .. '\u1310' + | '\u1312' .. '\u1315' + | '\u1318' .. '\u135a' + | '\u135d' .. '\u135f' + | '\u1369' .. '\u1371' + | '\u1380' .. '\u138f' + | '\u13a0' .. '\u13f4' + | '\u1401' .. '\u166c' + | '\u166f' .. '\u167f' + | '\u1681' .. '\u169a' + | '\u16a0' .. '\u16ea' + | '\u16ee' .. '\u16f0' + | '\u1700' .. '\u170c' + | '\u170e' .. '\u1711' + | '\u1712' .. '\u1714' + | '\u1720' .. '\u1731' + | '\u1732' .. '\u1734' + | '\u1740' .. '\u1751' + | '\u1752' .. '\u1753' + | '\u1760' .. '\u176c' + | '\u176e' .. '\u1770' + | '\u1772' .. '\u1773' + | '\u1780' .. '\u17b3' | '\u17b6' - | '\u17b7' to '\u17bd' - | '\u17be' to '\u17c5' + | '\u17b7' .. '\u17bd' + | '\u17be' .. '\u17c5' | '\u17c6' - | '\u17c7' to '\u17c8' - | '\u17c9' to '\u17d3' + | '\u17c7' .. '\u17c8' + | '\u17c9' .. '\u17d3' | '\u17d7' | '\u17dc' | '\u17dd' - | '\u17e0' to '\u17e9' - | '\u180b' to '\u180d' - | '\u1810' to '\u1819' - | '\u1820' to '\u1842' + | '\u17e0' .. '\u17e9' + | '\u180b' .. '\u180d' + | '\u1810' .. '\u1819' + | '\u1820' .. '\u1842' | '\u1843' - | '\u1844' to '\u1877' - | '\u1880' to '\u18a8' + | '\u1844' .. '\u1877' + | '\u1880' .. '\u18a8' | '\u18a9' | '\u18aa' - | '\u18b0' to '\u18f5' - | '\u1900' to '\u191c' - | '\u1920' to '\u1922' - | '\u1923' to '\u1926' - | '\u1927' to '\u1928' - | '\u1929' to '\u192b' - | '\u1930' to '\u1931' + | '\u18b0' .. '\u18f5' + | '\u1900' .. '\u191c' + | '\u1920' .. '\u1922' + | '\u1923' .. '\u1926' + | '\u1927' .. '\u1928' + | '\u1929' .. '\u192b' + | '\u1930' .. '\u1931' | '\u1932' - | '\u1933' to '\u1938' - | '\u1939' to '\u193b' - | '\u1946' to '\u194f' - | '\u1950' to '\u196d' - | '\u1970' to '\u1974' - | '\u1980' to '\u19ab' - | '\u19b0' to '\u19c0' - | '\u19c1' to '\u19c7' - | '\u19c8' to '\u19c9' - | '\u19d0' to '\u19d9' + | '\u1933' .. '\u1938' + | '\u1939' .. '\u193b' + | '\u1946' .. '\u194f' + | '\u1950' .. '\u196d' + | '\u1970' .. '\u1974' + | '\u1980' .. '\u19ab' + | '\u19b0' .. '\u19c0' + | '\u19c1' .. '\u19c7' + | '\u19c8' .. '\u19c9' + | '\u19d0' .. '\u19d9' | '\u19da' - | '\u1a00' to '\u1a16' - | '\u1a17' to '\u1a18' - | '\u1a19' to '\u1a1b' - | '\u1a20' to '\u1a54' + | '\u1a00' .. '\u1a16' + | '\u1a17' .. '\u1a18' + | '\u1a19' .. '\u1a1b' + | '\u1a20' .. '\u1a54' | '\u1a55' | '\u1a56' | '\u1a57' - | '\u1a58' to '\u1a5e' + | '\u1a58' .. '\u1a5e' | '\u1a60' | '\u1a61' | '\u1a62' - | '\u1a63' to '\u1a64' - | '\u1a65' to '\u1a6c' - | '\u1a6d' to '\u1a72' - | '\u1a73' to '\u1a7c' + | '\u1a63' .. '\u1a64' + | '\u1a65' .. '\u1a6c' + | '\u1a6d' .. '\u1a72' + | '\u1a73' .. '\u1a7c' | '\u1a7f' - | '\u1a80' to '\u1a89' - | '\u1a90' to '\u1a99' + | '\u1a80' .. '\u1a89' + | '\u1a90' .. '\u1a99' | '\u1aa7' - | '\u1b00' to '\u1b03' + | '\u1b00' .. '\u1b03' | '\u1b04' - | '\u1b05' to '\u1b33' + | '\u1b05' .. '\u1b33' | '\u1b34' | '\u1b35' - | '\u1b36' to '\u1b3a' + | '\u1b36' .. '\u1b3a' | '\u1b3b' | '\u1b3c' - | '\u1b3d' to '\u1b41' + | '\u1b3d' .. '\u1b41' | '\u1b42' - | '\u1b43' to '\u1b44' - | '\u1b45' to '\u1b4b' - | '\u1b50' to '\u1b59' - | '\u1b6b' to '\u1b73' - | '\u1b80' to '\u1b81' + | '\u1b43' .. '\u1b44' + | '\u1b45' .. '\u1b4b' + | '\u1b50' .. '\u1b59' + | '\u1b6b' .. '\u1b73' + | '\u1b80' .. '\u1b81' | '\u1b82' - | '\u1b83' to '\u1ba0' + | '\u1b83' .. '\u1ba0' | '\u1ba1' - | '\u1ba2' to '\u1ba5' - | '\u1ba6' to '\u1ba7' - | '\u1ba8' to '\u1ba9' + | '\u1ba2' .. '\u1ba5' + | '\u1ba6' .. '\u1ba7' + | '\u1ba8' .. '\u1ba9' | '\u1baa' - | '\u1bae' to '\u1baf' - | '\u1bb0' to '\u1bb9' - | '\u1bc0' to '\u1be5' + | '\u1bae' .. '\u1baf' + | '\u1bb0' .. '\u1bb9' + | '\u1bc0' .. '\u1be5' | '\u1be6' | '\u1be7' - | '\u1be8' to '\u1be9' - | '\u1bea' to '\u1bec' + | '\u1be8' .. '\u1be9' + | '\u1bea' .. '\u1bec' | '\u1bed' | '\u1bee' - | '\u1bef' to '\u1bf1' - | '\u1bf2' to '\u1bf3' - | '\u1c00' to '\u1c23' - | '\u1c24' to '\u1c2b' - | '\u1c2c' to '\u1c33' - | '\u1c34' to '\u1c35' - | '\u1c36' to '\u1c37' - | '\u1c40' to '\u1c49' - | '\u1c4d' to '\u1c4f' - | '\u1c50' to '\u1c59' - | '\u1c5a' to '\u1c77' - | '\u1c78' to '\u1c7d' - | '\u1cd0' to '\u1cd2' - | '\u1cd4' to '\u1ce0' + | '\u1bef' .. '\u1bf1' + | '\u1bf2' .. '\u1bf3' + | '\u1c00' .. '\u1c23' + | '\u1c24' .. '\u1c2b' + | '\u1c2c' .. '\u1c33' + | '\u1c34' .. '\u1c35' + | '\u1c36' .. '\u1c37' + | '\u1c40' .. '\u1c49' + | '\u1c4d' .. '\u1c4f' + | '\u1c50' .. '\u1c59' + | '\u1c5a' .. '\u1c77' + | '\u1c78' .. '\u1c7d' + | '\u1cd0' .. '\u1cd2' + | '\u1cd4' .. '\u1ce0' | '\u1ce1' - | '\u1ce2' to '\u1ce8' - | '\u1ce9' to '\u1cec' + | '\u1ce2' .. '\u1ce8' + | '\u1ce9' .. '\u1cec' | '\u1ced' - | '\u1cee' to '\u1cf1' + | '\u1cee' .. '\u1cf1' | '\u1cf2' - | '\u1d00' to '\u1d2b' - | '\u1d2c' to '\u1d61' - | '\u1d62' to '\u1d77' + | '\u1d00' .. '\u1d2b' + | '\u1d2c' .. '\u1d61' + | '\u1d62' .. '\u1d77' | '\u1d78' - | '\u1d79' to '\u1d9a' - | '\u1d9b' to '\u1dbf' - | '\u1dc0' to '\u1de6' - | '\u1dfc' to '\u1dff' - | '\u1e00' to '\u1f15' - | '\u1f18' to '\u1f1d' - | '\u1f20' to '\u1f45' - | '\u1f48' to '\u1f4d' - | '\u1f50' to '\u1f57' + | '\u1d79' .. '\u1d9a' + | '\u1d9b' .. '\u1dbf' + | '\u1dc0' .. '\u1de6' + | '\u1dfc' .. '\u1dff' + | '\u1e00' .. '\u1f15' + | '\u1f18' .. '\u1f1d' + | '\u1f20' .. '\u1f45' + | '\u1f48' .. '\u1f4d' + | '\u1f50' .. '\u1f57' | '\u1f59' | '\u1f5b' | '\u1f5d' - | '\u1f5f' to '\u1f7d' - | '\u1f80' to '\u1fb4' - | '\u1fb6' to '\u1fbc' + | '\u1f5f' .. '\u1f7d' + | '\u1f80' .. '\u1fb4' + | '\u1fb6' .. '\u1fbc' | '\u1fbe' - | '\u1fc2' to '\u1fc4' - | '\u1fc6' to '\u1fcc' - | '\u1fd0' to '\u1fd3' - | '\u1fd6' to '\u1fdb' - | '\u1fe0' to '\u1fec' - | '\u1ff2' to '\u1ff4' - | '\u1ff6' to '\u1ffc' - | '\u203f' to '\u2040' + | '\u1fc2' .. '\u1fc4' + | '\u1fc6' .. '\u1fcc' + | '\u1fd0' .. '\u1fd3' + | '\u1fd6' .. '\u1fdb' + | '\u1fe0' .. '\u1fec' + | '\u1ff2' .. '\u1ff4' + | '\u1ff6' .. '\u1ffc' + | '\u203f' .. '\u2040' | '\u2054' | '\u2071' | '\u207f' - | '\u2090' to '\u209c' - | '\u20d0' to '\u20dc' + | '\u2090' .. '\u209c' + | '\u20d0' .. '\u20dc' | '\u20e1' - | '\u20e5' to '\u20f0' + | '\u20e5' .. '\u20f0' | '\u2102' | '\u2107' - | '\u210a' to '\u2113' + | '\u210a' .. '\u2113' | '\u2115' | '\u2118' - | '\u2119' to '\u211d' + | '\u2119' .. '\u211d' | '\u2124' | '\u2126' | '\u2128' - | '\u212a' to '\u212d' + | '\u212a' .. '\u212d' | '\u212e' - | '\u212f' to '\u2134' - | '\u2135' to '\u2138' + | '\u212f' .. '\u2134' + | '\u2135' .. '\u2138' | '\u2139' - | '\u213c' to '\u213f' - | '\u2145' to '\u2149' + | '\u213c' .. '\u213f' + | '\u2145' .. '\u2149' | '\u214e' - | '\u2160' to '\u2182' - | '\u2183' to '\u2184' - | '\u2185' to '\u2188' - | '\u2c00' to '\u2c2e' - | '\u2c30' to '\u2c5e' - | '\u2c60' to '\u2c7c' + | '\u2160' .. '\u2182' + | '\u2183' .. '\u2184' + | '\u2185' .. '\u2188' + | '\u2c00' .. '\u2c2e' + | '\u2c30' .. '\u2c5e' + | '\u2c60' .. '\u2c7c' | '\u2c7d' - | '\u2c7e' to '\u2ce4' - | '\u2ceb' to '\u2cee' - | '\u2cef' to '\u2cf1' - | '\u2d00' to '\u2d25' - | '\u2d30' to '\u2d65' + | '\u2c7e' .. '\u2ce4' + | '\u2ceb' .. '\u2cee' + | '\u2cef' .. '\u2cf1' + | '\u2d00' .. '\u2d25' + | '\u2d30' .. '\u2d65' | '\u2d6f' | '\u2d7f' - | '\u2d80' to '\u2d96' - | '\u2da0' to '\u2da6' - | '\u2da8' to '\u2dae' - | '\u2db0' to '\u2db6' - | '\u2db8' to '\u2dbe' - | '\u2dc0' to '\u2dc6' - | '\u2dc8' to '\u2dce' - | '\u2dd0' to '\u2dd6' - | '\u2dd8' to '\u2dde' - | '\u2de0' to '\u2dff' + | '\u2d80' .. '\u2d96' + | '\u2da0' .. '\u2da6' + | '\u2da8' .. '\u2dae' + | '\u2db0' .. '\u2db6' + | '\u2db8' .. '\u2dbe' + | '\u2dc0' .. '\u2dc6' + | '\u2dc8' .. '\u2dce' + | '\u2dd0' .. '\u2dd6' + | '\u2dd8' .. '\u2dde' + | '\u2de0' .. '\u2dff' | '\u3005' | '\u3006' | '\u3007' - | '\u3021' to '\u3029' - | '\u302a' to '\u302f' - | '\u3031' to '\u3035' - | '\u3038' to '\u303a' + | '\u3021' .. '\u3029' + | '\u302a' .. '\u302f' + | '\u3031' .. '\u3035' + | '\u3038' .. '\u303a' | '\u303b' | '\u303c' - | '\u3041' to '\u3096' - | '\u3099' to '\u309a' - | '\u309d' to '\u309e' + | '\u3041' .. '\u3096' + | '\u3099' .. '\u309a' + | '\u309d' .. '\u309e' | '\u309f' - | '\u30a1' to '\u30fa' - | '\u30fc' to '\u30fe' + | '\u30a1' .. '\u30fa' + | '\u30fc' .. '\u30fe' | '\u30ff' - | '\u3105' to '\u312d' - | '\u3131' to '\u318e' - | '\u31a0' to '\u31ba' - | '\u31f0' to '\u31ff' - | '\u3400' to '\u4db5' - | '\u4e00' to '\u9fcb' - | '\ua000' to '\ua014' + | '\u3105' .. '\u312d' + | '\u3131' .. '\u318e' + | '\u31a0' .. '\u31ba' + | '\u31f0' .. '\u31ff' + | '\u3400' .. '\u4db5' + | '\u4e00' .. '\u9fcb' + | '\ua000' .. '\ua014' | '\ua015' - | '\ua016' to '\ua48c' - | '\ua4d0' to '\ua4f7' - | '\ua4f8' to '\ua4fd' - | '\ua500' to '\ua60b' + | '\ua016' .. '\ua48c' + | '\ua4d0' .. '\ua4f7' + | '\ua4f8' .. '\ua4fd' + | '\ua500' .. '\ua60b' | '\ua60c' - | '\ua610' to '\ua61f' - | '\ua620' to '\ua629' - | '\ua62a' to '\ua62b' - | '\ua640' to '\ua66d' + | '\ua610' .. '\ua61f' + | '\ua620' .. '\ua629' + | '\ua62a' .. '\ua62b' + | '\ua640' .. '\ua66d' | '\ua66e' | '\ua66f' - | '\ua67c' to '\ua67d' + | '\ua67c' .. '\ua67d' | '\ua67f' - | '\ua680' to '\ua697' - | '\ua6a0' to '\ua6e5' - | '\ua6e6' to '\ua6ef' - | '\ua6f0' to '\ua6f1' - | '\ua717' to '\ua71f' - | '\ua722' to '\ua76f' + | '\ua680' .. '\ua697' + | '\ua6a0' .. '\ua6e5' + | '\ua6e6' .. '\ua6ef' + | '\ua6f0' .. '\ua6f1' + | '\ua717' .. '\ua71f' + | '\ua722' .. '\ua76f' | '\ua770' - | '\ua771' to '\ua787' + | '\ua771' .. '\ua787' | '\ua788' - | '\ua78b' to '\ua78e' - | '\ua790' to '\ua791' - | '\ua7a0' to '\ua7a9' + | '\ua78b' .. '\ua78e' + | '\ua790' .. '\ua791' + | '\ua7a0' .. '\ua7a9' | '\ua7fa' - | '\ua7fb' to '\ua801' + | '\ua7fb' .. '\ua801' | '\ua802' - | '\ua803' to '\ua805' + | '\ua803' .. '\ua805' | '\ua806' - | '\ua807' to '\ua80a' + | '\ua807' .. '\ua80a' | '\ua80b' - | '\ua80c' to '\ua822' - | '\ua823' to '\ua824' - | '\ua825' to '\ua826' + | '\ua80c' .. '\ua822' + | '\ua823' .. '\ua824' + | '\ua825' .. '\ua826' | '\ua827' - | '\ua840' to '\ua873' - | '\ua880' to '\ua881' - | '\ua882' to '\ua8b3' - | '\ua8b4' to '\ua8c3' + | '\ua840' .. '\ua873' + | '\ua880' .. '\ua881' + | '\ua882' .. '\ua8b3' + | '\ua8b4' .. '\ua8c3' | '\ua8c4' - | '\ua8d0' to '\ua8d9' - | '\ua8e0' to '\ua8f1' - | '\ua8f2' to '\ua8f7' + | '\ua8d0' .. '\ua8d9' + | '\ua8e0' .. '\ua8f1' + | '\ua8f2' .. '\ua8f7' | '\ua8fb' - | '\ua900' to '\ua909' - | '\ua90a' to '\ua925' - | '\ua926' to '\ua92d' - | '\ua930' to '\ua946' - | '\ua947' to '\ua951' - | '\ua952' to '\ua953' - | '\ua960' to '\ua97c' - | '\ua980' to '\ua982' + | '\ua900' .. '\ua909' + | '\ua90a' .. '\ua925' + | '\ua926' .. '\ua92d' + | '\ua930' .. '\ua946' + | '\ua947' .. '\ua951' + | '\ua952' .. '\ua953' + | '\ua960' .. '\ua97c' + | '\ua980' .. '\ua982' | '\ua983' - | '\ua984' to '\ua9b2' + | '\ua984' .. '\ua9b2' | '\ua9b3' - | '\ua9b4' to '\ua9b5' - | '\ua9b6' to '\ua9b9' - | '\ua9ba' to '\ua9bb' + | '\ua9b4' .. '\ua9b5' + | '\ua9b6' .. '\ua9b9' + | '\ua9ba' .. '\ua9bb' | '\ua9bc' - | '\ua9bd' to '\ua9c0' + | '\ua9bd' .. '\ua9c0' | '\ua9cf' - | '\ua9d0' to '\ua9d9' - | '\uaa00' to '\uaa28' - | '\uaa29' to '\uaa2e' - | '\uaa2f' to '\uaa30' - | '\uaa31' to '\uaa32' - | '\uaa33' to '\uaa34' - | '\uaa35' to '\uaa36' - | '\uaa40' to '\uaa42' + | '\ua9d0' .. '\ua9d9' + | '\uaa00' .. '\uaa28' + | '\uaa29' .. '\uaa2e' + | '\uaa2f' .. '\uaa30' + | '\uaa31' .. '\uaa32' + | '\uaa33' .. '\uaa34' + | '\uaa35' .. '\uaa36' + | '\uaa40' .. '\uaa42' | '\uaa43' - | '\uaa44' to '\uaa4b' + | '\uaa44' .. '\uaa4b' | '\uaa4c' | '\uaa4d' - | '\uaa50' to '\uaa59' - | '\uaa60' to '\uaa6f' + | '\uaa50' .. '\uaa59' + | '\uaa60' .. '\uaa6f' | '\uaa70' - | '\uaa71' to '\uaa76' + | '\uaa71' .. '\uaa76' | '\uaa7a' | '\uaa7b' - | '\uaa80' to '\uaaaf' + | '\uaa80' .. '\uaaaf' | '\uaab0' | '\uaab1' - | '\uaab2' to '\uaab4' - | '\uaab5' to '\uaab6' - | '\uaab7' to '\uaab8' - | '\uaab9' to '\uaabd' - | '\uaabe' to '\uaabf' + | '\uaab2' .. '\uaab4' + | '\uaab5' .. '\uaab6' + | '\uaab7' .. '\uaab8' + | '\uaab9' .. '\uaabd' + | '\uaabe' .. '\uaabf' | '\uaac0' | '\uaac1' | '\uaac2' - | '\uaadb' to '\uaadc' + | '\uaadb' .. '\uaadc' | '\uaadd' - | '\uab01' to '\uab06' - | '\uab09' to '\uab0e' - | '\uab11' to '\uab16' - | '\uab20' to '\uab26' - | '\uab28' to '\uab2e' - | '\uabc0' to '\uabe2' - | '\uabe3' to '\uabe4' + | '\uab01' .. '\uab06' + | '\uab09' .. '\uab0e' + | '\uab11' .. '\uab16' + | '\uab20' .. '\uab26' + | '\uab28' .. '\uab2e' + | '\uabc0' .. '\uabe2' + | '\uabe3' .. '\uabe4' | '\uabe5' - | '\uabe6' to '\uabe7' + | '\uabe6' .. '\uabe7' | '\uabe8' - | '\uabe9' to '\uabea' + | '\uabe9' .. '\uabea' | '\uabec' | '\uabed' - | '\uabf0' to '\uabf9' - | '\uac00' to '\ud7a3' - | '\ud7b0' to '\ud7c6' - | '\ud7cb' to '\ud7fb' - | '\uf900' to '\ufa2d' - | '\ufa30' to '\ufa6d' - | '\ufa70' to '\ufad9' - | '\ufb00' to '\ufb06' - | '\ufb13' to '\ufb17' + | '\uabf0' .. '\uabf9' + | '\uac00' .. '\ud7a3' + | '\ud7b0' .. '\ud7c6' + | '\ud7cb' .. '\ud7fb' + | '\uf900' .. '\ufa2d' + | '\ufa30' .. '\ufa6d' + | '\ufa70' .. '\ufad9' + | '\ufb00' .. '\ufb06' + | '\ufb13' .. '\ufb17' | '\ufb1d' | '\ufb1e' - | '\ufb1f' to '\ufb28' - | '\ufb2a' to '\ufb36' - | '\ufb38' to '\ufb3c' + | '\ufb1f' .. '\ufb28' + | '\ufb2a' .. '\ufb36' + | '\ufb38' .. '\ufb3c' | '\ufb3e' - | '\ufb40' to '\ufb41' - | '\ufb43' to '\ufb44' - | '\ufb46' to '\ufbb1' - | '\ufbd3' to '\ufc5d' - | '\ufc64' to '\ufd3d' - | '\ufd50' to '\ufd8f' - | '\ufd92' to '\ufdc7' - | '\ufdf0' to '\ufdf9' - | '\ufe00' to '\ufe0f' - | '\ufe20' to '\ufe26' - | '\ufe33' to '\ufe34' - | '\ufe4d' to '\ufe4f' + | '\ufb40' .. '\ufb41' + | '\ufb43' .. '\ufb44' + | '\ufb46' .. '\ufbb1' + | '\ufbd3' .. '\ufc5d' + | '\ufc64' .. '\ufd3d' + | '\ufd50' .. '\ufd8f' + | '\ufd92' .. '\ufdc7' + | '\ufdf0' .. '\ufdf9' + | '\ufe00' .. '\ufe0f' + | '\ufe20' .. '\ufe26' + | '\ufe33' .. '\ufe34' + | '\ufe4d' .. '\ufe4f' | '\ufe71' | '\ufe73' | '\ufe77' | '\ufe79' | '\ufe7b' | '\ufe7d' - | '\ufe7f' to '\ufefc' - | '\uff10' to '\uff19' - | '\uff21' to '\uff3a' + | '\ufe7f' .. '\ufefc' + | '\uff10' .. '\uff19' + | '\uff21' .. '\uff3a' | '\uff3f' - | '\uff41' to '\uff5a' - | '\uff66' to '\uff6f' + | '\uff41' .. '\uff5a' + | '\uff66' .. '\uff6f' | '\uff70' - | '\uff71' to '\uff9d' - | '\uff9e' to '\uff9f' - | '\uffa0' to '\uffbe' - | '\uffc2' to '\uffc7' - | '\uffca' to '\uffcf' - | '\uffd2' to '\uffd7' - | '\uffda' to '\uffdc' - | '\U00010000' to '\U0001000b' - | '\U0001000d' to '\U00010026' - | '\U00010028' to '\U0001003a' - | '\U0001003c' to '\U0001003d' - | '\U0001003f' to '\U0001004d' - | '\U00010050' to '\U0001005d' - | '\U00010080' to '\U000100fa' - | '\U00010140' to '\U00010174' + | '\uff71' .. '\uff9d' + | '\uff9e' .. '\uff9f' + | '\uffa0' .. '\uffbe' + | '\uffc2' .. '\uffc7' + | '\uffca' .. '\uffcf' + | '\uffd2' .. '\uffd7' + | '\uffda' .. '\uffdc' + | '\U00010000' .. '\U0001000b' + | '\U0001000d' .. '\U00010026' + | '\U00010028' .. '\U0001003a' + | '\U0001003c' .. '\U0001003d' + | '\U0001003f' .. '\U0001004d' + | '\U00010050' .. '\U0001005d' + | '\U00010080' .. '\U000100fa' + | '\U00010140' .. '\U00010174' | '\U000101fd' - | '\U00010280' to '\U0001029c' - | '\U000102a0' to '\U000102d0' - | '\U00010300' to '\U0001031e' - | '\U00010330' to '\U00010340' + | '\U00010280' .. '\U0001029c' + | '\U000102a0' .. '\U000102d0' + | '\U00010300' .. '\U0001031e' + | '\U00010330' .. '\U00010340' | '\U00010341' - | '\U00010342' to '\U00010349' + | '\U00010342' .. '\U00010349' | '\U0001034a' - | '\U00010380' to '\U0001039d' - | '\U000103a0' to '\U000103c3' - | '\U000103c8' to '\U000103cf' - | '\U000103d1' to '\U000103d5' - | '\U00010400' to '\U0001044f' - | '\U00010450' to '\U0001049d' - | '\U000104a0' to '\U000104a9' - | '\U00010800' to '\U00010805' + | '\U00010380' .. '\U0001039d' + | '\U000103a0' .. '\U000103c3' + | '\U000103c8' .. '\U000103cf' + | '\U000103d1' .. '\U000103d5' + | '\U00010400' .. '\U0001044f' + | '\U00010450' .. '\U0001049d' + | '\U000104a0' .. '\U000104a9' + | '\U00010800' .. '\U00010805' | '\U00010808' - | '\U0001080a' to '\U00010835' - | '\U00010837' to '\U00010838' + | '\U0001080a' .. '\U00010835' + | '\U00010837' .. '\U00010838' | '\U0001083c' - | '\U0001083f' to '\U00010855' - | '\U00010900' to '\U00010915' - | '\U00010920' to '\U00010939' + | '\U0001083f' .. '\U00010855' + | '\U00010900' .. '\U00010915' + | '\U00010920' .. '\U00010939' | '\U00010a00' - | '\U00010a01' to '\U00010a03' - | '\U00010a05' to '\U00010a06' - | '\U00010a0c' to '\U00010a0f' - | '\U00010a10' to '\U00010a13' - | '\U00010a15' to '\U00010a17' - | '\U00010a19' to '\U00010a33' - | '\U00010a38' to '\U00010a3a' + | '\U00010a01' .. '\U00010a03' + | '\U00010a05' .. '\U00010a06' + | '\U00010a0c' .. '\U00010a0f' + | '\U00010a10' .. '\U00010a13' + | '\U00010a15' .. '\U00010a17' + | '\U00010a19' .. '\U00010a33' + | '\U00010a38' .. '\U00010a3a' | '\U00010a3f' - | '\U00010a60' to '\U00010a7c' - | '\U00010b00' to '\U00010b35' - | '\U00010b40' to '\U00010b55' - | '\U00010b60' to '\U00010b72' - | '\U00010c00' to '\U00010c48' + | '\U00010a60' .. '\U00010a7c' + | '\U00010b00' .. '\U00010b35' + | '\U00010b40' .. '\U00010b55' + | '\U00010b60' .. '\U00010b72' + | '\U00010c00' .. '\U00010c48' | '\U00011000' | '\U00011001' | '\U00011002' - | '\U00011003' to '\U00011037' - | '\U00011038' to '\U00011046' - | '\U00011066' to '\U0001106f' - | '\U00011080' to '\U00011081' + | '\U00011003' .. '\U00011037' + | '\U00011038' .. '\U00011046' + | '\U00011066' .. '\U0001106f' + | '\U00011080' .. '\U00011081' | '\U00011082' - | '\U00011083' to '\U000110af' - | '\U000110b0' to '\U000110b2' - | '\U000110b3' to '\U000110b6' - | '\U000110b7' to '\U000110b8' - | '\U000110b9' to '\U000110ba' - | '\U00012000' to '\U0001236e' - | '\U00012400' to '\U00012462' - | '\U00013000' to '\U0001342e' - | '\U00016800' to '\U00016a38' - | '\U0001b000' to '\U0001b001' - | '\U0001d165' to '\U0001d166' - | '\U0001d167' to '\U0001d169' - | '\U0001d16d' to '\U0001d172' - | '\U0001d17b' to '\U0001d182' - | '\U0001d185' to '\U0001d18b' - | '\U0001d1aa' to '\U0001d1ad' - | '\U0001d242' to '\U0001d244' - | '\U0001d400' to '\U0001d454' - | '\U0001d456' to '\U0001d49c' - | '\U0001d49e' to '\U0001d49f' + | '\U00011083' .. '\U000110af' + | '\U000110b0' .. '\U000110b2' + | '\U000110b3' .. '\U000110b6' + | '\U000110b7' .. '\U000110b8' + | '\U000110b9' .. '\U000110ba' + | '\U00012000' .. '\U0001236e' + | '\U00012400' .. '\U00012462' + | '\U00013000' .. '\U0001342e' + | '\U00016800' .. '\U00016a38' + | '\U0001b000' .. '\U0001b001' + | '\U0001d165' .. '\U0001d166' + | '\U0001d167' .. '\U0001d169' + | '\U0001d16d' .. '\U0001d172' + | '\U0001d17b' .. '\U0001d182' + | '\U0001d185' .. '\U0001d18b' + | '\U0001d1aa' .. '\U0001d1ad' + | '\U0001d242' .. '\U0001d244' + | '\U0001d400' .. '\U0001d454' + | '\U0001d456' .. '\U0001d49c' + | '\U0001d49e' .. '\U0001d49f' | '\U0001d4a2' - | '\U0001d4a5' to '\U0001d4a6' - | '\U0001d4a9' to '\U0001d4ac' - | '\U0001d4ae' to '\U0001d4b9' + | '\U0001d4a5' .. '\U0001d4a6' + | '\U0001d4a9' .. '\U0001d4ac' + | '\U0001d4ae' .. '\U0001d4b9' | '\U0001d4bb' - | '\U0001d4bd' to '\U0001d4c3' - | '\U0001d4c5' to '\U0001d505' - | '\U0001d507' to '\U0001d50a' - | '\U0001d50d' to '\U0001d514' - | '\U0001d516' to '\U0001d51c' - | '\U0001d51e' to '\U0001d539' - | '\U0001d53b' to '\U0001d53e' - | '\U0001d540' to '\U0001d544' + | '\U0001d4bd' .. '\U0001d4c3' + | '\U0001d4c5' .. '\U0001d505' + | '\U0001d507' .. '\U0001d50a' + | '\U0001d50d' .. '\U0001d514' + | '\U0001d516' .. '\U0001d51c' + | '\U0001d51e' .. '\U0001d539' + | '\U0001d53b' .. '\U0001d53e' + | '\U0001d540' .. '\U0001d544' | '\U0001d546' - | '\U0001d54a' to '\U0001d550' - | '\U0001d552' to '\U0001d6a5' - | '\U0001d6a8' to '\U0001d6c0' - | '\U0001d6c2' to '\U0001d6da' - | '\U0001d6dc' to '\U0001d6fa' - | '\U0001d6fc' to '\U0001d714' - | '\U0001d716' to '\U0001d734' - | '\U0001d736' to '\U0001d74e' - | '\U0001d750' to '\U0001d76e' - | '\U0001d770' to '\U0001d788' - | '\U0001d78a' to '\U0001d7a8' - | '\U0001d7aa' to '\U0001d7c2' - | '\U0001d7c4' to '\U0001d7cb' - | '\U0001d7ce' to '\U0001d7ff' - | '\U00020000' to '\U0002a6d6' - | '\U0002a700' to '\U0002b734' - | '\U0002b740' to '\U0002b81d' - | '\U0002f800' to '\U0002fa1d' - | '\U000e0100' to '\U000e01ef' + | '\U0001d54a' .. '\U0001d550' + | '\U0001d552' .. '\U0001d6a5' + | '\U0001d6a8' .. '\U0001d6c0' + | '\U0001d6c2' .. '\U0001d6da' + | '\U0001d6dc' .. '\U0001d6fa' + | '\U0001d6fc' .. '\U0001d714' + | '\U0001d716' .. '\U0001d734' + | '\U0001d736' .. '\U0001d74e' + | '\U0001d750' .. '\U0001d76e' + | '\U0001d770' .. '\U0001d788' + | '\U0001d78a' .. '\U0001d7a8' + | '\U0001d7aa' .. '\U0001d7c2' + | '\U0001d7c4' .. '\U0001d7cb' + | '\U0001d7ce' .. '\U0001d7ff' + | '\U00020000' .. '\U0002a6d6' + | '\U0002a700' .. '\U0002b734' + | '\U0002b740' .. '\U0002b81d' + | '\U0002f800' .. '\U0002fa1d' + | '\U000e0100' .. '\U000e01ef' => true, _ => false }; @@ -4175,505 +4175,505 @@ mod derived_property { pure fn XID_Start(c: char) -> bool { return match c { - '\x41' to '\x5a' - | '\x61' to '\x7a' + '\x41' .. '\x5a' + | '\x61' .. '\x7a' | '\xaa' | '\xb5' | '\xba' - | '\xc0' to '\xd6' - | '\xd8' to '\xf6' - | '\xf8' to '\u01ba' + | '\xc0' .. '\xd6' + | '\xd8' .. '\xf6' + | '\xf8' .. '\u01ba' | '\u01bb' - | '\u01bc' to '\u01bf' - | '\u01c0' to '\u01c3' - | '\u01c4' to '\u0293' + | '\u01bc' .. '\u01bf' + | '\u01c0' .. '\u01c3' + | '\u01c4' .. '\u0293' | '\u0294' - | '\u0295' to '\u02af' - | '\u02b0' to '\u02c1' - | '\u02c6' to '\u02d1' - | '\u02e0' to '\u02e4' + | '\u0295' .. '\u02af' + | '\u02b0' .. '\u02c1' + | '\u02c6' .. '\u02d1' + | '\u02e0' .. '\u02e4' | '\u02ec' | '\u02ee' - | '\u0370' to '\u0373' + | '\u0370' .. '\u0373' | '\u0374' - | '\u0376' to '\u0377' - | '\u037b' to '\u037d' + | '\u0376' .. '\u0377' + | '\u037b' .. '\u037d' | '\u0386' - | '\u0388' to '\u038a' + | '\u0388' .. '\u038a' | '\u038c' - | '\u038e' to '\u03a1' - | '\u03a3' to '\u03f5' - | '\u03f7' to '\u0481' - | '\u048a' to '\u0527' - | '\u0531' to '\u0556' + | '\u038e' .. '\u03a1' + | '\u03a3' .. '\u03f5' + | '\u03f7' .. '\u0481' + | '\u048a' .. '\u0527' + | '\u0531' .. '\u0556' | '\u0559' - | '\u0561' to '\u0587' - | '\u05d0' to '\u05ea' - | '\u05f0' to '\u05f2' - | '\u0620' to '\u063f' + | '\u0561' .. '\u0587' + | '\u05d0' .. '\u05ea' + | '\u05f0' .. '\u05f2' + | '\u0620' .. '\u063f' | '\u0640' - | '\u0641' to '\u064a' - | '\u066e' to '\u066f' - | '\u0671' to '\u06d3' + | '\u0641' .. '\u064a' + | '\u066e' .. '\u066f' + | '\u0671' .. '\u06d3' | '\u06d5' - | '\u06e5' to '\u06e6' - | '\u06ee' to '\u06ef' - | '\u06fa' to '\u06fc' + | '\u06e5' .. '\u06e6' + | '\u06ee' .. '\u06ef' + | '\u06fa' .. '\u06fc' | '\u06ff' | '\u0710' - | '\u0712' to '\u072f' - | '\u074d' to '\u07a5' + | '\u0712' .. '\u072f' + | '\u074d' .. '\u07a5' | '\u07b1' - | '\u07ca' to '\u07ea' - | '\u07f4' to '\u07f5' + | '\u07ca' .. '\u07ea' + | '\u07f4' .. '\u07f5' | '\u07fa' - | '\u0800' to '\u0815' + | '\u0800' .. '\u0815' | '\u081a' | '\u0824' | '\u0828' - | '\u0840' to '\u0858' - | '\u0904' to '\u0939' + | '\u0840' .. '\u0858' + | '\u0904' .. '\u0939' | '\u093d' | '\u0950' - | '\u0958' to '\u0961' + | '\u0958' .. '\u0961' | '\u0971' - | '\u0972' to '\u0977' - | '\u0979' to '\u097f' - | '\u0985' to '\u098c' - | '\u098f' to '\u0990' - | '\u0993' to '\u09a8' - | '\u09aa' to '\u09b0' + | '\u0972' .. '\u0977' + | '\u0979' .. '\u097f' + | '\u0985' .. '\u098c' + | '\u098f' .. '\u0990' + | '\u0993' .. '\u09a8' + | '\u09aa' .. '\u09b0' | '\u09b2' - | '\u09b6' to '\u09b9' + | '\u09b6' .. '\u09b9' | '\u09bd' | '\u09ce' - | '\u09dc' to '\u09dd' - | '\u09df' to '\u09e1' - | '\u09f0' to '\u09f1' - | '\u0a05' to '\u0a0a' - | '\u0a0f' to '\u0a10' - | '\u0a13' to '\u0a28' - | '\u0a2a' to '\u0a30' - | '\u0a32' to '\u0a33' - | '\u0a35' to '\u0a36' - | '\u0a38' to '\u0a39' - | '\u0a59' to '\u0a5c' + | '\u09dc' .. '\u09dd' + | '\u09df' .. '\u09e1' + | '\u09f0' .. '\u09f1' + | '\u0a05' .. '\u0a0a' + | '\u0a0f' .. '\u0a10' + | '\u0a13' .. '\u0a28' + | '\u0a2a' .. '\u0a30' + | '\u0a32' .. '\u0a33' + | '\u0a35' .. '\u0a36' + | '\u0a38' .. '\u0a39' + | '\u0a59' .. '\u0a5c' | '\u0a5e' - | '\u0a72' to '\u0a74' - | '\u0a85' to '\u0a8d' - | '\u0a8f' to '\u0a91' - | '\u0a93' to '\u0aa8' - | '\u0aaa' to '\u0ab0' - | '\u0ab2' to '\u0ab3' - | '\u0ab5' to '\u0ab9' + | '\u0a72' .. '\u0a74' + | '\u0a85' .. '\u0a8d' + | '\u0a8f' .. '\u0a91' + | '\u0a93' .. '\u0aa8' + | '\u0aaa' .. '\u0ab0' + | '\u0ab2' .. '\u0ab3' + | '\u0ab5' .. '\u0ab9' | '\u0abd' | '\u0ad0' - | '\u0ae0' to '\u0ae1' - | '\u0b05' to '\u0b0c' - | '\u0b0f' to '\u0b10' - | '\u0b13' to '\u0b28' - | '\u0b2a' to '\u0b30' - | '\u0b32' to '\u0b33' - | '\u0b35' to '\u0b39' + | '\u0ae0' .. '\u0ae1' + | '\u0b05' .. '\u0b0c' + | '\u0b0f' .. '\u0b10' + | '\u0b13' .. '\u0b28' + | '\u0b2a' .. '\u0b30' + | '\u0b32' .. '\u0b33' + | '\u0b35' .. '\u0b39' | '\u0b3d' - | '\u0b5c' to '\u0b5d' - | '\u0b5f' to '\u0b61' + | '\u0b5c' .. '\u0b5d' + | '\u0b5f' .. '\u0b61' | '\u0b71' | '\u0b83' - | '\u0b85' to '\u0b8a' - | '\u0b8e' to '\u0b90' - | '\u0b92' to '\u0b95' - | '\u0b99' to '\u0b9a' + | '\u0b85' .. '\u0b8a' + | '\u0b8e' .. '\u0b90' + | '\u0b92' .. '\u0b95' + | '\u0b99' .. '\u0b9a' | '\u0b9c' - | '\u0b9e' to '\u0b9f' - | '\u0ba3' to '\u0ba4' - | '\u0ba8' to '\u0baa' - | '\u0bae' to '\u0bb9' + | '\u0b9e' .. '\u0b9f' + | '\u0ba3' .. '\u0ba4' + | '\u0ba8' .. '\u0baa' + | '\u0bae' .. '\u0bb9' | '\u0bd0' - | '\u0c05' to '\u0c0c' - | '\u0c0e' to '\u0c10' - | '\u0c12' to '\u0c28' - | '\u0c2a' to '\u0c33' - | '\u0c35' to '\u0c39' + | '\u0c05' .. '\u0c0c' + | '\u0c0e' .. '\u0c10' + | '\u0c12' .. '\u0c28' + | '\u0c2a' .. '\u0c33' + | '\u0c35' .. '\u0c39' | '\u0c3d' - | '\u0c58' to '\u0c59' - | '\u0c60' to '\u0c61' - | '\u0c85' to '\u0c8c' - | '\u0c8e' to '\u0c90' - | '\u0c92' to '\u0ca8' - | '\u0caa' to '\u0cb3' - | '\u0cb5' to '\u0cb9' + | '\u0c58' .. '\u0c59' + | '\u0c60' .. '\u0c61' + | '\u0c85' .. '\u0c8c' + | '\u0c8e' .. '\u0c90' + | '\u0c92' .. '\u0ca8' + | '\u0caa' .. '\u0cb3' + | '\u0cb5' .. '\u0cb9' | '\u0cbd' | '\u0cde' - | '\u0ce0' to '\u0ce1' - | '\u0cf1' to '\u0cf2' - | '\u0d05' to '\u0d0c' - | '\u0d0e' to '\u0d10' - | '\u0d12' to '\u0d3a' + | '\u0ce0' .. '\u0ce1' + | '\u0cf1' .. '\u0cf2' + | '\u0d05' .. '\u0d0c' + | '\u0d0e' .. '\u0d10' + | '\u0d12' .. '\u0d3a' | '\u0d3d' | '\u0d4e' - | '\u0d60' to '\u0d61' - | '\u0d7a' to '\u0d7f' - | '\u0d85' to '\u0d96' - | '\u0d9a' to '\u0db1' - | '\u0db3' to '\u0dbb' + | '\u0d60' .. '\u0d61' + | '\u0d7a' .. '\u0d7f' + | '\u0d85' .. '\u0d96' + | '\u0d9a' .. '\u0db1' + | '\u0db3' .. '\u0dbb' | '\u0dbd' - | '\u0dc0' to '\u0dc6' - | '\u0e01' to '\u0e30' + | '\u0dc0' .. '\u0dc6' + | '\u0e01' .. '\u0e30' | '\u0e32' - | '\u0e40' to '\u0e45' + | '\u0e40' .. '\u0e45' | '\u0e46' - | '\u0e81' to '\u0e82' + | '\u0e81' .. '\u0e82' | '\u0e84' - | '\u0e87' to '\u0e88' + | '\u0e87' .. '\u0e88' | '\u0e8a' | '\u0e8d' - | '\u0e94' to '\u0e97' - | '\u0e99' to '\u0e9f' - | '\u0ea1' to '\u0ea3' + | '\u0e94' .. '\u0e97' + | '\u0e99' .. '\u0e9f' + | '\u0ea1' .. '\u0ea3' | '\u0ea5' | '\u0ea7' - | '\u0eaa' to '\u0eab' - | '\u0ead' to '\u0eb0' + | '\u0eaa' .. '\u0eab' + | '\u0ead' .. '\u0eb0' | '\u0eb2' | '\u0ebd' - | '\u0ec0' to '\u0ec4' + | '\u0ec0' .. '\u0ec4' | '\u0ec6' - | '\u0edc' to '\u0edd' + | '\u0edc' .. '\u0edd' | '\u0f00' - | '\u0f40' to '\u0f47' - | '\u0f49' to '\u0f6c' - | '\u0f88' to '\u0f8c' - | '\u1000' to '\u102a' + | '\u0f40' .. '\u0f47' + | '\u0f49' .. '\u0f6c' + | '\u0f88' .. '\u0f8c' + | '\u1000' .. '\u102a' | '\u103f' - | '\u1050' to '\u1055' - | '\u105a' to '\u105d' + | '\u1050' .. '\u1055' + | '\u105a' .. '\u105d' | '\u1061' - | '\u1065' to '\u1066' - | '\u106e' to '\u1070' - | '\u1075' to '\u1081' + | '\u1065' .. '\u1066' + | '\u106e' .. '\u1070' + | '\u1075' .. '\u1081' | '\u108e' - | '\u10a0' to '\u10c5' - | '\u10d0' to '\u10fa' + | '\u10a0' .. '\u10c5' + | '\u10d0' .. '\u10fa' | '\u10fc' - | '\u1100' to '\u1248' - | '\u124a' to '\u124d' - | '\u1250' to '\u1256' + | '\u1100' .. '\u1248' + | '\u124a' .. '\u124d' + | '\u1250' .. '\u1256' | '\u1258' - | '\u125a' to '\u125d' - | '\u1260' to '\u1288' - | '\u128a' to '\u128d' - | '\u1290' to '\u12b0' - | '\u12b2' to '\u12b5' - | '\u12b8' to '\u12be' + | '\u125a' .. '\u125d' + | '\u1260' .. '\u1288' + | '\u128a' .. '\u128d' + | '\u1290' .. '\u12b0' + | '\u12b2' .. '\u12b5' + | '\u12b8' .. '\u12be' | '\u12c0' - | '\u12c2' to '\u12c5' - | '\u12c8' to '\u12d6' - | '\u12d8' to '\u1310' - | '\u1312' to '\u1315' - | '\u1318' to '\u135a' - | '\u1380' to '\u138f' - | '\u13a0' to '\u13f4' - | '\u1401' to '\u166c' - | '\u166f' to '\u167f' - | '\u1681' to '\u169a' - | '\u16a0' to '\u16ea' - | '\u16ee' to '\u16f0' - | '\u1700' to '\u170c' - | '\u170e' to '\u1711' - | '\u1720' to '\u1731' - | '\u1740' to '\u1751' - | '\u1760' to '\u176c' - | '\u176e' to '\u1770' - | '\u1780' to '\u17b3' + | '\u12c2' .. '\u12c5' + | '\u12c8' .. '\u12d6' + | '\u12d8' .. '\u1310' + | '\u1312' .. '\u1315' + | '\u1318' .. '\u135a' + | '\u1380' .. '\u138f' + | '\u13a0' .. '\u13f4' + | '\u1401' .. '\u166c' + | '\u166f' .. '\u167f' + | '\u1681' .. '\u169a' + | '\u16a0' .. '\u16ea' + | '\u16ee' .. '\u16f0' + | '\u1700' .. '\u170c' + | '\u170e' .. '\u1711' + | '\u1720' .. '\u1731' + | '\u1740' .. '\u1751' + | '\u1760' .. '\u176c' + | '\u176e' .. '\u1770' + | '\u1780' .. '\u17b3' | '\u17d7' | '\u17dc' - | '\u1820' to '\u1842' + | '\u1820' .. '\u1842' | '\u1843' - | '\u1844' to '\u1877' - | '\u1880' to '\u18a8' + | '\u1844' .. '\u1877' + | '\u1880' .. '\u18a8' | '\u18aa' - | '\u18b0' to '\u18f5' - | '\u1900' to '\u191c' - | '\u1950' to '\u196d' - | '\u1970' to '\u1974' - | '\u1980' to '\u19ab' - | '\u19c1' to '\u19c7' - | '\u1a00' to '\u1a16' - | '\u1a20' to '\u1a54' + | '\u18b0' .. '\u18f5' + | '\u1900' .. '\u191c' + | '\u1950' .. '\u196d' + | '\u1970' .. '\u1974' + | '\u1980' .. '\u19ab' + | '\u19c1' .. '\u19c7' + | '\u1a00' .. '\u1a16' + | '\u1a20' .. '\u1a54' | '\u1aa7' - | '\u1b05' to '\u1b33' - | '\u1b45' to '\u1b4b' - | '\u1b83' to '\u1ba0' - | '\u1bae' to '\u1baf' - | '\u1bc0' to '\u1be5' - | '\u1c00' to '\u1c23' - | '\u1c4d' to '\u1c4f' - | '\u1c5a' to '\u1c77' - | '\u1c78' to '\u1c7d' - | '\u1ce9' to '\u1cec' - | '\u1cee' to '\u1cf1' - | '\u1d00' to '\u1d2b' - | '\u1d2c' to '\u1d61' - | '\u1d62' to '\u1d77' + | '\u1b05' .. '\u1b33' + | '\u1b45' .. '\u1b4b' + | '\u1b83' .. '\u1ba0' + | '\u1bae' .. '\u1baf' + | '\u1bc0' .. '\u1be5' + | '\u1c00' .. '\u1c23' + | '\u1c4d' .. '\u1c4f' + | '\u1c5a' .. '\u1c77' + | '\u1c78' .. '\u1c7d' + | '\u1ce9' .. '\u1cec' + | '\u1cee' .. '\u1cf1' + | '\u1d00' .. '\u1d2b' + | '\u1d2c' .. '\u1d61' + | '\u1d62' .. '\u1d77' | '\u1d78' - | '\u1d79' to '\u1d9a' - | '\u1d9b' to '\u1dbf' - | '\u1e00' to '\u1f15' - | '\u1f18' to '\u1f1d' - | '\u1f20' to '\u1f45' - | '\u1f48' to '\u1f4d' - | '\u1f50' to '\u1f57' + | '\u1d79' .. '\u1d9a' + | '\u1d9b' .. '\u1dbf' + | '\u1e00' .. '\u1f15' + | '\u1f18' .. '\u1f1d' + | '\u1f20' .. '\u1f45' + | '\u1f48' .. '\u1f4d' + | '\u1f50' .. '\u1f57' | '\u1f59' | '\u1f5b' | '\u1f5d' - | '\u1f5f' to '\u1f7d' - | '\u1f80' to '\u1fb4' - | '\u1fb6' to '\u1fbc' + | '\u1f5f' .. '\u1f7d' + | '\u1f80' .. '\u1fb4' + | '\u1fb6' .. '\u1fbc' | '\u1fbe' - | '\u1fc2' to '\u1fc4' - | '\u1fc6' to '\u1fcc' - | '\u1fd0' to '\u1fd3' - | '\u1fd6' to '\u1fdb' - | '\u1fe0' to '\u1fec' - | '\u1ff2' to '\u1ff4' - | '\u1ff6' to '\u1ffc' + | '\u1fc2' .. '\u1fc4' + | '\u1fc6' .. '\u1fcc' + | '\u1fd0' .. '\u1fd3' + | '\u1fd6' .. '\u1fdb' + | '\u1fe0' .. '\u1fec' + | '\u1ff2' .. '\u1ff4' + | '\u1ff6' .. '\u1ffc' | '\u2071' | '\u207f' - | '\u2090' to '\u209c' + | '\u2090' .. '\u209c' | '\u2102' | '\u2107' - | '\u210a' to '\u2113' + | '\u210a' .. '\u2113' | '\u2115' | '\u2118' - | '\u2119' to '\u211d' + | '\u2119' .. '\u211d' | '\u2124' | '\u2126' | '\u2128' - | '\u212a' to '\u212d' + | '\u212a' .. '\u212d' | '\u212e' - | '\u212f' to '\u2134' - | '\u2135' to '\u2138' + | '\u212f' .. '\u2134' + | '\u2135' .. '\u2138' | '\u2139' - | '\u213c' to '\u213f' - | '\u2145' to '\u2149' + | '\u213c' .. '\u213f' + | '\u2145' .. '\u2149' | '\u214e' - | '\u2160' to '\u2182' - | '\u2183' to '\u2184' - | '\u2185' to '\u2188' - | '\u2c00' to '\u2c2e' - | '\u2c30' to '\u2c5e' - | '\u2c60' to '\u2c7c' + | '\u2160' .. '\u2182' + | '\u2183' .. '\u2184' + | '\u2185' .. '\u2188' + | '\u2c00' .. '\u2c2e' + | '\u2c30' .. '\u2c5e' + | '\u2c60' .. '\u2c7c' | '\u2c7d' - | '\u2c7e' to '\u2ce4' - | '\u2ceb' to '\u2cee' - | '\u2d00' to '\u2d25' - | '\u2d30' to '\u2d65' + | '\u2c7e' .. '\u2ce4' + | '\u2ceb' .. '\u2cee' + | '\u2d00' .. '\u2d25' + | '\u2d30' .. '\u2d65' | '\u2d6f' - | '\u2d80' to '\u2d96' - | '\u2da0' to '\u2da6' - | '\u2da8' to '\u2dae' - | '\u2db0' to '\u2db6' - | '\u2db8' to '\u2dbe' - | '\u2dc0' to '\u2dc6' - | '\u2dc8' to '\u2dce' - | '\u2dd0' to '\u2dd6' - | '\u2dd8' to '\u2dde' + | '\u2d80' .. '\u2d96' + | '\u2da0' .. '\u2da6' + | '\u2da8' .. '\u2dae' + | '\u2db0' .. '\u2db6' + | '\u2db8' .. '\u2dbe' + | '\u2dc0' .. '\u2dc6' + | '\u2dc8' .. '\u2dce' + | '\u2dd0' .. '\u2dd6' + | '\u2dd8' .. '\u2dde' | '\u3005' | '\u3006' | '\u3007' - | '\u3021' to '\u3029' - | '\u3031' to '\u3035' - | '\u3038' to '\u303a' + | '\u3021' .. '\u3029' + | '\u3031' .. '\u3035' + | '\u3038' .. '\u303a' | '\u303b' | '\u303c' - | '\u3041' to '\u3096' - | '\u309d' to '\u309e' + | '\u3041' .. '\u3096' + | '\u309d' .. '\u309e' | '\u309f' - | '\u30a1' to '\u30fa' - | '\u30fc' to '\u30fe' + | '\u30a1' .. '\u30fa' + | '\u30fc' .. '\u30fe' | '\u30ff' - | '\u3105' to '\u312d' - | '\u3131' to '\u318e' - | '\u31a0' to '\u31ba' - | '\u31f0' to '\u31ff' - | '\u3400' to '\u4db5' - | '\u4e00' to '\u9fcb' - | '\ua000' to '\ua014' + | '\u3105' .. '\u312d' + | '\u3131' .. '\u318e' + | '\u31a0' .. '\u31ba' + | '\u31f0' .. '\u31ff' + | '\u3400' .. '\u4db5' + | '\u4e00' .. '\u9fcb' + | '\ua000' .. '\ua014' | '\ua015' - | '\ua016' to '\ua48c' - | '\ua4d0' to '\ua4f7' - | '\ua4f8' to '\ua4fd' - | '\ua500' to '\ua60b' + | '\ua016' .. '\ua48c' + | '\ua4d0' .. '\ua4f7' + | '\ua4f8' .. '\ua4fd' + | '\ua500' .. '\ua60b' | '\ua60c' - | '\ua610' to '\ua61f' - | '\ua62a' to '\ua62b' - | '\ua640' to '\ua66d' + | '\ua610' .. '\ua61f' + | '\ua62a' .. '\ua62b' + | '\ua640' .. '\ua66d' | '\ua66e' | '\ua67f' - | '\ua680' to '\ua697' - | '\ua6a0' to '\ua6e5' - | '\ua6e6' to '\ua6ef' - | '\ua717' to '\ua71f' - | '\ua722' to '\ua76f' + | '\ua680' .. '\ua697' + | '\ua6a0' .. '\ua6e5' + | '\ua6e6' .. '\ua6ef' + | '\ua717' .. '\ua71f' + | '\ua722' .. '\ua76f' | '\ua770' - | '\ua771' to '\ua787' + | '\ua771' .. '\ua787' | '\ua788' - | '\ua78b' to '\ua78e' - | '\ua790' to '\ua791' - | '\ua7a0' to '\ua7a9' + | '\ua78b' .. '\ua78e' + | '\ua790' .. '\ua791' + | '\ua7a0' .. '\ua7a9' | '\ua7fa' - | '\ua7fb' to '\ua801' - | '\ua803' to '\ua805' - | '\ua807' to '\ua80a' - | '\ua80c' to '\ua822' - | '\ua840' to '\ua873' - | '\ua882' to '\ua8b3' - | '\ua8f2' to '\ua8f7' + | '\ua7fb' .. '\ua801' + | '\ua803' .. '\ua805' + | '\ua807' .. '\ua80a' + | '\ua80c' .. '\ua822' + | '\ua840' .. '\ua873' + | '\ua882' .. '\ua8b3' + | '\ua8f2' .. '\ua8f7' | '\ua8fb' - | '\ua90a' to '\ua925' - | '\ua930' to '\ua946' - | '\ua960' to '\ua97c' - | '\ua984' to '\ua9b2' + | '\ua90a' .. '\ua925' + | '\ua930' .. '\ua946' + | '\ua960' .. '\ua97c' + | '\ua984' .. '\ua9b2' | '\ua9cf' - | '\uaa00' to '\uaa28' - | '\uaa40' to '\uaa42' - | '\uaa44' to '\uaa4b' - | '\uaa60' to '\uaa6f' + | '\uaa00' .. '\uaa28' + | '\uaa40' .. '\uaa42' + | '\uaa44' .. '\uaa4b' + | '\uaa60' .. '\uaa6f' | '\uaa70' - | '\uaa71' to '\uaa76' + | '\uaa71' .. '\uaa76' | '\uaa7a' - | '\uaa80' to '\uaaaf' + | '\uaa80' .. '\uaaaf' | '\uaab1' - | '\uaab5' to '\uaab6' - | '\uaab9' to '\uaabd' + | '\uaab5' .. '\uaab6' + | '\uaab9' .. '\uaabd' | '\uaac0' | '\uaac2' - | '\uaadb' to '\uaadc' + | '\uaadb' .. '\uaadc' | '\uaadd' - | '\uab01' to '\uab06' - | '\uab09' to '\uab0e' - | '\uab11' to '\uab16' - | '\uab20' to '\uab26' - | '\uab28' to '\uab2e' - | '\uabc0' to '\uabe2' - | '\uac00' to '\ud7a3' - | '\ud7b0' to '\ud7c6' - | '\ud7cb' to '\ud7fb' - | '\uf900' to '\ufa2d' - | '\ufa30' to '\ufa6d' - | '\ufa70' to '\ufad9' - | '\ufb00' to '\ufb06' - | '\ufb13' to '\ufb17' + | '\uab01' .. '\uab06' + | '\uab09' .. '\uab0e' + | '\uab11' .. '\uab16' + | '\uab20' .. '\uab26' + | '\uab28' .. '\uab2e' + | '\uabc0' .. '\uabe2' + | '\uac00' .. '\ud7a3' + | '\ud7b0' .. '\ud7c6' + | '\ud7cb' .. '\ud7fb' + | '\uf900' .. '\ufa2d' + | '\ufa30' .. '\ufa6d' + | '\ufa70' .. '\ufad9' + | '\ufb00' .. '\ufb06' + | '\ufb13' .. '\ufb17' | '\ufb1d' - | '\ufb1f' to '\ufb28' - | '\ufb2a' to '\ufb36' - | '\ufb38' to '\ufb3c' + | '\ufb1f' .. '\ufb28' + | '\ufb2a' .. '\ufb36' + | '\ufb38' .. '\ufb3c' | '\ufb3e' - | '\ufb40' to '\ufb41' - | '\ufb43' to '\ufb44' - | '\ufb46' to '\ufbb1' - | '\ufbd3' to '\ufc5d' - | '\ufc64' to '\ufd3d' - | '\ufd50' to '\ufd8f' - | '\ufd92' to '\ufdc7' - | '\ufdf0' to '\ufdf9' + | '\ufb40' .. '\ufb41' + | '\ufb43' .. '\ufb44' + | '\ufb46' .. '\ufbb1' + | '\ufbd3' .. '\ufc5d' + | '\ufc64' .. '\ufd3d' + | '\ufd50' .. '\ufd8f' + | '\ufd92' .. '\ufdc7' + | '\ufdf0' .. '\ufdf9' | '\ufe71' | '\ufe73' | '\ufe77' | '\ufe79' | '\ufe7b' | '\ufe7d' - | '\ufe7f' to '\ufefc' - | '\uff21' to '\uff3a' - | '\uff41' to '\uff5a' - | '\uff66' to '\uff6f' + | '\ufe7f' .. '\ufefc' + | '\uff21' .. '\uff3a' + | '\uff41' .. '\uff5a' + | '\uff66' .. '\uff6f' | '\uff70' - | '\uff71' to '\uff9d' - | '\uffa0' to '\uffbe' - | '\uffc2' to '\uffc7' - | '\uffca' to '\uffcf' - | '\uffd2' to '\uffd7' - | '\uffda' to '\uffdc' - | '\U00010000' to '\U0001000b' - | '\U0001000d' to '\U00010026' - | '\U00010028' to '\U0001003a' - | '\U0001003c' to '\U0001003d' - | '\U0001003f' to '\U0001004d' - | '\U00010050' to '\U0001005d' - | '\U00010080' to '\U000100fa' - | '\U00010140' to '\U00010174' - | '\U00010280' to '\U0001029c' - | '\U000102a0' to '\U000102d0' - | '\U00010300' to '\U0001031e' - | '\U00010330' to '\U00010340' + | '\uff71' .. '\uff9d' + | '\uffa0' .. '\uffbe' + | '\uffc2' .. '\uffc7' + | '\uffca' .. '\uffcf' + | '\uffd2' .. '\uffd7' + | '\uffda' .. '\uffdc' + | '\U00010000' .. '\U0001000b' + | '\U0001000d' .. '\U00010026' + | '\U00010028' .. '\U0001003a' + | '\U0001003c' .. '\U0001003d' + | '\U0001003f' .. '\U0001004d' + | '\U00010050' .. '\U0001005d' + | '\U00010080' .. '\U000100fa' + | '\U00010140' .. '\U00010174' + | '\U00010280' .. '\U0001029c' + | '\U000102a0' .. '\U000102d0' + | '\U00010300' .. '\U0001031e' + | '\U00010330' .. '\U00010340' | '\U00010341' - | '\U00010342' to '\U00010349' + | '\U00010342' .. '\U00010349' | '\U0001034a' - | '\U00010380' to '\U0001039d' - | '\U000103a0' to '\U000103c3' - | '\U000103c8' to '\U000103cf' - | '\U000103d1' to '\U000103d5' - | '\U00010400' to '\U0001044f' - | '\U00010450' to '\U0001049d' - | '\U00010800' to '\U00010805' + | '\U00010380' .. '\U0001039d' + | '\U000103a0' .. '\U000103c3' + | '\U000103c8' .. '\U000103cf' + | '\U000103d1' .. '\U000103d5' + | '\U00010400' .. '\U0001044f' + | '\U00010450' .. '\U0001049d' + | '\U00010800' .. '\U00010805' | '\U00010808' - | '\U0001080a' to '\U00010835' - | '\U00010837' to '\U00010838' + | '\U0001080a' .. '\U00010835' + | '\U00010837' .. '\U00010838' | '\U0001083c' - | '\U0001083f' to '\U00010855' - | '\U00010900' to '\U00010915' - | '\U00010920' to '\U00010939' + | '\U0001083f' .. '\U00010855' + | '\U00010900' .. '\U00010915' + | '\U00010920' .. '\U00010939' | '\U00010a00' - | '\U00010a10' to '\U00010a13' - | '\U00010a15' to '\U00010a17' - | '\U00010a19' to '\U00010a33' - | '\U00010a60' to '\U00010a7c' - | '\U00010b00' to '\U00010b35' - | '\U00010b40' to '\U00010b55' - | '\U00010b60' to '\U00010b72' - | '\U00010c00' to '\U00010c48' - | '\U00011003' to '\U00011037' - | '\U00011083' to '\U000110af' - | '\U00012000' to '\U0001236e' - | '\U00012400' to '\U00012462' - | '\U00013000' to '\U0001342e' - | '\U00016800' to '\U00016a38' - | '\U0001b000' to '\U0001b001' - | '\U0001d400' to '\U0001d454' - | '\U0001d456' to '\U0001d49c' - | '\U0001d49e' to '\U0001d49f' + | '\U00010a10' .. '\U00010a13' + | '\U00010a15' .. '\U00010a17' + | '\U00010a19' .. '\U00010a33' + | '\U00010a60' .. '\U00010a7c' + | '\U00010b00' .. '\U00010b35' + | '\U00010b40' .. '\U00010b55' + | '\U00010b60' .. '\U00010b72' + | '\U00010c00' .. '\U00010c48' + | '\U00011003' .. '\U00011037' + | '\U00011083' .. '\U000110af' + | '\U00012000' .. '\U0001236e' + | '\U00012400' .. '\U00012462' + | '\U00013000' .. '\U0001342e' + | '\U00016800' .. '\U00016a38' + | '\U0001b000' .. '\U0001b001' + | '\U0001d400' .. '\U0001d454' + | '\U0001d456' .. '\U0001d49c' + | '\U0001d49e' .. '\U0001d49f' | '\U0001d4a2' - | '\U0001d4a5' to '\U0001d4a6' - | '\U0001d4a9' to '\U0001d4ac' - | '\U0001d4ae' to '\U0001d4b9' + | '\U0001d4a5' .. '\U0001d4a6' + | '\U0001d4a9' .. '\U0001d4ac' + | '\U0001d4ae' .. '\U0001d4b9' | '\U0001d4bb' - | '\U0001d4bd' to '\U0001d4c3' - | '\U0001d4c5' to '\U0001d505' - | '\U0001d507' to '\U0001d50a' - | '\U0001d50d' to '\U0001d514' - | '\U0001d516' to '\U0001d51c' - | '\U0001d51e' to '\U0001d539' - | '\U0001d53b' to '\U0001d53e' - | '\U0001d540' to '\U0001d544' + | '\U0001d4bd' .. '\U0001d4c3' + | '\U0001d4c5' .. '\U0001d505' + | '\U0001d507' .. '\U0001d50a' + | '\U0001d50d' .. '\U0001d514' + | '\U0001d516' .. '\U0001d51c' + | '\U0001d51e' .. '\U0001d539' + | '\U0001d53b' .. '\U0001d53e' + | '\U0001d540' .. '\U0001d544' | '\U0001d546' - | '\U0001d54a' to '\U0001d550' - | '\U0001d552' to '\U0001d6a5' - | '\U0001d6a8' to '\U0001d6c0' - | '\U0001d6c2' to '\U0001d6da' - | '\U0001d6dc' to '\U0001d6fa' - | '\U0001d6fc' to '\U0001d714' - | '\U0001d716' to '\U0001d734' - | '\U0001d736' to '\U0001d74e' - | '\U0001d750' to '\U0001d76e' - | '\U0001d770' to '\U0001d788' - | '\U0001d78a' to '\U0001d7a8' - | '\U0001d7aa' to '\U0001d7c2' - | '\U0001d7c4' to '\U0001d7cb' - | '\U00020000' to '\U0002a6d6' - | '\U0002a700' to '\U0002b734' - | '\U0002b740' to '\U0002b81d' - | '\U0002f800' to '\U0002fa1d' + | '\U0001d54a' .. '\U0001d550' + | '\U0001d552' .. '\U0001d6a5' + | '\U0001d6a8' .. '\U0001d6c0' + | '\U0001d6c2' .. '\U0001d6da' + | '\U0001d6dc' .. '\U0001d6fa' + | '\U0001d6fc' .. '\U0001d714' + | '\U0001d716' .. '\U0001d734' + | '\U0001d736' .. '\U0001d74e' + | '\U0001d750' .. '\U0001d76e' + | '\U0001d770' .. '\U0001d788' + | '\U0001d78a' .. '\U0001d7a8' + | '\U0001d7aa' .. '\U0001d7c2' + | '\U0001d7c4' .. '\U0001d7cb' + | '\U00020000' .. '\U0002a6d6' + | '\U0002a700' .. '\U0002b734' + | '\U0002b740' .. '\U0002b81d' + | '\U0002f800' .. '\U0002fa1d' => true, _ => false }; diff --git a/src/libstd/json.rs b/src/libstd/json.rs index 7c5a6187a5760..6dca7701bf770 100644 --- a/src/libstd/json.rs +++ b/src/libstd/json.rs @@ -267,7 +267,7 @@ impl Parser { 'n' => self.parse_ident(~"ull", Null), 't' => self.parse_ident(~"rue", Boolean(true)), 'f' => self.parse_ident(~"alse", Boolean(false)), - '0' to '9' | '-' => self.parse_number(), + '0' .. '9' | '-' => self.parse_number(), '"' => match self.parse_str() { Ok(s) => Ok(String(s)), Err(e) => Err(e) @@ -330,14 +330,14 @@ impl Parser { // There can be only one leading '0'. match self.ch { - '0' to '9' => return self.error(~"invalid number"), + '0' .. '9' => return self.error(~"invalid number"), _ => () } } - '1' to '9' => { + '1' .. '9' => { while !self.eof() { match self.ch { - '0' to '9' => { + '0' .. '9' => { res *= 10f; res += ((self.ch as int) - ('0' as int)) as float; @@ -358,7 +358,7 @@ impl Parser { // Make sure a digit follows the decimal place. match self.ch { - '0' to '9' => (), + '0' .. '9' => (), _ => return self.error(~"invalid number") } @@ -366,7 +366,7 @@ impl Parser { let mut dec = 1f; while !self.eof() { match self.ch { - '0' to '9' => { + '0' .. '9' => { dec /= 10f; res += (((self.ch as int) - ('0' as int)) as float) * dec; @@ -394,13 +394,13 @@ impl Parser { // Make sure a digit follows the exponent place. match self.ch { - '0' to '9' => (), + '0' .. '9' => (), _ => return self.error(~"invalid number") } while !self.eof() { match self.ch { - '0' to '9' => { + '0' .. '9' => { exp *= 10u; exp += (self.ch as uint) - ('0' as uint); @@ -443,7 +443,7 @@ impl Parser { let mut n = 0u; while i < 4u { match self.next_char() { - '0' to '9' => { + '0' .. '9' => { n = n * 16u + (self.ch as uint) - ('0' as uint); }, diff --git a/src/libstd/net_url.rs b/src/libstd/net_url.rs index b1e1209cbb5cf..c32e0466bba45 100644 --- a/src/libstd/net_url.rs +++ b/src/libstd/net_url.rs @@ -50,9 +50,9 @@ fn encode_inner(s: ~str, full_url: bool) -> ~str { let ch = rdr.read_byte() as char; match ch { // unreserved: - 'A' to 'Z' | - 'a' to 'z' | - '0' to '9' | + 'A' .. 'Z' | + 'a' .. 'z' | + '0' .. '9' | '-' | '.' | '_' | '~' => { str::push_char(out, ch); } @@ -162,7 +162,7 @@ fn encode_plus(s: ~str) -> ~str { while !rdr.eof() { let ch = rdr.read_byte() as char; match ch { - 'A' to 'Z' | 'a' to 'z' | '0' to '9' | '_' | '.' | '-' => { + 'A' .. 'Z' | 'a' .. 'z' | '0' .. '9' | '_' | '.' | '-' => { str::push_char(out, ch); } ' ' => str::push_char(out, '+'), @@ -340,8 +340,8 @@ fn query_to_str(query: Query) -> ~str { fn get_scheme(rawurl: ~str) -> result::Result<(~str, ~str), @~str> { for str::each_chari(rawurl) |i,c| { match c { - 'A' to 'Z' | 'a' to 'z' => again, - '0' to '9' | '+' | '-' | '.' => { + 'A' .. 'Z' | 'a' .. 'z' => again, + '0' .. '9' | '+' | '-' | '.' => { if i == 0 { return result::Err(@~"url: Scheme must begin with a letter."); } @@ -415,13 +415,13 @@ fn get_authority(rawurl: ~str) -> // deal with input class first match c { - '0' to '9' => (), - 'A' to 'F' | 'a' to 'f' => { + '0' .. '9' => (), + 'A' .. 'F' | 'a' .. 'f' => { if in == Digit { in = Hex; } } - 'G' to 'Z' | 'g' to 'z' | '-' | '.' | '_' | '~' | '%' | + 'G' .. 'Z' | 'g' .. 'z' | '-' | '.' | '_' | '~' | '%' | '&' |'\'' | '(' | ')' | '+' | '!' | '*' | ',' | ';' | '=' => { in = Unreserved; } @@ -558,7 +558,7 @@ fn get_path(rawurl: ~str, authority : bool) -> let mut end = len; for str::each_chari(rawurl) |i,c| { match c { - 'A' to 'Z' | 'a' to 'z' | '0' to '9' | '&' |'\'' | '(' | ')' | '.' + 'A' .. 'Z' | 'a' .. 'z' | '0' .. '9' | '&' |'\'' | '(' | ')' | '.' | '@' | ':' | '%' | '/' | '+' | '!' | '*' | ',' | ';' | '=' | '_' | '-' => { again; diff --git a/src/libstd/time.rs b/src/libstd/time.rs index b8342ce8f880c..3867ae3584332 100644 --- a/src/libstd/time.rs +++ b/src/libstd/time.rs @@ -215,7 +215,7 @@ fn strptime(s: &str, format: &str) -> Result { pos = next; match ch { - '0' to '9' => { + '0' .. '9' => { value = value * 10_i32 + (ch as i32 - '0' as i32); } ' ' if ws => (), diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 0b18d7d9e6e30..d96401b00b3ff 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -1869,7 +1869,7 @@ struct parser { || self.is_keyword(~"false") { let val = self.parse_expr_res(RESTRICT_NO_BAR_OP); - if self.eat_keyword(~"to") || self.eat(token::DOTDOT) { + if self.eat(token::DOTDOT) { let end = self.parse_expr_res(RESTRICT_NO_BAR_OP); pat = pat_range(val, end); } else { diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index b9a9bc79e132e..50e05bb459ee4 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -389,7 +389,6 @@ fn contextual_keyword_table() -> hashmap<~str, ()> { ~"of", ~"priv", ~"pub", ~"self", ~"send", ~"static", - ~"to", ~"use", ~"with" ]; diff --git a/src/rustc/back/link.rs b/src/rustc/back/link.rs index 695bdcbc5ea99..8cc2da7fc735a 100644 --- a/src/rustc/back/link.rs +++ b/src/rustc/back/link.rs @@ -547,9 +547,9 @@ fn sanitize(s: ~str) -> ~str { ',' => result += ~"_", '{' | '(' => result += ~"_of_", - 'a' to 'z' - | 'A' to 'Z' - | '0' to '9' + 'a' .. 'z' + | 'A' .. 'Z' + | '0' .. '9' | '_' => str::push_char(result,c), _ => { if c > 'z' && char::is_XID_continue(c) { diff --git a/src/test/compile-fail/alt-range-fail-dominate.rs b/src/test/compile-fail/alt-range-fail-dominate.rs index eff18df2a0ee8..3b44bb17806ce 100644 --- a/src/test/compile-fail/alt-range-fail-dominate.rs +++ b/src/test/compile-fail/alt-range-fail-dominate.rs @@ -6,31 +6,31 @@ fn main() { match 5u { - 1u to 10u => { } - 5u to 6u => { } + 1u .. 10u => { } + 5u .. 6u => { } _ => {} }; match 5u { - 3u to 6u => { } - 4u to 6u => { } + 3u .. 6u => { } + 4u .. 6u => { } _ => {} }; match 5u { - 4u to 6u => { } - 4u to 6u => { } + 4u .. 6u => { } + 4u .. 6u => { } _ => {} }; match 'c' { - 'A' to 'z' => {} - 'a' to 'z' => {} + 'A' .. 'z' => {} + 'a' .. 'z' => {} _ => {} }; match 1.0 { - 0.01 to 6.5 => {} + 0.01 .. 6.5 => {} 0.02 => {} _ => {} }; diff --git a/src/test/compile-fail/alt-range-fail.rs b/src/test/compile-fail/alt-range-fail.rs index 229b5c47eba80..9e0d39c89240c 100644 --- a/src/test/compile-fail/alt-range-fail.rs +++ b/src/test/compile-fail/alt-range-fail.rs @@ -4,16 +4,16 @@ fn main() { match 5u { - 6u to 1u => { } + 6u .. 1u => { } _ => { } }; match "wow" { - "bar" to "foo" => { } + "bar" .. "foo" => { } }; match 5u { - 'c' to 100u => { } + 'c' .. 100u => { } _ => { } }; } diff --git a/src/test/run-pass/inferred-suffix-in-pattern-range.rs b/src/test/run-pass/inferred-suffix-in-pattern-range.rs index 17f08a3ce272d..ae7cdd9c25fac 100644 --- a/src/test/run-pass/inferred-suffix-in-pattern-range.rs +++ b/src/test/run-pass/inferred-suffix-in-pattern-range.rs @@ -1,21 +1,21 @@ fn main() { let x = 2; let x_message = match x { - 0 to 1 => { ~"not many" } + 0 .. 1 => { ~"not many" } _ => { ~"lots" } }; assert x_message == ~"lots"; let y = 2i; let y_message = match y { - 0 to 1 => { ~"not many" } + 0 .. 1 => { ~"not many" } _ => { ~"lots" } }; assert y_message == ~"lots"; let z = 1u64; let z_message = match z { - 0 to 1 => { ~"not many" } + 0 .. 1 => { ~"not many" } _ => { ~"lots" } }; assert z_message == ~"not many"; From 4e353e011842f2c3bf3790bea313aa64425a0a53 Mon Sep 17 00:00:00 2001 From: Gareth Daniel Smith Date: Sun, 2 Sep 2012 16:10:14 +0100 Subject: [PATCH 12/13] fix two issues with the exports: 1. from_bytes, from_bools and from_fn were not exported but should have been. 2. lots of stuff that either didnt exist or didnt need exporting was being exported. --- src/libstd/bitv.rs | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/src/libstd/bitv.rs b/src/libstd/bitv.rs index 0b950f7eb257a..c7c31352f98c0 100644 --- a/src/libstd/bitv.rs +++ b/src/libstd/bitv.rs @@ -1,28 +1,7 @@ #[deny(non_camel_case_types)]; import vec::{to_mut, from_elem}; -export Bitv; -export union; -export Union; -export intersect; -export Intersect; -export assign; -export Assign; -export difference; -export Difference; -export clone; -export get; -export equal; -export clear; -export set_all; -export invert; -export set; -export is_true; -export is_false; -export to_vec; -export to_str; -export eq_vec; -export methods; +export Bitv, from_bytes, from_bools, from_fn; /// a mask that has a 1 for each defined bit in a small_bitv, assuming n bits #[inline(always)] From 543e173ce5d0a01d3c8a89682425607c14b6fab6 Mon Sep 17 00:00:00 2001 From: Gareth Daniel Smith Date: Sun, 2 Sep 2012 18:04:38 +0100 Subject: [PATCH 13/13] Use struct+impl syntax instead of the (deprecated) struct with embedded methods syntax. Also standardise the comment indentation and add some whitespace between items. --- src/libstd/bitv.rs | 336 +++++++++++++++++++++++++-------------------- 1 file changed, 185 insertions(+), 151 deletions(-) diff --git a/src/libstd/bitv.rs b/src/libstd/bitv.rs index c7c31352f98c0..731b662f84565 100644 --- a/src/libstd/bitv.rs +++ b/src/libstd/bitv.rs @@ -3,47 +3,57 @@ import vec::{to_mut, from_elem}; export Bitv, from_bytes, from_bools, from_fn; +struct SmallBitv { + /// only the lowest nbits of this value are used. the rest is undefined. + mut bits: u32 +} + +fn SmallBitv(bits: u32) -> SmallBitv { + SmallBitv {bits: bits} +} + /// a mask that has a 1 for each defined bit in a small_bitv, assuming n bits #[inline(always)] fn small_mask(nbits: uint) -> u32 { (1 << nbits) - 1 } -struct SmallBitv { - /// only the lowest nbits of this value are used. the rest is undefined. - let mut bits: u32; - new(bits: u32) { self.bits = bits; } - priv { - #[inline(always)] - fn bits_op(right_bits: u32, nbits: uint, f: fn(u32, u32) -> u32) - -> bool { - let mask = small_mask(nbits); - let old_b: u32 = self.bits; - let new_b = f(old_b, right_bits); - self.bits = new_b; - mask & old_b != mask & new_b - } +impl SmallBitv { + + #[inline(always)] + fn bits_op(right_bits: u32, nbits: uint, f: fn(u32, u32) -> u32) -> bool { + let mask = small_mask(nbits); + let old_b: u32 = self.bits; + let new_b = f(old_b, right_bits); + self.bits = new_b; + mask & old_b != mask & new_b } + #[inline(always)] fn union(s: &SmallBitv, nbits: uint) -> bool { self.bits_op(s.bits, nbits, |u1, u2| u1 | u2) } + #[inline(always)] fn intersect(s: &SmallBitv, nbits: uint) -> bool { self.bits_op(s.bits, nbits, |u1, u2| u1 & u2) } + #[inline(always)] fn become(s: &SmallBitv, nbits: uint) -> bool { self.bits_op(s.bits, nbits, |_u1, u2| u2) } + #[inline(always)] fn difference(s: &SmallBitv, nbits: uint) -> bool { self.bits_op(s.bits, nbits, |u1, u2| u1 ^ u2) } + #[inline(always)] pure fn get(i: uint) -> bool { (self.bits & (1 << i)) != 0 } + #[inline(always)] fn set(i: uint, x: bool) { if x { @@ -53,25 +63,41 @@ struct SmallBitv { self.bits &= !(1< bool { let mask = small_mask(nbits); mask & self.bits == mask & b.bits } + #[inline(always)] fn clear() { self.bits = 0; } + #[inline(always)] fn set_all() { self.bits = !0; } + #[inline(always)] fn is_true(nbits: uint) -> bool { small_mask(nbits) & !self.bits == 0 } + #[inline(always)] fn is_false(nbits: uint) -> bool { small_mask(nbits) & self.bits == 0 } + #[inline(always)] fn invert() { self.bits = !self.bits; } + +} + +struct BigBitv { + // only mut b/c of clone and lack of other constructor + mut storage: ~[mut uint] +} + +fn BigBitv(-storage: ~[mut uint]) -> BigBitv { + BigBitv {storage: storage} } /** @@ -90,33 +116,27 @@ fn big_mask(nbits: uint, elem: uint) -> uint { } } -struct BigBitv { - // only mut b/c of clone and lack of other constructor - let mut storage: ~[mut uint]; - new(-storage: ~[mut uint]) { - self.storage <- storage; - } - priv { - #[inline(always)] - fn process(b: &BigBitv, nbits: uint, op: fn(uint, uint) -> uint) - -> bool { - let len = b.storage.len(); - assert (self.storage.len() == len); - let mut changed = false; - do uint::range(0, len) |i| { - let mask = big_mask(nbits, i); - let w0 = self.storage[i] & mask; - let w1 = b.storage[i] & mask; - let w = op(w0, w1) & mask; - if w0 != w unchecked { - changed = true; - self.storage[i] = w; - } - true +impl BigBitv { + + #[inline(always)] + fn process(b: &BigBitv, nbits: uint, op: fn(uint, uint) -> uint) -> bool { + let len = b.storage.len(); + assert (self.storage.len() == len); + let mut changed = false; + do uint::range(0, len) |i| { + let mask = big_mask(nbits, i); + let w0 = self.storage[i] & mask; + let w1 = b.storage[i] & mask; + let w = op(w0, w1) & mask; + if w0 != w unchecked { + changed = true; + self.storage[i] = w; } - changed + true } + changed } + #[inline(always)] fn each_storage(op: fn(&uint) -> bool) { for uint::range(0, self.storage.len()) |i| { @@ -126,20 +146,25 @@ struct BigBitv { if !b { break; } } } + #[inline(always)] fn invert() { for self.each_storage() |w| { w = !w } } + #[inline(always)] fn union(b: &BigBitv, nbits: uint) -> bool { self.process(b, nbits, lor) } + #[inline(always)] fn intersect(b: &BigBitv, nbits: uint) -> bool { self.process(b, nbits, land) } + #[inline(always)] fn become(b: &BigBitv, nbits: uint) -> bool { self.process(b, nbits, right) } + #[inline(always)] fn difference(b: &BigBitv, nbits: uint) -> bool { self.invert(); @@ -147,6 +172,7 @@ struct BigBitv { self.invert(); b } + #[inline(always)] pure fn get(i: uint) -> bool { let w = i / uint_bits; @@ -154,6 +180,7 @@ struct BigBitv { let x = 1 & self.storage[w] >> b; x == 1 } + #[inline(always)] fn set(i: uint, x: bool) { let w = i / uint_bits; @@ -162,6 +189,7 @@ struct BigBitv { self.storage[w] = if x { self.storage[w] | flag } else { self.storage[w] & !flag }; } + #[inline(always)] fn equals(b: &BigBitv, nbits: uint) -> bool { let len = b.storage.len(); @@ -172,6 +200,7 @@ struct BigBitv { } } } + } enum BitvVariant { Big(~BigBitv), Small(~SmallBitv) } @@ -180,80 +209,85 @@ enum Op {Union, Intersect, Assign, Difference} // The bitvector type struct Bitv { - let rep: BitvVariant; - let nbits: uint; + rep: BitvVariant, + nbits: uint +} - new(nbits: uint, init: bool) { - self.nbits = nbits; - if nbits <= 32 { - self.rep = Small(~SmallBitv(if init {!0} else {0})); - } - else { - let nelems = nbits/uint_bits + - if nbits % uint_bits == 0 {0} else {1}; - let elem = if init {!0} else {0}; - let s = to_mut(from_elem(nelems, elem)); - self.rep = Big(~BigBitv(s)); - }; - } - - priv { - fn die() -> ! { - fail ~"Tried to do operation on bit vectors with \ - different sizes"; +fn Bitv (nbits: uint, init: bool) -> Bitv { + let rep = if nbits <= 32 { + Small(~SmallBitv(if init {!0} else {0})) + } + else { + let nelems = nbits/uint_bits + + if nbits % uint_bits == 0 {0} else {1}; + let elem = if init {!0} else {0}; + let s = to_mut(from_elem(nelems, elem)); + Big(~BigBitv(s)) + }; + Bitv {rep: rep, nbits: nbits} +} + +priv impl Bitv { + + fn die() -> ! { + fail ~"Tried to do operation on bit vectors with different sizes"; + } + + #[inline(always)] + fn do_op(op: Op, other: &Bitv) -> bool { + if self.nbits != other.nbits { + self.die(); } - #[inline(always)] - fn do_op(op: Op, other: &Bitv) -> bool { - if self.nbits != other.nbits { - self.die(); - } - match self.rep { - Small(s) => match other.rep { - Small(s1) => match op { - Union => s.union(s1, self.nbits), - Intersect => s.intersect(s1, self.nbits), - Assign => s.become(s1, self.nbits), - Difference => s.difference(s1, self.nbits) - }, - Big(_) => self.die() - }, - Big(s) => match other.rep { - Small(_) => self.die(), - Big(s1) => match op { - Union => s.union(s1, self.nbits), - Intersect => s.intersect(s1, self.nbits), - Assign => s.become(s1, self.nbits), - Difference => s.difference(s1, self.nbits) - } - } + match self.rep { + Small(s) => match other.rep { + Small(s1) => match op { + Union => s.union(s1, self.nbits), + Intersect => s.intersect(s1, self.nbits), + Assign => s.become(s1, self.nbits), + Difference => s.difference(s1, self.nbits) + }, + Big(_) => self.die() + }, + Big(s) => match other.rep { + Small(_) => self.die(), + Big(s1) => match op { + Union => s.union(s1, self.nbits), + Intersect => s.intersect(s1, self.nbits), + Assign => s.become(s1, self.nbits), + Difference => s.difference(s1, self.nbits) } + } } } -/** - * Calculates the union of two bitvectors - * - * Sets `self` to the union of `self` and `v1`. Both bitvectors must be - * the same length. Returns 'true' if `self` changed. -*/ +} + +impl Bitv { + + /** + * Calculates the union of two bitvectors + * + * Sets `self` to the union of `self` and `v1`. Both bitvectors must be + * the same length. Returns 'true' if `self` changed. + */ #[inline(always)] fn union(v1: &Bitv) -> bool { self.do_op(Union, v1) } -/** - * Calculates the intersection of two bitvectors - * - * Sets `self` to the intersection of `self` and `v1`. Both bitvectors must be - * the same length. Returns 'true' if `self` changed. -*/ + /** + * Calculates the intersection of two bitvectors + * + * Sets `self` to the intersection of `self` and `v1`. Both bitvectors + * must be the same length. Returns 'true' if `self` changed. + */ #[inline(always)] fn intersect(v1: &Bitv) -> bool { self.do_op(Intersect, v1) } -/** - * Assigns the value of `v1` to `self` - * - * Both bitvectors must be the same length. Returns `true` if `self` was - * changed - */ + /** + * Assigns the value of `v1` to `self` + * + * Both bitvectors must be the same length. Returns `true` if `self` was + * changed + */ #[inline(always)] fn assign(v: &Bitv) -> bool { self.do_op(Assign, v) } @@ -283,11 +317,11 @@ struct Bitv { } } -/** - * Set the value of a bit at a given index - * - * `i` must be less than the length of the bitvector. - */ + /** + * Set the value of a bit at a given index + * + * `i` must be less than the length of the bitvector. + */ #[inline(always)] fn set(i: uint, x: bool) { assert (i < self.nbits); @@ -297,12 +331,12 @@ struct Bitv { } } -/** - * Compares two bitvectors - * - * Both bitvectors must be the same length. Returns `true` if both bitvectors - * contain identical elements. - */ + /** + * Compares two bitvectors + * + * Both bitvectors must be the same length. Returns `true` if both + * bitvectors contain identical elements. + */ #[inline(always)] fn equal(v1: Bitv) -> bool { if self.nbits != v1.nbits { return false; } @@ -343,18 +377,19 @@ struct Bitv { Big(s) => for s.each_storage() |w| { w = !w } } } -/** - * Calculate the difference between two bitvectors - * - * Sets each element of `v0` to the value of that element minus the element - * of `v1` at the same index. Both bitvectors must be the same length. - * - * Returns `true` if `v0` was changed. - */ - #[inline(always)] + /** + * Calculate the difference between two bitvectors + * + * Sets each element of `v0` to the value of that element minus the + * element of `v1` at the same index. Both bitvectors must be the same + * length. + * + * Returns `true` if `v0` was changed. + */ + #[inline(always)] fn difference(v: ~Bitv) -> bool { self.do_op(Difference, v) } - /// Returns true if all bits are 1 + /// Returns true if all bits are 1 #[inline(always)] fn is_true() -> bool { match self.rep { @@ -376,7 +411,6 @@ struct Bitv { } /// Returns true if all bits are 0 - fn is_false() -> bool { match self.rep { Small(b) => b.is_false(self.nbits), @@ -391,11 +425,11 @@ struct Bitv { return if self.get(i) { 1 } else { 0 }; } -/** - * Converts `self` to a vector of uint with the same length. - * - * Each uint in the resulting vector has either value 0u or 1u. - */ + /** + * Converts `self` to a vector of uint with the same length. + * + * Each uint in the resulting vector has either value 0u or 1u. + */ fn to_vec() -> ~[uint] { vec::from_fn(self.nbits, |x| self.init_to_vec(x)) } @@ -438,12 +472,12 @@ struct Bitv { vec::from_fn(self.nbits, |i| self[i]) } -/** - * Converts `self` to a string. - * - * The resulting string has the same length as `self`, and each - * character is either '0' or '1'. - */ + /** + * Converts `self` to a string. + * + * The resulting string has the same length as `self`, and each + * character is either '0' or '1'. + */ fn to_str() -> ~str { let mut rs = ~""; for self.each() |i| { if i { rs += ~"1"; } else { rs += ~"0"; } }; @@ -451,23 +485,23 @@ struct Bitv { } -/** - * Compare a bitvector to a vector of uint - * - * The uint vector is expected to only contain the values 0u and 1u. Both the - * bitvector and vector must have the same length - */ - fn eq_vec(v: ~[uint]) -> bool { - assert self.nbits == v.len(); - let mut i = 0; - while i < self.nbits { - let w0 = self.get(i); - let w1 = v[i]; - if !w0 && w1 != 0u || w0 && w1 == 0u { return false; } - i = i + 1; - } - true - } + /** + * Compare a bitvector to a vector of uint + * + * The uint vector is expected to only contain the values 0u and 1u. Both + * the bitvector and vector must have the same length + */ + fn eq_vec(v: ~[uint]) -> bool { + assert self.nbits == v.len(); + let mut i = 0; + while i < self.nbits { + let w0 = self.get(i); + let w1 = v[i]; + if !w0 && w1 != 0u || w0 && w1 == 0u { return false; } + i = i + 1; + } + true + } fn ones(f: fn(uint) -> bool) { for uint::range(0, self.nbits) |i| { @@ -477,7 +511,7 @@ struct Bitv { } } -} // end of bitv class +} /** * Transform a byte-vector into a bitv. Each byte becomes 8 bits,