Exemplo n.º 1
0
def load_file(jack_filename):
    jack_file = open(jack_filename, 'r')
    xml_filename = jack_filename.replace('.jack', '.xml')
    xml_file = open(xml_filename, 'a')
    compilation_engine = CompilationEngine(jack_file, xml_file)
    compilation_engine.compile_class()
    compilation_engine.save()
    jack_file.close()
    xml_file.close()
Exemplo n.º 2
0
def compile(file_name, analyze):
    vm_name = file_name.parent.joinpath(file_name.stem + VM)
    xml_name = file_name.parent.joinpath(file_name.stem +
                                         XML) if analyze else None

    tokenizer = JackTokenizer(file_name)
    engine = CompilationEngine(tokenizer, vm_name, xml_name)
    print('compiling {file}'.format(file=file_name))
    engine.compile_class()
    engine.write()
    print('Successfully compiled {file} to {output}'.format(file=file_name,
                                                            output=vm_name))
Exemplo n.º 3
0
 def analyze(self):
    # for each source filename, compile the class
    for source_filename in self.source_filenames:
       compiler = CompilationEngine(source_filename)
       compiler.compile_class()
Exemplo n.º 4
0
    def __init__(self, file_path):
        self.jack_files = self.parse_argv(file_path)

        for jack_file in self.jack_files:
            compiler = CompilationEngine(jack_file)
            compiler.compile_class()