diff --git a/tools/ucd.py b/tools/ucd.py index 4940423b..69a4189e 100755 --- a/tools/ucd.py +++ b/tools/ucd.py @@ -22,17 +22,19 @@ import sys class CodePoint: def __init__(self, x): - self.codepoint = x + self.codepoint = int(x, 16) def __repr__(self): - return self.codepoint + return '%04X' % self.codepoint def __str__(self): - return self.codepoint + return '%04X' % self.codepoint class CodeRange: def __init__(self, x): - self.first, self.last = x.split('..') + f, l = x.split('..') + self.first = CodePoint(f) + self.last = CodePoint(l) def __repr__(self): return '%s..%s' % (self.first, self.last) @@ -40,11 +42,16 @@ class CodeRange: def __str__(self): return '%s..%s' % (self.first, self.last) + def size(self): + return self.last.codepoint - self.first.codepoint + 1 + def codepoint(x): if '..' in x: return CodeRange(x) if ' ' in x: return [CodePoint(c) for c in x.split()] + if x == '': + return None return CodePoint(x) def string(x):