etc: update etc/unicode.py for the changes made to std::unicode.
This commit is contained in:
@@ -122,14 +122,14 @@ def ch_prefix(ix):
|
|||||||
|
|
||||||
def emit_bsearch_range_table(f):
|
def emit_bsearch_range_table(f):
|
||||||
f.write("""
|
f.write("""
|
||||||
pure fn bsearch_range_table(c: char, r: &[(char,char)]) -> bool {
|
fn bsearch_range_table(c: char, r: &'static [(char,char)]) -> bool {
|
||||||
use cmp::{EQ, LT, GT};
|
use cmp::{Equal, Less, Greater};
|
||||||
use vec::bsearch;
|
use vec::bsearch;
|
||||||
use option::None;
|
use option::None;
|
||||||
(do bsearch(r) |&(lo,hi)| {
|
(do bsearch(r) |&(lo,hi)| {
|
||||||
if lo <= c && c <= hi { EQ }
|
if lo <= c && c <= hi { Equal }
|
||||||
else if hi < c { LT }
|
else if hi < c { Less }
|
||||||
else { GT }
|
else { Greater }
|
||||||
}) != None
|
}) != None
|
||||||
}\n\n
|
}\n\n
|
||||||
""");
|
""");
|
||||||
@@ -140,7 +140,7 @@ def emit_property_module(f, mod, tbl):
|
|||||||
keys.sort()
|
keys.sort()
|
||||||
emit_bsearch_range_table(f);
|
emit_bsearch_range_table(f);
|
||||||
for cat in keys:
|
for cat in keys:
|
||||||
f.write(" const %s_table : &[(char,char)] = &[\n" % cat)
|
f.write(" static %s_table : &'static [(char,char)] = &[\n" % cat)
|
||||||
ix = 0
|
ix = 0
|
||||||
for pair in tbl[cat]:
|
for pair in tbl[cat]:
|
||||||
f.write(ch_prefix(ix))
|
f.write(ch_prefix(ix))
|
||||||
@@ -148,7 +148,7 @@ def emit_property_module(f, mod, tbl):
|
|||||||
ix += 1
|
ix += 1
|
||||||
f.write("\n ];\n\n")
|
f.write("\n ];\n\n")
|
||||||
|
|
||||||
f.write(" pub pure fn %s(c: char) -> bool {\n" % cat)
|
f.write(" pub fn %s(c: char) -> bool {\n" % cat)
|
||||||
f.write(" bsearch_range_table(c, %s_table)\n" % cat)
|
f.write(" bsearch_range_table(c, %s_table)\n" % cat)
|
||||||
f.write(" }\n\n")
|
f.write(" }\n\n")
|
||||||
f.write("}\n")
|
f.write("}\n")
|
||||||
@@ -159,7 +159,7 @@ def emit_property_module_old(f, mod, tbl):
|
|||||||
keys = tbl.keys()
|
keys = tbl.keys()
|
||||||
keys.sort()
|
keys.sort()
|
||||||
for cat in keys:
|
for cat in keys:
|
||||||
f.write(" pure fn %s(c: char) -> bool {\n" % cat)
|
f.write(" fn %s(c: char) -> bool {\n" % cat)
|
||||||
f.write(" ret alt c {\n")
|
f.write(" ret alt c {\n")
|
||||||
prefix = ' '
|
prefix = ' '
|
||||||
for pair in tbl[cat]:
|
for pair in tbl[cat]:
|
||||||
@@ -236,8 +236,22 @@ rf = open(r, "w")
|
|||||||
|
|
||||||
(canon_decomp, compat_decomp, gencats) = load_unicode_data("UnicodeData.txt")
|
(canon_decomp, compat_decomp, gencats) = load_unicode_data("UnicodeData.txt")
|
||||||
|
|
||||||
# Explain that the source code was generated by this script.
|
# Preamble
|
||||||
rf.write('// The following code was generated by "src/etc/unicode.py"\n\n')
|
rf.write('''// Copyright 2012-2013 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
// file at the top-level directory of this distribution and at
|
||||||
|
// http://rust-lang.org/COPYRIGHT.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
// option. This file may not be copied, modified, or distributed
|
||||||
|
// except according to those terms.
|
||||||
|
|
||||||
|
// The following code was generated by "src/etc/unicode.py"
|
||||||
|
|
||||||
|
#[allow(missing_doc)];
|
||||||
|
|
||||||
|
''')
|
||||||
|
|
||||||
emit_property_module(rf, "general_category", gencats)
|
emit_property_module(rf, "general_category", gencats)
|
||||||
|
|
||||||
|
|||||||
@@ -1447,10 +1447,8 @@ pub mod general_category {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub mod derived_property {
|
pub mod derived_property {
|
||||||
|
|
||||||
|
|
||||||
fn bsearch_range_table(c: char, r: &'static [(char,char)]) -> bool {
|
fn bsearch_range_table(c: char, r: &'static [(char,char)]) -> bool {
|
||||||
use cmp::{Equal, Less, Greater};
|
use cmp::{Equal, Less, Greater};
|
||||||
use vec::bsearch;
|
use vec::bsearch;
|
||||||
@@ -2641,4 +2639,5 @@ pub mod derived_property {
|
|||||||
pub fn XID_Start(c: char) -> bool {
|
pub fn XID_Start(c: char) -> bool {
|
||||||
bsearch_range_table(c, XID_Start_table)
|
bsearch_range_table(c, XID_Start_table)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user