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())
Example #2
0
def main():
    file_name = "".join(sys.argv[1].split(".")[:-1])
    ext = ".asm"
    with open(file_name + ext, "w") as write_file:
        with open(sys.argv[1], encoding="UTF-8") as read_file:
            translator = Translator(file_name.split("\\")[-1].split("/")[-1])
            for line in read_file:
                print(f'Line {line}')
                value = translator.interpret(line[:-1])
                print(value)
                write_file.write(value)
            write_file.write(translator.finish())