diff options
author | Clifford Wolf <clifford@clifford.at> | 2019-04-26 16:38:36 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2019-04-29 12:09:02 +0200 |
commit | 32881a989c2eb2cc73e224e6dc20dc3949f90e55 (patch) | |
tree | 312a6c41b961880d7b9c6aad41b9aa8680023e45 | |
parent | 408161ea3af78c747b9d45cd6482f2e4d9170085 (diff) | |
download | yosys-32881a989c2eb2cc73e224e6dc20dc3949f90e55.tar.gz yosys-32881a989c2eb2cc73e224e6dc20dc3949f90e55.tar.bz2 yosys-32881a989c2eb2cc73e224e6dc20dc3949f90e55.zip |
Support multiple pmg files (right now just concatenated together)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
-rw-r--r-- | passes/pmgen/pmgen.py | 36 |
1 files changed, 30 insertions, 6 deletions
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) |