Example #1
0
def main(args):
    filenames = []
    is_sys_present = False
    path = os.path.abspath(args[1])
    if os.path.isdir(path):
        additional, is_sys_present = parse_dir(path)
        filenames.extend(additional)
        output = os.path.join(path, f"{os.path.basename(path)}.asm")
    else:
        filenames.append(path)
        output = path[:-3] + ".asm"
        if os.path.basename(path) == 'Sys.vm':
            is_sys_present = True

    translator = Translator("")
    with open(output, 'w') as output_file:
        if is_sys_present:
            output_file.write(translator.bootstrap())
        for filename in filenames:
            translator.filename = os.path.basename(filename[:-3])
            with open(os.path.join(path, filename)) as input_file:
                for line in input_file:
                    translated = translator.interpret(line[:-1])
                    output_file.write(translated)
        output_file.write(translator.finish())