|
|
@@ -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): |