def archivo_intermedio(self,extension): fo = File() name_file = "./salidas/"+self.file_name+".t"+extension print name_file fo1 = open(name_file,"w") fo.create_file(self.file_name,"t"+extension) self.delete_spaces() self.print_intr_code(fo) self.print_intr_code(fo1) self.print_symbols(fo) self.print_symbols(fo1) self.print_bloques(fo) self.print_bloques(fo1) fo.close() fo1.close()
def compile(self): self.save_file() self.set_statusBar_Text("Compilando") self.delete_salidas_file() if self.is_file_open(): self.fc = File() if self.fc.is_extension_valid(self.file,'s') or self.fc.is_extension_valid(self.file,'x') : self.file_name = self.fc.get_file_name(self.file) self.file_name = self.fc.name self.set_statusBar_Text("Compilando") os.system("python principal.py "+str(self.file)) self.set_statusBar_Text("Cargando archivo intermedio "+self.file_name) self.load_output_files() self.set_statusBar_Text("Se termino el ensablado de "+self.file_name) else: self.set_statusBar_Text("No se puede compilar el archivo no es un .s o .x") else: self.set_statusBar_Text("No hay un archivo por compilar")
def archivo_objeto(self,extension): fo = File() fo.create_file(self.file_name,"o"+extension) name_file = "./salidas/"+self.file_name+".o"+extension fo1 = open(name_file,"w") self.bloques.gen_table() len_program = self.bloques.get_len_program() self.step2.directive_start(self.name,len_program,self.pc[0]) self.step2.complete_register() self.step2.make_register_m(self.obj_code,self.pc,self.num_bloque,self.bloques) if not self.index == 0: self.step2.directive_end_segment() list_r = self.step2.all_registers() for s in list_r: fo.write(s+"\n") fo1.write(s+"\n") fo1.close() fo.close()
def ensambla(self,file): self.init() file_name = file fi = File() print "===============" if fi.open(file_name): text = fi.read() parser.seg.new_segment(fi.name) parser.extension = fi.extension text_file=self.new_line_filter(text) list_text = text_file.split("\n") parser.load_code(list_text) # scanner.entrada(text_file) # parser.scann.lineno = 1 parse.parse(text_file) if parser.num_errors() == 0: parse.pasada = 2 parser.seg.genera_tabla_bloques() parser.scann.lineno = 1 parser.scann.linea = 1 parse.last_index = 0 parser.seg.index = 0 parse.parse(text_file) parser.seg.print_results(fi.extension)