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()
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))
def analyze(self): # for each source filename, compile the class for source_filename in self.source_filenames: compiler = CompilationEngine(source_filename) compiler.compile_class()
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()