示例#1
0
    def analize(self):
        self.refresh()
        entrada = ""
        entrada = self.txt_entrada.get(
            "1.0", END)  # variable de almacenamiento de la entrada
        result = interpreter.execution(entrada)
        self.lexicalErrors = result["lexical"]
        self.syntacticErrors = result["syntax"]
        self.semanticErrors = result["semantic"]
        self.postgreSQL = result["postgres"]
        self.ts = result["symbols"]
        if (len(self.lexicalErrors) + len(self.syntacticErrors) +
                len(self.semanticErrors) + len(self.postgreSQL) > 0):
            tkinter.messagebox.showerror(
                title="Error", message="La consulta contiene errores")
            if len(self.postgreSQL) > 0:
                i = 0
                self.text_Consola.insert(INSERT,
                                         "-----------ERRORS----------" + "\n")
                while i < len(self.postgreSQL):
                    self.text_Consola.insert(INSERT, self.postgreSQL[i] + "\n")
                    i += 1
        querys = result["querys"]
        self.show_result(querys)
        messages = result["messages"]
        if len(messages) > 0:
            i = 0
            self.text_Consola.insert(INSERT,
                                     "-----------MESSAGES----------" + "\n")
            while i < len(messages):
                self.text_Consola.insert(INSERT, str(messages[i]) + "\n")
                i += 1

        self.tabControl.pack()
示例#2
0
    def MetodoParser(self, texto):
        #DECLARAR RETORNO
        salida = ""
        # EJECUTAR PARSER
        result = interpreter.execution(texto)
        self.lexicalErrors = result["lexical"]
        self.syntacticErrors = result["syntax"]
        self.semanticErrors = result["semantic"]
        self.postgreSQL = result["postgres"]
        self.ts = result["symbols"]
        self.indexes = result["indexes"]
        if (len(self.lexicalErrors) + len(self.syntacticErrors) +
                len(self.semanticErrors) + len(self.postgreSQL) > 0):
            if len(self.postgreSQL) > 0:
                i = 0
                salida += "================================================== \n"
                salida += "                       TYTUS ERROR \n"
                salida += "================================================== \n"
                while i < len(self.postgreSQL):
                    salida += ">> " + str(self.postgreSQL[i]) + "\n"

                    i += 1
        querys = result["querys"]
        messages = result["messages"]
        if len(messages) > 0:
            i = 0
            salida += "==================================================\n"
            salida += "                       TYTUS \n"
            salida += "================================================== \n"

            while i < len(messages):
                salida += ">> " + str(messages[i]) + "\n"
                i += 1
        return salida
示例#3
0
 def parse(self, input):
     obj = execution(input)
     #print(obj['messages'])
     result = None
     try:
         result = obj['querys'][0][1][0][0]
     except:
         return None
     return result
示例#4
0
 def analize(self):
     self.refresh()
     entrada = ""
     entrada = self.txt_entrada.get(
         "1.0", END)  # variable de almacenamiento de la entrada
     result_c3d = interpreter.getc3d(entrada)
     result = interpreter.execution(entrada)
     self.lexicalErrors = result["lexical"]
     self.syntacticErrors = result["syntax"]
     self.semanticErrors = result["semantic"]
     self.postgreSQL = result["postgres"]
     self.ts = result["symbols"]
     if (len(self.lexicalErrors) + len(self.syntacticErrors) +
             len(self.semanticErrors) + len(self.postgreSQL) > 0):
         tkinter.messagebox.showerror(
             title="Error", message="La consulta contiene errores")
         if len(self.postgreSQL) > 0:
             i = 0
             self.text_Consola.insert(INSERT,
                                      "-----------ERRORS----------" + "\n")
             while i < len(self.postgreSQL):
                 self.text_Consola.insert(INSERT, self.postgreSQL[i] + "\n")
                 i += 1
     querys = result["querys"]
     '''for consult in querys:
         salidaTabla = PrettyTable()
         encabezados = consult[0]
         salidaTabla.field_names = encabezados
         cuerpo = consult[1]
         salidaTabla.add_rows(cuerpo)
         print(salidaTabla)
         print("\n")
         print("\n")
     '''
     #print('Imprimiendo querys')
     #print(querys)
     self.show_result(querys)
     #messages = result["messages"]
     #if len(messages) > 0:
     # i = 0
     # self.text_Consola.insert(INSERT, "-----------MESSAGES----------" + "\n")
     # while i < len(messages):
     # self.text_Consola.insert(INSERT, str(messages[i]) + "\n")
     # i += 1
     self.text_Consola.insert(
         INSERT, "-----------Codigo 3 Direcciones----------" + "\n")
     codigo = result_c3d["codigo"]
     self.text_Consola.insert(INSERT, codigo)
     self.Codigo3Direcciones = codigo
     self.text_Consola.insert(INSERT, "main()" + "\n")
     self.tabControl.pack()
示例#5
0
文件: server.py 项目: Odra99/tytus
    print("waiting for connection")
    #obj = interpreter.execution("create database prueba3; use prueba1; drop table cliente ; create table cliente(id integer primary key);");
    #print(obj)
    #print("send data")
    #json_data = json.dumps(obj, sort_keys=False, indent=2)
    #print("data %s" % json_data)
    connection, client_address = serv.accept()

    try:
        print(client_address)
        while True:
            data = connection.recv(4096)
            print(data.decode('utf-8'))
            #recibimos el script del query tool y la decodificamos a utf 8
            scritp_sql = data.decode('utf-8')
            #Realiza la interpretacion
            obj = interpreter.execution(scritp_sql)
            temp = {"obj": obj, "databases": importFile("Databases")}
            json_data = json.dumps(temp, sort_keys=False, indent=2)
            #Imprimimos el json desde el server
            print("data %s" % json_data)
            if data:
                #connection.sendall(pickle.dumps(obj))
                #mandamos la data obtenida del analisis como obj json
                connection.sendall(json_data.encode())
            else:
                print("end data")
                break
    finally:
        connection.close()
示例#6
0
def ejecucion():
    texto = request.json['sexo']
    resp = execution(texto)
    return jsonify(
        response = resp
    )
示例#7
0
 def parse(self, input):
     obj = execution(input)
     print(obj['messages'])
     return obj['value']