From 3683789207c4f7fc4b2909eaad4139de0806bac0 Mon Sep 17 00:00:00 2001
From: Damien George <damien.p.george@gmail.com>
Date: Mon, 14 Apr 2014 23:38:37 +0100
Subject: [PATCH] py: Clean up and add comments to makeqstrdata.

---
 py/makeqstrdata.py | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/py/makeqstrdata.py b/py/makeqstrdata.py
index e0917b336..eaff11bd0 100644
--- a/py/makeqstrdata.py
+++ b/py/makeqstrdata.py
@@ -25,13 +25,20 @@ def compute_hash(qstr):
     return hash & 0xffff
 
 # 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:
         match = re.match(regex, line)
         if match:
             return name, match
     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):
     # read the qstrs in from the input files
     qstrs = {}
@@ -47,7 +54,7 @@ def do_work(infiles):
                     continue
 
                 # 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:
                     # unknown line format
                     print('({}:{}) bad qstr format, got {}'.format(infile, line_number, line), file=sys.stderr)
-- 
GitLab