# # # # # # # # # # # # # # # # # # # # # # # # # # # #
#  Framework provided by Daan de Graaf(UvA)           #
#  For Automaten en Formele Talen                     #
#  Under Guidance of Inge Bethke(UvA)                 #
#  Last edited 2018-04-15 by Bas van den Heuvel (UvA) #
# # # # # # # # # # # # # # # # # # # # # # # # # # # #

from TM import TM
import pickle
import sys


def main(program):
    try:
        exe = pickle.load(open(program, "rb"))
    except:
        exit('FileError: file "' + program + '" not found.')

    tm = TM()
    for sub in exe:
        print('------SUB-------')
        print(sub)
        tm.register = sub
        tm.run()
        # tm.printTape()

    print(tm.ram)

    for key in tm.ram:
        value = tm.ram[key]
        print(key + ': ' + str(len(value)))

if __name__ == '__main__':
    print(sys.argv[1])
    try:
        program = sys.argv[1]
    except:
        exit('RuntimeError: Use EXE.py [.exe]')

    main(program)
