summaryrefslogtreecommitdiff
path: root/py/makeqstrdefs.py
diff options
context:
space:
mode:
authorDan Halbert <halbert@halwitz.org>2018-07-11 16:45:30 -0400
committerDan Halbert <halbert@halwitz.org>2018-07-11 16:45:30 -0400
commit7c219600a246d8956d0b23ea3f5d125a820e6b6a (patch)
tree4cf793a66284322d48a8f430815c31cd1c9ffa1d /py/makeqstrdefs.py
parent4962468ffffac9ec4e36b2b1fc3f132516df3127 (diff)
parent25ae98f07cb3c4488cb955403dfe56b8bb8db6f0 (diff)
WIP: after merge; before testing
Diffstat (limited to 'py/makeqstrdefs.py')
-rw-r--r--py/makeqstrdefs.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/py/makeqstrdefs.py b/py/makeqstrdefs.py
index 0a45c585a..4253c1147 100644
--- a/py/makeqstrdefs.py
+++ b/py/makeqstrdefs.py
@@ -73,12 +73,16 @@ def qstr_unescape(qstr):
return qstr
def process_file(f):
+ re_line = re.compile(r"#[line]*\s\d+\s\"([^\"]+)\"")
+ re_qstr = re.compile(r'MP_QSTR_[_a-zA-Z0-9]+')
output = []
last_fname = None
for line in f:
+ if line.isspace():
+ continue
# match gcc-like output (# n "file") and msvc-like output (#line n "file")
- if line and (line[0:2] == "# " or line[0:5] == "#line"):
- m = re.match(r"#[line]*\s\d+\s\"([^\"]+)\"", line)
+ if line.startswith(('# ', '#line')):
+ m = re_line.match(line)
assert m is not None
fname = m.group(1)
if not fname.endswith(".c"):
@@ -88,7 +92,7 @@ def process_file(f):
output = []
last_fname = fname
continue
- for match in re.findall(r'MP_QSTR_[_a-zA-Z0-9]+', line):
+ for match in re_qstr.findall(line):
name = match.replace('MP_QSTR_', '')
if name not in QSTRING_BLACK_LIST:
output.append('Q(' + qstr_unescape(name) + ')')