|
@@ -50,7 +50,9 @@ def writeliteral(indent, bytes):
|
|
|
sys.stderr.write(f'unexpected start tag: {element.tag}\n')
|
|
|
exit(1)
|
|
|
|
|
|
+ feature_name = element.attrib['name']
|
|
|
regnum = 0
|
|
|
+ regnames = []
|
|
|
regnums = []
|
|
|
tags = ['feature']
|
|
|
for event, element in events:
|
|
@@ -67,6 +69,7 @@ def writeliteral(indent, bytes):
|
|
|
if 'regnum' in element.attrib:
|
|
|
regnum = int(element.attrib['regnum'])
|
|
|
|
|
|
+ regnames.append(element.attrib['name'])
|
|
|
regnums.append(regnum)
|
|
|
regnum += 1
|
|
|
|
|
@@ -85,6 +88,15 @@ def writeliteral(indent, bytes):
|
|
|
writeliteral(8, bytes(os.path.basename(input), 'utf-8'))
|
|
|
sys.stdout.write(',\n')
|
|
|
writeliteral(8, read)
|
|
|
- sys.stdout.write(f',\n {num_regs},\n }},\n')
|
|
|
+ sys.stdout.write(',\n')
|
|
|
+ writeliteral(8, bytes(feature_name, 'utf-8'))
|
|
|
+ sys.stdout.write(',\n (const char * const []) {\n')
|
|
|
+
|
|
|
+ for index, regname in enumerate(regnames):
|
|
|
+ sys.stdout.write(f' [{regnums[index] - base_reg}] =\n')
|
|
|
+ writeliteral(16, bytes(regname, 'utf-8'))
|
|
|
+ sys.stdout.write(',\n')
|
|
|
+
|
|
|
+ sys.stdout.write(f' }},\n {num_regs},\n }},\n')
|
|
|
|
|
|
sys.stdout.write(' { NULL }\n};\n')
|