#!/usr/bin/python3

from sys import argv
from os import listdir, remove
from os.path import basename
from re import match, sub

if len(argv) != 2:
    print("Usage:", argv[0], "filename.instrs")
    exit(-1)

ifn = argv[1]

ibn = basename(ifn)
icn = sub("\\.[^.]*", "", ibn)

n = 0
phn = None
buf = []
prevbuf = []

def flush():
    global n
    global phn
    global buf
    global prevbuf
    if len(buf) > 0 and phn != None:
        if prevbuf == [] or prevbuf != buf:
            n += 1
            fn = "{0}-{1:03}-{2}.instrs".format(icn, n, phn)
            print(fn)
            with open(fn, 'w') as of:
                of.writelines(buf)
    prevbuf = buf
    fn = None
    buf = []

fnpat = "{0}-[0-9][0-9][0-9]-.*\\.instrs".format(icn)
for fn in listdir("."):
    if match(fnpat, fn):
        print( "TBD:", fn)
        remove( fn)

with open(ifn) as f:
    for line in f.readlines():
        if match("# After .*:", line):
            flush()
            phn = sub("# After (.*):[\\r\\n]*", "\\1", line)
            phn = sub("[^a-zA-Z0-9]+", "-", phn)
        else:
            buf.append(line)

flush()
