Separate the parsing and generation parts of MacroCollector
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
diff --git a/scripts/generate_psa_constants.py b/scripts/generate_psa_constants.py
index 4cb91df..64b3c9d 100755
--- a/scripts/generate_psa_constants.py
+++ b/scripts/generate_psa_constants.py
@@ -205,11 +205,8 @@
}\
'''
-class MacroCollector:
+class PSAMacroCollector:
"""Collect PSA crypto macro definitions from C header files.
-
- 1. Call `read_file` on the input header file(s).
- 2. Call `write_file` to write ``psa_constant_names_generated.c``.
"""
def __init__(self):
@@ -303,6 +300,13 @@
line = re.sub(self._nonascii_re, rb'', line).decode('ascii')
self.read_line(line)
+class CaseBuilder(PSAMacroCollector):
+ """Collect PSA crypto macro definitions and write value recognition functions.
+
+ 1. Call `read_file` on the input header file(s).
+ 2. Call `write_file` to write ``psa_constant_names_generated.c``.
+ """
+
@staticmethod
def _make_return_case(name):
return 'case %(name)s: return "%(name)s";' % {'name': name}
@@ -404,7 +408,7 @@
output_file.write(OUTPUT_TEMPLATE % data)
def generate_psa_constants(header_file_names, output_file_name):
- collector = MacroCollector()
+ collector = CaseBuilder()
for header_file_name in header_file_names:
with open(header_file_name, 'rb') as header_file:
collector.read_file(header_file)