erpt: add fixed-width format option

This commit is contained in:
Michael Scire 2020-09-23 17:52:08 -07:00
parent 5ac9e45d86
commit 1275eb0bf3

View file

@ -379,10 +379,10 @@ def flg_to_string(f):
return FIELD_FLAGS[f] if f in FIELD_FLAGS else 'FieldFlag_Unknown%d' % f return FIELD_FLAGS[f] if f in FIELD_FLAGS else 'FieldFlag_Unknown%d' % f
def main(argc, argv): def main(argc, argv):
if argc != 2: if argc != 2 and not (argc == 3 and argv[1] == '-f'):
print 'Usage: %s erpt_nso' % argv[0] print 'Usage: %s [-f] erpt_nso' % argv[0]
return 1 return 1
f = open(argv[1], 'rb') f = open(argv[-1], 'rb')
nxo = nxo64.load_nxo(f) nxo = nxo64.load_nxo(f)
full = get_full(nxo) full = get_full(nxo)
field_table = locate_fields(full) field_table = locate_fields(full)
@ -396,11 +396,13 @@ def main(argc, argv):
mc = max(len(cat_to_string(c)) for c in cats) mc = max(len(cat_to_string(c)) for c in cats)
mt = max(len(typ_to_string(t)) for t in types) mt = max(len(typ_to_string(t)) for t in types)
ml = max(len(flg_to_string(f)) for f in flags) ml = max(len(flg_to_string(f)) for f in flags)
if argc == 3:
mf, mc, mt, ml = (64, 48, 32, 32)
format_string = '- %%-%ds %%-%ds %%-%ds %%-%ds' % (mf+1, mc+1, mt+1, ml) format_string = '- %%-%ds %%-%ds %%-%ds %%-%ds' % (mf+1, mc+1, mt+1, ml)
for i in xrange(NUM_FIELDS): for i in xrange(NUM_FIELDS):
f, c, t, l = fields[i], cat_to_string(cats[i]), typ_to_string(types[i]), flg_to_string(flags[i]) f, c, t, l = fields[i], cat_to_string(cats[i]), typ_to_string(types[i]), flg_to_string(flags[i])
print format_string % (f+',', c+',', t+',', l) print format_string % (f+',', c+',', t+',', l)
with open(argv[1]+'.hpp', 'w') as out: with open(argv[-1]+'.hpp', 'w') as out:
out.write(HEADER) out.write(HEADER)
out.write('#define AMS_ERPT_FOREACH_FIELD_TYPE(HANDLER) \\\n') out.write('#define AMS_ERPT_FOREACH_FIELD_TYPE(HANDLER) \\\n')
for tp in sorted(list(set(types + FIELD_TYPES.keys()))): for tp in sorted(list(set(types + FIELD_TYPES.keys()))):