source: proto/charsetcompiler/UCD/general_category.py @ 4373

Last change on this file since 4373 was 4071, checked in by cameron, 5 years ago

Restructuring; if-test simplification; odd/even ranges for Lu/Ll?

File size: 1.1 KB
Line 
1#
2# Licensed under Open Software License 3.0.
3import re
4
5Unicode_point_regexp = re.compile("^([0-9A-F]{4,6})\s+;\s+([A-Z][a-z0-9])\s+#")
6Unicode_range_regexp = re.compile("^([0-9A-F]{4,6})[.][.]([0-9A-F]{4,6})\s+;\s+([A-Z][a-z0-9])\s+#")
7
8
9def parse_general():
10  category_size = {}
11  category_def = {}
12  f = open("UCD/DerivedGeneralCategory.txt")
13  lines = f.readlines()
14  for t in lines:
15    m = Unicode_point_regexp.match(t)
16    if m:
17      point = m.group(1)
18      category = m.group(2)
19      if not category_size.has_key(category):
20        category_size[category] = 0
21        category_def[category] = []
22      pval = int(point, 16)
23      category_def[category].append((pval, pval))
24      category_size[category] += 1     
25    m = Unicode_range_regexp.match(t)
26    if m:
27      point1 = m.group(1)
28      point2 = m.group(2)
29      category = m.group(3)
30      if not category_size.has_key(category):
31        category_size[category] = 0
32        category_def[category] = []
33      pval1 = int(point1, 16)
34      pval2 = int(point2, 16)
35      category_def[category].append((pval1, pval2))
36      category_size[category] += 1
37  return (category_size, category_def)
38  f.close()
39
40
Note: See TracBrowser for help on using the repository browser.