From: Clifford Wolf Date: Fri, 26 Apr 2019 14:38:36 +0000 (+0200) Subject: Support multiple pmg files (right now just concatenated together) X-Git-Tag: yosys-0.9~155^2~9 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=32881a989c2eb2cc73e224e6dc20dc3949f90e55;p=yosys.git Support multiple pmg files (right now just concatenated together) Signed-off-by: Clifford Wolf --- diff --git a/passes/pmgen/pmgen.py b/passes/pmgen/pmgen.py index d9747b065..edc1ad7fe 100644 --- a/passes/pmgen/pmgen.py +++ b/passes/pmgen/pmgen.py @@ -3,14 +3,34 @@ import re import sys import pprint +import getopt pp = pprint.PrettyPrinter(indent=4) -pmgfile = sys.argv[1] -assert pmgfile.endswith(".pmg") -prefix = pmgfile[0:-4] -prefix = prefix.split('/')[-1] -outfile = sys.argv[2] +prefix = None +pmgfiles = list() +outfile = None + +opts, args = getopt.getopt(sys.argv[1:], "p:o:") + +for o, a in opts: + if o == "-p": + prefix = o + elif o == "-o": + outfile = a + +if outfile is None: + outfile = args[-1] + args = args[0:-1] + +for a in args: + assert a.endswith(".pmg") + if prefix is None and len(args) == 1: + prefix = a[0:-4] + prefix = prefix.split('/')[-1] + pmgfiles.append(a) + +assert prefix is not None state_types = dict() udata_types = dict() @@ -77,7 +97,7 @@ def rewrite_cpp(s): return "".join(t) -with open(pmgfile, "r") as f: +def process_pmgfile(f): while True: line = f.readline() if line == "": break @@ -180,6 +200,10 @@ with open(pmgfile, "r") as f: blocks.append(block) +for fn in pmgfiles: + with open(fn, "r") as f: + process_pmgfile(f) + with open(outfile, "w") as f: print("// Generated by pmgen.py from {}.pgm".format(prefix), file=f) print("", file=f)