diff options
Diffstat (limited to 'src/lib/netlist/build/create_devinc.py')
-rw-r--r-- | src/lib/netlist/build/create_devinc.py | 48 |
1 files changed, 39 insertions, 9 deletions
diff --git a/src/lib/netlist/build/create_devinc.py b/src/lib/netlist/build/create_devinc.py index 8e95c071dce..6888d71183f 100644 --- a/src/lib/netlist/build/create_devinc.py +++ b/src/lib/netlist/build/create_devinc.py @@ -20,7 +20,7 @@ if sys.version_info > (3, ): last_src = "" -def process_entry(srcfile, name, params): +def process_srcfile(srcfile): global last_src if (last_src != srcfile): last_src = srcfile @@ -28,6 +28,13 @@ def process_entry(srcfile, name, params): print("// Source: {}".format(srcfile)) print("// ---------------------------------------------------------------------") print("") + +def process_entry_external(srcfile, name): + process_srcfile(srcfile) + print("NETLIST_EXTERNAL({})".format(name)) + +def process_entry(srcfile, name, params): + process_srcfile(srcfile) p = re.sub("\+","",params) ps = p.split(",") pusage = "" @@ -54,36 +61,59 @@ def process_file(srcfile): ls = re.sub("\"","",ls) m = re.match(r"NETLIB_DEVICE_IMPL\((\w+),(\w+),([a-zA-Z0-9_+@,]*)", ls) #print("Line{}: {}".format(count, line.strip())) - if m != None: + if m is not None: process_entry(srcfile, m.group(2), m.group(3)) else: m = re.match(r"NETLIB_DEVICE_IMPL_ALIAS\((\w+),(\w+),(\w+),([a-zA-Z0-9_+@,]*)", ls) - if m != None: + if m is not None: process_entry(srcfile, m.group(3), m.group(4)) else: m = re.match(r"NETLIB_DEVICE_IMPL_NS\((\w+),(\w+),(\w+),([a-zA-Z0-9_+@,]*)", ls) - if m != None: + if m is not None: process_entry(srcfile, m.group(3), m.group(4)) else: m = re.match(r"LOCAL_LIB_ENTRY\((\w+)\)", ls) - if m != None: + if m is not None: process_entry(srcfile, m.group(1), "") else: - m = re.match(r"(static)*TRUTHTABLE_START\((\w+),(\w+),(\w+),([a-zA-Z0-9_+@,]*)", ls) - if m != None: + m = re.match(r"(static)*TRUTH_TABLE\((\w+),(\w+),(\w+),([a-zA-Z0-9_+@,]*)", ls) + if m is not None: process_entry(srcfile, m.group(2), m.group(5)) + else: + #m = re.match(r"EXTERNAL_SOURCE\((\w+)\)", ls) + m = re.match(r"NETLIST_START\((\w+)\)", ls) + if m is not None: + process_entry_external(srcfile, m.group(1)) src.close() +def file_header(): + print("// license:BSD-3-Clause") + print("// copyright-holders:Couriersud") + print("") + print("#ifndef NLD_DEVINC_H") + print("#define NLD_DEVINC_H") + print("") + print("#ifndef __PLIB_PREPROCESSOR__\n") + print("") + print("#include \"../nl_setup.h\"") + print("") + +def file_footer(): + print("#endif // __PLIB_PREPROCESSOR__\n") + print("#endif // NLD_DEVINC_H\n") + if __name__ == '__main__': if (len(sys.argv) == 0): print('Usage:') print(' create_devinc files ...') sys.exit(0) - files_sorted = []; + files_sorted = [] for argno in range(1, len(sys.argv)): files_sorted.append(sys.argv[argno]) - files_sorted.sort(); + files_sorted.sort() + file_header() for entry in files_sorted: process_file(entry) + file_footer() |