Exemplo n.º 1
0
 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()
Exemplo n.º 2
0
 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")
Exemplo n.º 3
0
 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()
Exemplo n.º 4
0
 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)