def procesar_if_else(instr, ts): val = resolver_expreision_logica(instr.expLogica, ts) if val: ts_local = TS.TablaDeSimbolos(ts.simbolos) procesar_instrucciones(instr.instrIfVerdadero, ts_local) else: ts_local = TS.TablaDeSimbolos(ts.simbolos) procesar_instrucciones(instr.instrIfFalso, ts_local)
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 debug(self): print("debug") global contador #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_debug(instrucciones, contador, ts_global) contador += 1 cadena = p.getCadena() if len(errores) > 0: p.reporte_errores(errores) #p.reporte_gramatica(gram) p.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 analizar(txt): global instrucciones_Global instrucciones = g.parse(txt) instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() salida = procesar_instrucciones(instrucciones, ts_global) print("analizando...") print(txt) salida_table(2, salida)
def analizar_select(e): global selected if my_text.selection_get(): global instrucciones_Global selected = my_text.selection_get() print(selected) instrucciones = g.parse(selected) instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() salida = procesar_instrucciones(instrucciones, ts_global) salida_table(2, salida)
def analizar(txt): listaErrores = [] global instrucciones_Global,tc_global1 instrucciones = g.parse(txt) instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global salida = procesar_instrucciones(instrucciones, ts_global,tc_global) print("analizando...") print(txt) salida_table(2,salida)
def analizar(self): print("current limit:" + str(sys.getrecursionlimit())) print("Iniciando analisis") ts_global = TS.TablaDeSimbolos() ms_global = MS.Mensajes() parser = GR.Gramatica(ms_global) GLO.gramatica = {} GLO.isdesc = False input = self.ToAnalize.get("1.0", 'end-1c') input += " \n exit;" instrucciones = parser.parse(input) #SinLex = parser.Errors() if instrucciones is not None: self.procesar_instrucciones(instrucciones, ts_global, ms_global) salida = "" if (ms_global.correcto): print("Analisis correcto") showinfo("Notepad", "Analisis correcto") prints = ms_global.GetMensajes() for Mensaje in prints: print(Mensaje.constructMensaje()) salida += Mensaje.constructMensaje() arparser = AR.AST() raiz = arparser.parse(input) graf = TreeMaker(raiz) try: graf.crearArbol() except: print("No se genero el arbol") #self.ToTS.config(state='normal') self.ToERR.config(state='disabled') else: print("Se encontraron errores") showinfo("Notepad", "Se encontraron errores") self.errores = ms_global.GetErrores() '''if (SinLex is not None): for Mensaje in SinLex.mensajes: print(Mensaje.constructError()) salida+=Mensaje.constructError()''' for Mensaje in self.errores: print(Mensaje.constructError()) salida += Mensaje.constructError() #self.ToTS.config(state='disabled') self.ToERR.config(state='normal') self.setText(salida) self.ts_global = ts_global self.ms_global = ms_global self.ts_global.printts()
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 procesar_funcionCreateIndex3(self): global instrucciones_Global,tc_global1,ts_global1,listaErrores,erroressss,ts_globalIndex1 instrucciones = g.parse(' CREATE UNIQUE INDEX idx_producto ON tbProducto ( idproducto );') erroressss = ErrorHTML() if erroressss.getList()== []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() ts_globalIndex = TSINDEX.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global ts_globalIndex1 = ts_globalIndex salida = procesar_instrucciones(instrucciones, ts_global,tc_global,ts_globalIndex) print(salida) else: print('Parser Error')
def procesar_funcionCreateDatabase0(self): global instrucciones_Global,tc_global1,ts_global1,listaErrores,erroressss,ts_globalIndex1 instrucciones = g.parse('CREATE DATABASE DBFase2;') erroressss = ErrorHTML() if erroressss.getList()== []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() ts_globalIndex = TSINDEX.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global ts_globalIndex1 = ts_globalIndex salida = procesar_instrucciones(instrucciones, ts_global,tc_global,ts_globalIndex) print(salida) else: print('Parser Error')
def procesar_funcionUpdate29(self): global instrucciones_Global,tc_global1,ts_global1,listaErrores,erroressss,ts_globalIndex1 instrucciones = g.parse(' update tbbodega set bodega = \'bodega zona 9\' where idbodega = 4 ;') erroressss = ErrorHTML() if erroressss.getList()== []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() ts_globalIndex = TSINDEX.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global ts_globalIndex1 = ts_globalIndex salida = procesar_instrucciones(instrucciones, ts_global,tc_global,ts_globalIndex) print(salida) else: print('Parser Error')
def procesar_funcionInsert28(self): global instrucciones_Global,tc_global1,ts_global1,listaErrores,erroressss,ts_globalIndex1 instrucciones = g.parse('insert into tbbodega ( idbodega,bodega,estado ) values ( 5 , \'BODEGA ZONA 10\' , 1 );') erroressss = ErrorHTML() if erroressss.getList()== []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() ts_globalIndex = TSINDEX.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global ts_globalIndex1 = ts_globalIndex salida = procesar_instrucciones(instrucciones, ts_global,tc_global,ts_globalIndex) print(salida) else: print('Parser Error')
def procesar_funcionInsert22(self): global instrucciones_Global,tc_global1,ts_global1,listaErrores,erroressss,ts_globalIndex1 instrucciones = g.parse('insert into tbCalificacion values ( 5 , \'Valida Delete\' , 2 );') erroressss = ErrorHTML() if erroressss.getList()== []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() ts_globalIndex = TSINDEX.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global ts_globalIndex1 = ts_globalIndex salida = procesar_instrucciones(instrucciones, ts_global,tc_global,ts_globalIndex) print(salida) else: print('Parser Error')
def procesar_funcionCreateTable18(self): global instrucciones_Global,tc_global1,ts_global1,listaErrores,erroressss,ts_globalIndex1 instrucciones = g.parse('create table tbbodega ( idbodega integer not null primary key , bodega varchar ( 100 ) not null , estado integer );') erroressss = ErrorHTML() if erroressss.getList()== []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() ts_globalIndex = TSINDEX.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global ts_globalIndex1 = ts_globalIndex salida = procesar_instrucciones(instrucciones, ts_global,tc_global,ts_globalIndex) print(salida) else: print('Parser Error')
def procesar_funcionCreateIndex19(self): global instrucciones_Global,tc_global1,ts_global1,listaErrores,erroressss,ts_globalIndex1 instrucciones = g.parse(' CREATE INDEX tbbodegaIndex ON tbbodega ( lower ( bodega ) );') erroressss = ErrorHTML() if erroressss.getList()== []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() ts_globalIndex = TSINDEX.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global ts_globalIndex1 = ts_globalIndex salida = procesar_instrucciones(instrucciones, ts_global,tc_global,ts_globalIndex) print(salida) else: print('Parser Error')
def procesar_funcionUpdate15(self): global instrucciones_Global,tc_global1,ts_global1,listaErrores,erroressss,ts_globalIndex1 instrucciones = g.parse(' update tbProducto set estado = 2 where estado = 1 ;') erroressss = ErrorHTML() if erroressss.getList()== []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() ts_globalIndex = TSINDEX.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global ts_globalIndex1 = ts_globalIndex salida = procesar_instrucciones(instrucciones, ts_global,tc_global,ts_globalIndex) print(salida) else: print('Parser Error')
def procesar_funcionInsert13(self): global instrucciones_Global,tc_global1,ts_global1,listaErrores,erroressss,ts_globalIndex1 instrucciones = g.parse('INSERT INTO tbProducto values ( 8 , \'Laptop Samsung\' , \'2021-01-02\' , 1 );') erroressss = ErrorHTML() if erroressss.getList()== []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() ts_globalIndex = TSINDEX.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global ts_globalIndex1 = ts_globalIndex salida = procesar_instrucciones(instrucciones, ts_global,tc_global,ts_globalIndex) print(salida) else: print('Parser Error')
def procesar_funcionInsert12(self): global instrucciones_Global,tc_global1,ts_global1,listaErrores,erroressss,ts_globalIndex1 instrucciones = g.parse('INSERT INTO tbProducto values ( 7 , \'Teclado Flexible USB\' , now ( ) , 1 );') erroressss = ErrorHTML() if erroressss.getList()== []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() ts_globalIndex = TSINDEX.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global ts_globalIndex1 = ts_globalIndex salida = procesar_instrucciones(instrucciones, ts_global,tc_global,ts_globalIndex) print(salida) else: print('Parser Error')
def procesar_funcionCreateTable4(self): global instrucciones_Global,tc_global1,ts_global1,listaErrores,erroressss,ts_globalIndex1 instrucciones = g.parse('CREATE TABLE tbCalificacion ( idcalifica integer not null primary key , item varchar ( 100 ) not null , punteo integer not null );') erroressss = ErrorHTML() if erroressss.getList()== []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() ts_globalIndex = TSINDEX.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global ts_globalIndex1 = ts_globalIndex salida = procesar_instrucciones(instrucciones, ts_global,tc_global,ts_globalIndex) print(salida) else: print('Parser Error')
def procesar_funcionCreateTable2(self): global instrucciones_Global,tc_global1,ts_global1,listaErrores,erroressss,ts_globalIndex1 instrucciones = g.parse('CREATE TABLE tbProducto ( idproducto integer not null primary key , producto varchar ( 150 ) not null , fechacreacion date not null , estado integer );') erroressss = ErrorHTML() if erroressss.getList()== []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() ts_globalIndex = TSINDEX.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global ts_globalIndex1 = ts_globalIndex salida = procesar_instrucciones(instrucciones, ts_global,tc_global,ts_globalIndex) print(salida) else: print('Parser Error')
def procesar_funcionSelect23(self): global instrucciones_Global,tc_global1,ts_global1,listaErrores,erroressss,ts_globalIndex1 instrucciones = g.parse(' select * from tbbodega ;') erroressss = ErrorHTML() if erroressss.getList()== []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() ts_globalIndex = TSINDEX.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global ts_globalIndex1 = ts_globalIndex salida = procesar_instrucciones(instrucciones, ts_global,tc_global,ts_globalIndex) print(salida) else: print('Parser Error')
def procesar_llamada(instr, ts): ts_local = TS.TablaDeSimbolos(ts.simbolos, ts.funciones) funcion = ts.obtener_funcion(instr.id) if len(funcion.parametros) == len(instr.parametros): for par in enumerate(funcion.parametros): val = resolver_expresion_aritmetica(instr.parametros[par[0]], ts) #print(par.id, " = ", val) simbolo = TS.Simbolo(par[1].id, TS.TIPO_DATO.NUMERO, val) ts_local.agregar(simbolo) return procesar_instrucciones(funcion.instrucciones, ts_local) else: print('Error: cantidad de parametros no erronea')
def procesar_database1(self): global instrucciones_Global, tc_global1, ts_global1, listaErrores, erroressss instrucciones = g.parse('CREATE DATABASE prueba1;') erroressss = ErrorHTML() if erroressss.getList() == []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global salida = procesar_instrucciones(instrucciones, ts_global, tc_global) return salida else: print('Parser Error')
def procesar_funcion1(self): global instrucciones_Global, tc_global1, ts_global1, listaErrores, erroressss, ts_globalIndex1 instrucciones = g.parse('USE DBFase2;') erroressss = ErrorHTML() if erroressss.getList() == []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() ts_globalIndex = TSINDEX.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global ts_globalIndex1 = ts_globalIndex salida = procesar_instrucciones(instrucciones, ts_global, tc_global, ts_globalIndex) return salida else: return 'Parser Error'
def analizar(txt): global instrucciones_Global, tc_global1, ts_global1, listaErrores instrucciones = g.parse(txt) if erroressss.getList() == []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global salida = procesar_instrucciones(instrucciones, ts_global, tc_global) if type(salida) == list: salida_table(1, salida) else: salida_table(2, salida) else: salida_table(2, "PARSER ERROR")
def procesar_if_elseif(instr, ts): val = resolver_expreision_logica(instr.expLogica, ts) if val: ts_local = TS.TablaDeSimbolos(ts.simbolos, ts.funciones) return procesar_instrucciones(instr.instrucciones, ts_local) else: if isinstance(instr.elseif, If): ret = procesar_if(instr.elseif, ts) if ret is not None: return ret elif isinstance(instr.elseif, IfElse): ret = procesar_if_else(instr.elseif, ts) if ret is not None: return ret elif isinstance(instr.elseif, IfElseIf): ret = procesar_if_elseif(instr.elseif, ts) if ret is not None: return ret
def procesar_funcion25(self): global instrucciones_Global, tc_global1, ts_global1, listaErrores, erroressss, ts_globalIndex1 instrucciones = g.parse( 'insert into tbbodega ( idbodega,bodega ) values ( 2 , \'BODEGA ZONA 12\' );' ) erroressss = ErrorHTML() if erroressss.getList() == []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() ts_globalIndex = TSINDEX.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global ts_globalIndex1 = ts_globalIndex salida = procesar_instrucciones(instrucciones, ts_global, tc_global, ts_globalIndex) return salida else: return 'Parser Error'
def procesar_funcion5(self): global instrucciones_Global, tc_global1, ts_global1, listaErrores, erroressss, ts_globalIndex1 instrucciones = g.parse( ' CREATE UNIQUE INDEX idx_califica ON tbCalificacion ( idcalifica ) ;' ) erroressss = ErrorHTML() if erroressss.getList() == []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() ts_globalIndex = TSINDEX.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global ts_globalIndex1 = ts_globalIndex salida = procesar_instrucciones(instrucciones, ts_global, tc_global, ts_globalIndex) return salida else: return 'Parser Error'
def procesar_funcion20(self): global instrucciones_Global, tc_global1, ts_global1, listaErrores, erroressss, ts_globalIndex1 instrucciones = g.parse( 'insert into tbCalificacion values ( 4 , \'Valida Store Procedure\' , 5 );' ) erroressss = ErrorHTML() if erroressss.getList() == []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() ts_globalIndex = TSINDEX.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global ts_globalIndex1 = ts_globalIndex salida = procesar_instrucciones(instrucciones, ts_global, tc_global, ts_globalIndex) return salida else: return 'Parser Error'
def procesar_funcion11(self): global instrucciones_Global, tc_global1, ts_global1, listaErrores, erroressss, ts_globalIndex1 instrucciones = g.parse( 'INSERT INTO tbProducto values ( 6 , \'Laptop HP\' , now ( ) , 1 );' ) erroressss = ErrorHTML() if erroressss.getList() == []: instrucciones_Global = instrucciones ts_global = TS.TablaDeSimbolos() ts_globalIndex = TSINDEX.TablaDeSimbolos() tc_global = TC.TablaDeTipos() tc_global1 = tc_global ts_global1 = ts_global ts_globalIndex1 = ts_globalIndex salida = procesar_instrucciones(instrucciones, ts_global, tc_global, ts_globalIndex) return salida else: return 'Parser Error'