summaryrefslogtreecommitdiff
path: root/src/make_unicode_fold_data.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/make_unicode_fold_data.py')
-rwxr-xr-xsrc/make_unicode_fold_data.py74
1 files changed, 37 insertions, 37 deletions
diff --git a/src/make_unicode_fold_data.py b/src/make_unicode_fold_data.py
index a73a8a4..1600021 100755
--- a/src/make_unicode_fold_data.py
+++ b/src/make_unicode_fold_data.py
@@ -1,7 +1,7 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# make_unicode_fold_data.py
-# Copyright (c) 2016-2021 K.Kosako
+# Copyright (c) 2016-2023 K.Kosako
import sys
import re
@@ -30,7 +30,7 @@ LOCALE_UNFOLDS = {}
COPYRIGHT = '''
/*-
- * Copyright (c) 2017-2021 K.Kosako
+ * Copyright (c) 2017-2023 K.Kosako
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -182,12 +182,12 @@ typedef unsigned long OnigCodePoint;
def divide_by_fold_len(d):
l = d.items()
- l1 = filter(lambda (k,e):e.fold_len == 1, l)
- l2 = filter(lambda (k,e):e.fold_len == 2, l)
- l3 = filter(lambda (k,e):e.fold_len == 3, l)
- sl1 = sorted(l1, key=lambda (k,e):k)
- sl2 = sorted(l2, key=lambda (k,e):k)
- sl3 = sorted(l3, key=lambda (k,e):k)
+ l1 = filter(lambda x:x[1].fold_len == 1, l)
+ l2 = filter(lambda x:x[1].fold_len == 2, l)
+ l3 = filter(lambda x:x[1].fold_len == 3, l)
+ sl1 = sorted(l1, key=lambda x:x[0])
+ sl2 = sorted(l2, key=lambda x:x[0])
+ sl3 = sorted(l3, key=lambda x:x[0])
return (sl1, sl2, sl3)
def output_comment(f, s):
@@ -198,7 +198,7 @@ def output_data_n1(f, n, fn, c, out_comment):
e.index = c
if out_comment and n > 1 and e.comment is not None:
output_comment(f, e.comment)
- print >> f, ''
+ print('', file=f)
f.write(' ')
f.write("/*%4d*/ " % c)
@@ -226,25 +226,25 @@ def output_data_n1(f, n, fn, c, out_comment):
return c
def output_data_n(f, name, n, fn, lfn, out_comment):
- print >> f, "OnigCodePoint %s%d[] = {" % (name, n)
+ print("OnigCodePoint %s%d[] = {" % (name, n), file=f)
c = 0
c = output_data_n1(f, n, fn, c, out_comment)
- print >> f, "#define FOLDS%d_NORMAL_END_INDEX %d" % (n, c)
- print >> f, " /* ----- LOCALE ----- */"
+ print("#define FOLDS%d_NORMAL_END_INDEX %d" % (n, c), file=f)
+ print(" /* ----- LOCALE ----- */", file=f)
c = output_data_n1(f, n, lfn, c, out_comment)
- print >> f, "#define FOLDS%d_END_INDEX %d" % (n, c)
- print >> f, "};"
+ print("#define FOLDS%d_END_INDEX %d" % (n, c), file=f)
+ print("};", file=f)
def output_fold_data(f, name, out_comment):
f1, f2, f3 = divide_by_fold_len(FOLDS)
lf1, lf2, lf3 = divide_by_fold_len(LOCALE_FOLDS)
output_data_n(f, name, 1, f1, lf1, out_comment)
- print >> f, ''
+ print('', file=f)
output_data_n(f, name, 2, f2, lf2, out_comment)
- print >> f, ''
+ print('', file=f)
output_data_n(f, name, 3, f3, lf3, out_comment)
- print >> f, ''
+ print('', file=f)
def output_macros(f, name):
print >> f, "#define FOLDS1_FOLD(i) (%s1 + (i))" % name
@@ -264,18 +264,18 @@ def output_macros(f, name):
print >> f, "#define FOLDS3_NEXT_INDEX(i) ((i) + 4 + %s1[(i)+3])" % name
def output_fold_source(f, out_comment):
- print >> f, "/* This file was generated by make_unicode_fold_data.py. */"
- print >> f, COPYRIGHT
- print >> f, "\n"
- print >> f, '#include "regenc.h"'
- print >> f, ''
+ print("/* This file was generated by make_unicode_fold_data.py. */", file=f)
+ print(COPYRIGHT, file=f)
+ print("\n", file=f)
+ print('#include "regenc.h"', file=f)
+ print('', file=f)
if VERSION_INFO[0] < 0:
raise RuntimeError("Version is not found")
- print "#define UNICODE_CASEFOLD_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2])
- print ''
+ print("#define UNICODE_CASEFOLD_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2]))
+ print('')
#output_macros(f, DataName)
- print >> f, ''
+ print('', file=f)
#output_typedef(f)
output_fold_data(f, DataName, out_comment)
@@ -296,12 +296,12 @@ struct ByUnfoldKey {
f.write(head)
UNFOLDS.update(LOCALE_UNFOLDS)
l = UNFOLDS.items()
- sl = sorted(l, key=lambda (k,e):(e.fold_len, e.index))
+ sl = sorted(l, key=lambda x:(x[1].fold_len, x[1].index))
for k, e in sl:
f.write('"%s", /*0x%04x*/ %4d, %d\n' %
(form3bytes(k), k, e.index, e.fold_len))
- print >> f, '%%'
+ print('%%', file=f)
def output_gperf_fold_key(f, key_len):
head = "%{\n/* This gperf source file was generated by make_unicode_fold_data.py */\n\n" + COPYRIGHT + """\
@@ -314,13 +314,13 @@ short int
"""
f.write(head)
l = FOLDS.items()
- l = filter(lambda (k,e):e.fold_len == key_len, l)
- sl = sorted(l, key=lambda (k,e):e.index)
+ l = filter(lambda x:x[1].fold_len == key_len, l)
+ sl = sorted(l, key=lambda x:x[1].index)
for k, e in sl:
skey = ''.join(map(lambda i: form3bytes(i), e.fold))
f.write('"%s", %4d\n' % (skey, e.index))
- print >> f, '%%'
+ print('%%', file=f)
def output_gperf_source():
with open(GPERF_UNFOLD_KEY_FILE, 'w') as f:
@@ -334,7 +334,7 @@ def output_gperf_source():
def unfolds_byte_length_check(encode):
l = UNFOLDS.items()
- sl = sorted(l, key=lambda (k,e):(e.fold_len, e.index))
+ sl = sorted(l, key=lambda x:(x[1].fold_len, x[1].index))
for unfold, e in sl:
key_len = enc_len(unfold, encode)
fold_len = sum(map(lambda c: enc_len(c, encode), e.fold))
@@ -345,7 +345,7 @@ def unfolds_byte_length_check(encode):
def double_fold_check():
l = UNFOLDS.items()
- sl = sorted(l, key=lambda (k,e):(e.fold_len, e.index))
+ sl = sorted(l, key=lambda x:(x[1].fold_len, x[1].index))
for unfold, e in sl:
for f in e.fold:
#print >> sys.stderr, ("check 0x%06x" % f)
@@ -356,9 +356,9 @@ def double_fold_check():
def unfold_is_multi_code_folds_head_check():
l = UNFOLDS.items()
- l2 = filter(lambda (k,e):e.fold_len == 2, l)
- l3 = filter(lambda (k,e):e.fold_len == 3, l)
- sl = sorted(l, key=lambda (k,e):(e.fold_len, e.index))
+ l2 = filter(lambda x:x[1].fold_len == 2, l)
+ l3 = filter(lambda x:x[1].fold_len == 3, l)
+ sl = sorted(l, key=lambda x:(x[1].fold_len, x[1].index))
for unfold, _ in sl:
for k, e in l2:
if e.fold[0] == unfold:
@@ -454,7 +454,7 @@ def get_all_folds_expansion_max_num():
one_folds = make_one_folds(l)
fold2_heads = make_foldn_heads(l, 2, one_folds)
fold3_heads = make_foldn_heads(l, 3, one_folds)
- sl = sorted(l, key=lambda (k,e):(e.fold_len, e.index))
+ sl = sorted(l, key=lambda x:(x[1].fold_len, x[1].index))
nmax = 0
max_unfold = None
for unfold, e in sl: