diff options
Diffstat (limited to 'src/make_unicode_property_data.py')
-rwxr-xr-x | src/make_unicode_property_data.py | 82 |
1 files changed, 41 insertions, 41 deletions
diff --git a/src/make_unicode_property_data.py b/src/make_unicode_property_data.py index d30a92b..11c453b 100755 --- a/src/make_unicode_property_data.py +++ b/src/make_unicode_property_data.py @@ -1,7 +1,7 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # make_unicode_property_data.py -# Copyright (c) 2016-2022 K.Kosako +# Copyright (c) 2016-2023 K.Kosako import sys import re @@ -46,31 +46,31 @@ def fix_block_name(name): def print_ranges(ranges): for (start, end) in ranges: - print "0x%06x, 0x%06x" % (start, end) + print("0x%06x, 0x%06x" % (start, end)) - print len(ranges) + print(len(ranges)) def print_prop_and_index(prop, i): - print "%-35s %3d" % (prop + ',', i) + print("%-35s %3d" % (prop + ',', i)) PropIndex[prop] = i PRINT_CACHE = { } def print_property(prop, data, desc): - print '' - print "/* PROPERTY: '%s': %s */" % (prop, desc) + print('') + print("/* PROPERTY: '%s': %s */" % (prop, desc)) prev_prop = dic_find_by_value(PRINT_CACHE, data) if prev_prop is not None: - print "#define CR_%s CR_%s" % (prop, prev_prop) + print("#define CR_%s CR_%s" % (prop, prev_prop)) else: PRINT_CACHE[prop] = data - print "static const OnigCodePoint" - print "CR_%s[] = { %d," % (prop, len(data)) + print("static const OnigCodePoint") + print("CR_%s[] = { %d," % (prop, len(data))) for (start, end) in data: - print "0x%04x, 0x%04x," % (start, end) + print("0x%04x, 0x%04x," % (start, end)) - print "}; /* END of CR_%s */" % prop + print("}; /* END of CR_%s */" % prop) def dic_find_by_value(dic, v): @@ -100,7 +100,7 @@ def normalize_ranges(in_ranges, sort=False): r = [] prev = None for (start, end) in ranges: - if prev >= start - 1: + if prev is not None and prev >= start - 1: (pstart, pend) = r.pop() end = max(pend, end) start = pstart @@ -175,14 +175,14 @@ def merge_dic(to_dic, from_dic): from_keys = from_dic.keys() common = list(set(to_keys) & set(from_keys)) if len(common) != 0: - print >> sys.stderr, "merge_dic: collision: %s" % sorted(common) + print("merge_dic: collision: %s" % sorted(common), file=sys.stderr) to_dic.update(from_dic) def merge_props(to_props, from_props): common = list(set(to_props) & set(from_props)) if len(common) != 0: - print >> sys.stderr, "merge_props: collision: %s" % sorted(common) + print("merge_props: collision: %s" % sorted(common), file=sys.stderr) to_props.extend(from_props) @@ -406,7 +406,7 @@ def set_max_prop_name(name): def entry_prop_name(name, index): set_max_prop_name(name) if OUTPUT_LIST_MODE and index >= len(POSIX_LIST): - print >> UPF, "%s" % (name) + print("%s" % (name), file=UPF) def entry_and_print_prop_and_index(name, index): entry_prop_name(name, index) @@ -426,7 +426,7 @@ argc = len(argv) COPYRIGHT = ''' /*- - * Copyright (c) 2016-2022 K.Kosako + * Copyright (c) 2016-2023 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -462,7 +462,7 @@ for i in range(1, argc): elif arg == '-gc': INCLUDE_GRAPHEME_CLUSTER_DATA = True else: - print >> sys.stderr, "Invalid argument: %s" % arg + print("Invalid argument: %s" % arg, file=sys.stderr) OUTPUT_LIST_MODE = not(POSIX_ONLY) @@ -519,9 +519,9 @@ PROPS = sorted(PROPS) s = '''%{ /* Generated by make_unicode_property_data.py. */ ''' -print s -print COPYRIGHT -print '' +print(s) +print(COPYRIGHT) +print('') for prop in POSIX_LIST: if prop == 'PosixPunct': @@ -531,7 +531,7 @@ for prop in POSIX_LIST: print_property(prop, DIC[prop], desc) -print '' +print('') if not(POSIX_ONLY): for prop in PROPS: @@ -551,18 +551,18 @@ if not(POSIX_ONLY): print_property(block, DIC[block], 'Block') -print '' -print "static const OnigCodePoint*\nconst CodeRanges[] = {" +print('') +print("static const OnigCodePoint*\nconst CodeRanges[] = {") for prop in POSIX_LIST: - print " CR_%s," % prop + print(" CR_%s," % prop) if not(POSIX_ONLY): for prop in PROPS: - print " CR_%s," % prop + print(" CR_%s," % prop) for prop in BLOCKS: - print " CR_%s," % prop + print(" CR_%s," % prop) s = '''}; @@ -585,8 +585,8 @@ if OUTPUT_LIST_MODE: if EMOJI_VERSION_INFO[0] < 0: raise RuntimeError("Emoji Version is not found") - print >> UPF, "Unicode Properties (Unicode Version: %d.%d.%d, Emoji: %d.%d)" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2], EMOJI_VERSION_INFO[0], EMOJI_VERSION_INFO[1]) - print >> UPF, '' + print("Unicode Properties (Unicode Version: %d.%d.%d, Emoji: %d.%d)" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2], EMOJI_VERSION_INFO[0], EMOJI_VERSION_INFO[1]), file=UPF) + print('', file=UPF) index = -1 for prop in POSIX_LIST: @@ -598,16 +598,16 @@ if not(POSIX_ONLY): index += 1 entry_and_print_prop_and_index(prop, index) - NALIASES = map(lambda (k,v):(normalize_prop_name(k), k, v), ALIASES.items()) + NALIASES = map(lambda x:(normalize_prop_name(x[0]), x[0], x[1]), ALIASES.items()) NALIASES = sorted(NALIASES) for (nk, k, v) in NALIASES: nv = normalize_prop_name(v) if PropIndex.get(nk, None) is not None: - print >> sys.stderr, "ALIASES: already exists: %s => %s" % (k, v) + print("ALIASES: already exists: %s => %s" % (k, v), file=sys.stderr) continue aindex = PropIndex.get(nv, None) if aindex is None: - #print >> sys.stderr, "ALIASES: value is not exist: %s => %s" % (k, v) + #print("ALIASES: value is not exist: %s => %s" % (k, v), file=sys.stderr) continue entry_prop_name(k, aindex) @@ -617,26 +617,26 @@ if not(POSIX_ONLY): index += 1 entry_and_print_prop_and_index(name, index) -print '%%' -print '' +print('%%') +print('') if not(POSIX_ONLY): if VERSION_INFO[0] < 0: raise RuntimeError("Unicode Version is not found") if EMOJI_VERSION_INFO[0] < 0: raise RuntimeError("Emoji Version is not found") - print "#define UNICODE_PROPERTY_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2]) - print "#define UNICODE_EMOJI_VERSION %02d%02d" % (EMOJI_VERSION_INFO[0], EMOJI_VERSION_INFO[1]) - print '' + print("#define UNICODE_PROPERTY_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2])) + print("#define UNICODE_EMOJI_VERSION %02d%02d" % (EMOJI_VERSION_INFO[0], EMOJI_VERSION_INFO[1])) + print('') -print "#define PROPERTY_NAME_MAX_SIZE %d" % (PROPERTY_NAME_MAX_LEN + 10) -print "#define CODE_RANGES_NUM %d" % (index + 1) +print("#define PROPERTY_NAME_MAX_SIZE %d" % (PROPERTY_NAME_MAX_LEN + 10)) +print("#define CODE_RANGES_NUM %d" % (index + 1)) index_props = make_reverse_dic(PropIndex) -print '' +print('') for i in range(index + 1): for p in index_props[i]: - print "#define PROP_INDEX_%s %d" % (p.upper(), i) + print("#define PROP_INDEX_%s %d" % (p.upper(), i)) if OUTPUT_LIST_MODE: UPF.close() |