Support multiple pmg files (right now just concatenated together)

Signed-off-by: Clifford Wolf <clifford@clifford.at>
This commit is contained in:
Clifford Wolf 2019-04-26 16:38:36 +02:00
parent 408161ea3a
commit 32881a989c
1 changed files with 30 additions and 6 deletions

View File

@ -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)