diff options
author | Rangi <remy.oukaour+rangi@gmail.com> | 2020-08-09 13:49:34 -0400 |
---|---|---|
committer | Rangi <remy.oukaour+rangi@gmail.com> | 2020-08-09 13:49:34 -0400 |
commit | b7da8dbb0e2236f37e4b4c99b88598369da3a008 (patch) | |
tree | 7dd6391629d3c80572ed2af73205851d4122d72b /tools/read_charmap.py | |
parent | faa37936780b8e04733310024bd621a8f2c635cb (diff) |
tools/ contains what's needed to build the ROMs; utils/ contains disassembly utilites
Diffstat (limited to 'tools/read_charmap.py')
-rw-r--r-- | tools/read_charmap.py | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/tools/read_charmap.py b/tools/read_charmap.py deleted file mode 100644 index af290c3..0000000 --- a/tools/read_charmap.py +++ /dev/null @@ -1,42 +0,0 @@ -import os, io -from re import compile -from sys import stderr - -charmap_regex = compile('[ \t]*charmap[ \t]+"(.*?)",[ \t]*(\$[0-9A-Fa-f]{2}|%[01]{8}|[0-9]{3})') -# A charmap line is -# [ \t]* - zero or more space chars -# charmap - literal charmap -# [ \t]+ - one or more space chars -# "(.*?)" - a lazily-matched text identifier in quotes -# , - literal comma -# [ \t]* - zero or more space chars -# ( - either of -# \$[0-9A-Fa-f]{2} - two hexadecimal digits preceeded by literal $ -# %[01]{8} - eight dual digits preceeded by literal % -# [0-9]{3} - three decimal digits -# ) - -def parse_int(s): - # assumes integers are literal; no +-*/, etc - s = s.strip() - if s.startswith('$'): - return int(s[1:], 16) - if s.startswith('%'): - return int(s[1:], 2) - return int(s) - -def read_charmap(charmap_path): - charmap = {} - with io.open(charmap_path, 'r', encoding='utf-8') as f: - lines = f.readlines() - for line in lines: - m = charmap_regex.match(line) - if m is None: - continue - char = m.group(1) - value = parse_int(m.group(2)) - if value in charmap: - print('Value {0:s} already in charmap, dropping it in favor of first charmap entry'.format(m.group(2))) - continue - charmap[value] = char - return charmap |