diff options
Diffstat (limited to 'src/make_unicode_fold_data.py')
-rwxr-xr-x | src/make_unicode_fold_data.py | 74 |
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: |