Skip to content
Snippets Groups Projects
Commit 36837892 authored by Damien George's avatar Damien George
Browse files

py: Clean up and add comments to makeqstrdata.

parent bc9ec500
Branches
No related tags found
No related merge requests found
...@@ -25,13 +25,20 @@ def compute_hash(qstr): ...@@ -25,13 +25,20 @@ def compute_hash(qstr):
return hash & 0xffff return hash & 0xffff
# given a list of (name,regex) pairs, find the first one that matches the given line # given a list of (name,regex) pairs, find the first one that matches the given line
def re_match(regexs, line): def re_match_first(regexs, line):
for name, regex in regexs: for name, regex in regexs:
match = re.match(regex, line) match = re.match(regex, line)
if match: if match:
return name, match return name, match
return None, None return None, None
# regexs to recognise lines that the CPP emits
# use a list so that matching order is honoured
cpp_regexs = [
('qstr', r'Q\((.+)\)$'),
('cdecl', r'(typedef|extern) [A-Za-z0-9_* ]+;$')
]
def do_work(infiles): def do_work(infiles):
# read the qstrs in from the input files # read the qstrs in from the input files
qstrs = {} qstrs = {}
...@@ -47,7 +54,7 @@ def do_work(infiles): ...@@ -47,7 +54,7 @@ def do_work(infiles):
continue continue
# work out what kind of line it is # work out what kind of line it is
match_kind, match = re_match([('qstr', r'Q\((.+)\)$'), ('cdecl', r'(typedef|extern) [A-Za-z0-9_* ]+;$')], line) match_kind, match = re_match_first(cpp_regexs, line)
if match_kind is None: if match_kind is None:
# unknown line format # unknown line format
print('({}:{}) bad qstr format, got {}'.format(infile, line_number, line), file=sys.stderr) print('({}:{}) bad qstr format, got {}'.format(infile, line_number, line), file=sys.stderr)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment