diff options
Diffstat (limited to 'src/lib/netlist/build/create_lib_entries.py')
-rw-r--r-- | src/lib/netlist/build/create_lib_entries.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/lib/netlist/build/create_lib_entries.py b/src/lib/netlist/build/create_lib_entries.py new file mode 100644 index 00000000000..3d2d146fd98 --- /dev/null +++ b/src/lib/netlist/build/create_lib_entries.py @@ -0,0 +1,57 @@ +#!/usr/bin/python +## +## license:BSD-3-Clause +## copyright-holders:Couriersud + +import os +import os.path +import re +import sys +import xml.sax +import xml.sax.saxutils +import zlib + + +# workaround for version incompatibility +if sys.version_info > (3, ): + long = int + +# globals +devices = [] + +def process_file(srcfile): + src = open(srcfile,'r') + lines = src.readlines() + for line in lines: + ls = re.sub("\s+","",line.strip()) + ls = re.sub("^\s*//.*","",ls) + m = re.match(r"NETLIB_DEVICE_IMPL\((\w+),", ls) + #print("Line{}: {}".format(count, line.strip())) + if m != None: + n = m.group(1) + devices.append(n) + else: + m = re.match(r"NETLIB_DEVICE_IMPL_ALIAS\((\w+),", ls) + if m != None: + n = m.group(1) + devices.append(n) + else: + m = re.match(r"NETLIB_DEVICE_IMPL_NS\((\w+),(\w+),", ls) + if m != None: + n = m.group(2) + devices.append(n) + src.close() + +if __name__ == '__main__': + if (len(sys.argv) == 0): + print('Usage:') + print(' create_lib_entries.py files...') + sys.exit(0) + + for argno in range(1, len(sys.argv)): + process_file(sys.argv[argno]) + + devices.sort() + for d in devices: + print("LIB_ENTRY({})".format(d)) +
\ No newline at end of file |