diff --git a/py/makeqstrdata.py b/py/makeqstrdata.py
index 34413f0beb4640b87985f0521e6d8c3da3bbcdf2..2ec5a1fb69393261682c9b8f60a0ff2b4764a4d0 100644
--- a/py/makeqstrdata.py
+++ b/py/makeqstrdata.py
@@ -29,43 +29,15 @@ def compute_hash(qstr):
         hash = (hash * 33) ^ ord(char)
     return hash & 0xffff
 
-# given a list of (name,regex) pairs, find the first one that matches the given 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 = {}
     for infile in infiles:
         with open(infile, 'rt') as f:
-            line_number = 0
             for line in f:
-                line_number += 1
-                line = line.strip()
-
-                # ignore blank lines, comments and preprocessor directives
-                if len(line) == 0 or line.startswith('//') or line.startswith('#'):
-                    continue
-
-                # work out what kind of line it is
-                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)
-                    return False
-                elif match_kind != 'qstr':
-                    # not a line with a qstr
+                # is this a QSTR line?
+                match = re.match(r'^Q\((.+)\)$', line.strip())
+                if not match:
                     continue
 
                 # get the qstr value