#!/usr/bin/env python
# -*- coding: utf-8 -*-

from __future__ import print_function, unicode_literals
import argparse
from os.path import isfile
import re

from sasm.assembler import Assembler


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('-o', '--output', help='mif output file',
                        dest='outfile', default='')
    parser.add_argument('file', help='sasm file to assemble')

    args = parser.parse_args()

    if not isfile(args.file):
        raise SystemExit('Cannot find sasm file: {}'.format(args.file))

    assembler = Assembler()
    with open(args.file, 'rU') as sasm:
        assembler.load(sasm.read())
    result = assembler.compile()
    if args.outfile == '':
        print(result)
    else:
        with open(args.outfile, 'w') as mif:
            mif.write(result)
