def send_data(): print("Analizando Entrada:") print("==============================================") reporteerrores = [] contenido = Tentrada.get(1.0, 'end') Tsalida.delete("1.0", "end") Tsalida.configure(state='normal') Tsalida.insert(INSERT, "Salida de consultas") Tsalida.configure(state='disabled') #print(contenido) g.parse(contenido) reporte_lex_sin()
def send_data(): print("Analizando Entrada:") print("==============================================") # reporteerrores = [] contenido = Tentrada.get(1.0, 'end') variables.consola.delete("1.0", "end") variables.consola.configure(state='normal') # print(contenido) Principal = Entorno() jsonMode.dropAll() # Principal.database = "DB1" instrucciones = g.parse(contenido) variables.consola.insert(INSERT, "Salida de consultas\n") for instr in instrucciones: if instr != None: instr.ejecutar(Principal) string = str(instr) intrprueba = string variables.consola.configure(state='disabled') # variables.consola.configure() setContenido(Principal.mostrarSimbolos())
def debug2(self): print("debug") import principal2 as p2 import gramatica2 as g2 import ts2 as TS2 global contador #f = open("./entrada.txt", "r") input = self.text3.toPlainText() #print(input) g2.cleanErrores() instrucciones = g2.parse(input) #print("primer print:",instrucciones) errores = g2.getErrores() gram = g2.getGramatical() ts_global = TS2.TablaDeSimbolos() p2.graficar_arbol(instrucciones) p2.procesar_instrucciones_main_debug(instrucciones, contador, ts_global) contador += 1 cadena = p2.getCadena() if len(errores) > 0: p2.reporte_errores(errores) #p.reporte_gramatica(gram) p2.reporte_tabla_simbolos(ts_global.simbolos) #print(ts_global.simbolos) #print(gram.reverse()) #print("errores",errores) #print("tabla", ts_global) self.text2.setText(cadena)
def send_data(): print("Analizando Entrada:") print("==============================================") # reporteerrores = [] contenido = Tentrada.get(1.0, 'end') variables.consola.delete("1.0", "end") variables.consola.configure(state='normal') # print(contenido) Principal = Entorno() jsonMode.dropAll() # Principal.database = "DB1" instrucciones = g.parse(contenido) variables.consola.insert(INSERT, "Salida de consultas\n") for instr in instrucciones: if instr != None: res = instr.ejecutar(Principal) if res != None: res = str(res) + '\n' variables.consola.insert(INSERT, res) variables.consola.configure(state='disabled') #variables.consola.configure() tSym = Principal.mostrarSimbolos() with open('ts.dot', 'w', encoding='utf8') as ts: ts.write(tSym) check_call(['dot', '-Tpdf', 'ts.dot', '-o', 'ts.pdf']) reporte_lex_sin()
def run(self): #f = open("./entrada.txt", "r") input = self.text.toPlainText() #print(input) g.cleanErrores() instrucciones = g.parse(input) #print("primer print:",instrucciones) errores = g.getErrores() gram = g.getGramatical() ts_global = TS.TablaDeSimbolos() p.graficar_arbol(instrucciones) p.procesar_instrucciones_main(instrucciones, ts_global) cadena = p.getCadena() print("esto tiene la cadena", cadena) if len(errores) > 0: print("hay errores") p.reporte_errores(errores) else: print("no hay errores") p.reporte_tabla_simbolos(ts_global.simbolos) p.reporte_gramatica(gram) #print("paso el reporte gramatica") #p.reporte_tabla_simbolos(ts_global.simbolos) #print("paso el reporte ts") #print(ts_global.simbolos) #print(gram.reverse()) #print("errores",errores) #print("tabla", ts_global) self.text2.setText(cadena)
def send_data(): print("Analizando Entrada:") print("==============================================") # reporteerrores = [] contenido = Tentrada.get(1.0, 'end') Tsalida.delete("1.0", "end") Tsalida.configure(state='normal') # print(contenido) jsonMode.dropAll() jsonMode.createDatabase("DB1") Principal = Entorno() Principal.database = "DB1" instrucciones = g.parse(contenido) Tsalida.insert(INSERT, "Salida de consultas\n") for instr in instrucciones: if instr != None: res = instr.ejecutar(Principal) if res != None: res += '\n' Tsalida.insert(INSERT, res) Tsalida.configure(state='disabled') Principal.mostrarSimbolos() reporte_lex_sin()
def send_data(): print("Analizando Entrada:") print("==============================================") contenido = Tentrada.get(1.0, 'end') Tsalida.delete("1.0", "end") Tsalida.configure(state='normal') Tsalida.insert(INSERT, "Salida de consultas") Tsalida.configure(state='disabled') print(contenido) instrucciones = g.parse(contenido)
def Main2(input, consola): global archivoDot global idP archivoDot = "" idP = 0 global shell shell = consola instrucciones = g2.parse(input) ts_global = TS.TablaDeSimbolos() procesar_instrucciones2(instrucciones, len(instrucciones) - 1, ts_global) archivoDot += "Digraph{\n p0[label=\"Main\"];\n" graficar_procesar_instrucciones(instrucciones, 0, ts_global) contadorPadre2() archivoDot += "}" crearTS(ts_global)
def traducir(): # reporteerrores = [] contenido = Tentrada.get(1.0, 'end') variables.consola.delete("1.0", "end") variables.consola.configure(state='normal') Principal = Entorno() #jsonMode.dropAll() instrucciones = g.parse(contenido) variables.consola.insert(INSERT, "Salida de traduccion\n") salida = 'from goto import with_goto\n' salida += 'from CodigoIntermedio import CodigoIntermedio\n' salida += 'from Entorno.Entorno import Entorno\n' salida += '@with_goto\n' salida += 'def prueba():\n' salida += '\tstack =[]\n' salida += '\tci = CodigoIntermedio(Entorno())\n' salida2 = '' for instr in instrucciones: if instr != None: #try: s = instr.traducir(Principal) if s != None: salida2 += s.codigo3d #except Exception as inst: # print(inst) salida2 = salida2.replace('goto temp', generarsaltos()) filas = salida2.split('\n') salida2 = '' for fila in filas: salida2 += '\t' + fila + '\n' salida = salida + salida2 f = open('tsAux', 'w') f.write(Principal.mostrarProc()) f.close() print(salida) f = open('prueba.py', 'w') f.write(salida) f.write('\tci.getSym()\n') f.close()
def traducir(): # reporteerrores = [] contenido = Tentrada.get(1.0, 'end') variables.consola.delete("1.0", "end") variables.consola.configure(state='normal') Principal = Entorno() jsonMode.dropAll() instrucciones = g.parse(contenido) variables.consola.insert(INSERT, "Salida de traduccion\n") salida = '' for instr in instrucciones: if instr != None: salida += instr.traducir(Principal).codigo3d print(salida)
def send_data(): print("Analizando Entrada:") print("==============================================") #reporteerrores = [] contenido = Tentrada.get(1.0, 'end') Tsalida.delete("1.0", "end") Tsalida.configure(state='normal') Tsalida.insert(INSERT, "Salida de consultas") Tsalida.configure(state='disabled') #print(contenido) globalEnt = Entorno() raiz = g.parse(contenido) for x in raiz: if x != None: x.ejecutar(globalEnt)
def traducir(): # reporteerrores = [] contenido = Tentrada.get(1.0, 'end') variables.consola.delete("1.0", "end") variables.consola.configure(state='normal') Principal = Entorno() #jsonMode.dropAll() instrucciones = g.parse(contenido) variables.consola.insert(INSERT, "Salida de traduccion\n") salida = 'from goto import with_goto\n' salida += 'from CodigoIntermedio import CodigoIntermedio\n' salida += 'from Entorno.Entorno import Entorno\n' salida += '@with_goto\n' salida += 'def prueba():\n' salida += '\tstack =[]\n' salida += '\tci = CodigoIntermedio(Entorno())\n' salida2 = '' for instr in instrucciones: if instr != None: s = instr.traducir(Principal) if s != None: salida2 += s.codigo3d filas = salida2.split('\n') salida2 = '' for fila in filas: salida2 += '\t' + fila + '\n' salida = salida + salida2 for i in range(0, salida.count('goto temp')): salida = salida.replace('goto temp', 'goto ' + str(variables.stack[i]), 1) print(salida) f = open('prueba.py', 'w') f.write(salida) f.close()
def run2(self): import principal2 as p2 import gramatica2 as g2 import ts2 as TS2 print("segundo run") #f = open("./entrada.txt", "r") input = self.text3.toPlainText() print("esto trae la cadena2\n", input) g2.cleanErrores() print("obtuvo errores") instrucciones = g2.parse(input) print("primer print:", instrucciones) errores2 = g2.getErrores() gram2 = g2.getGramatical() ts_global2 = TS2.TablaDeSimbolos() ts_global2.clear p2.graficar_arbol(instrucciones) p2.procesar_instrucciones_main(instrucciones, ts_global2) ca = p2.getCadena() #print("esto tiene la cadena", cadena) if len(errores2) > 0: print("hay errores") p2.reporte_errores(errores2) else: print("no hay errores") p2.reporte_tabla_simbolos(ts_global2.simbolos) p2.reporte_gramatica(gram2) #print("paso el reporte gramatica") #p.reporte_tabla_simbolos(ts_global.simbolos) #print("paso el reporte ts") #print(ts_global.simbolos) #print(gram.reverse()) #print("errores",errores) #print("tabla", ts_global) self.text2.setText(ca)
if ts.obtener(expNum.id).valor < 0: return ts.obtener(expNum.id).valor * -1 elif ts.obtener(expNum.id).valor > 0: return ts.obtener(expNum.id).valor def procesar_instrucciones(instrucciones, ts): ## lista de instrucciones recolectadas for instr in instrucciones: if isinstance(instr, Imprimir): procesar_imprimir(instr, ts) elif isinstance(instr, Definicion_Asignacion): procesar_asignacion(instr, ts) elif isinstance(instr, Definicion_Asignacion_Cadena): procesar_asignacion_cadena(instr, ts) elif isinstance(instr, Mientras): procesar_mientras(instr, ts) elif isinstance(instr, If): procesar_if(instr, ts) elif isinstance(instr, IfElse): procesar_if_else(instr, ts) else: print('Error: instrucción no válida') f = open("./entrada.txt", "r") input = f.read() instrucciones = g.parse(input) ts_global = TS.TablaDeSimbolos() procesar_instrucciones(instrucciones, ts_global)
def ejecutarsql(self, stringinstr): 'ejecucion del bloque' instr=g.parse(stringinstr) for inst in instr: return inst.ejecutar(self.entorno)