def t_error(t): descript = 'error lexico at token ' + str(t.value[0]) linea = str(t.lineno) columna = str(find_column(t)) nuevo_error = CError(linea,columna,descript,'Lexico') insert_error(nuevo_error) t.lexer.skip(1)
def p_error(t): if t: descript = 'error sintactico en el token ' + str(t.type) linea = str(t.lineno) columna = str(find_column(t)) nuevo_error = CError(linea,columna,descript,'Sintactico') insert_error(nuevo_error) parser.errok() else: print("Syntax error at EOF") return
def t_INT(t): r'\d+' try: t.value = int(t.value) except ValueError: descript = 'error lexico at token ' + str(t.value) linea = str(t.lineno) columna = str(find_column(t)) nuevo_error = CError(linea,columna,descript,'Lexico') insert_error(nuevo_error) print("Valor numerico incorrecto %d", t.value) t.value = 0 return t
def t_DEC(t): r'\d+\.\d+' try: t.value = float(t.value) except ValueError: descript = 'error lexico at token ' + str(t.value) linea = str(t.lineno) columna = str(find_column(t)) nuevo_error = CError(linea,columna,descript,'Lexico') insert_error(nuevo_error) print("Error no se puede convertir %d", t.value) t.value = 0 return t
def ejecutar(self): try: temp = float(self.exp) except ValueError: e = errores.CError(0,0,"Error en funcion trigonometrica",'Semantico') errores.insert_error(e) return e trim = mt.acos(float(temp)) trim = mt.acos(float(temp)) return trim
def ejecutar(self): try: try: maximo = float(self.lexps[0]) for dato in self.lexps: temp = float(dato) if maximo < temp: maximo = temp return maximo except: e = errores.CError(0,0,"Funcion least necesita una lista",'Semantico') errores.insert_error(e) return e
global resultadotxt global cont global tabla global contambito try: try: resultado = func.createDatabase(self.iden) if resultado == 0: NuevoSimbolo = TS.Simbolo(cont,self.iden,TS.TIPO.DATABASE,contambito) @ -74,7 +107,7 @@ class createdb(instruccion): resultadotxt += "Se creo la base de datos " + self.iden + "\n" return "Se creo la base de datos " + self.iden + "\n" elif resultado == 2 and not self.replacedb: e = errores.CError(0,0,"Ya existe la base de datos " + self.iden,'Semantico') e = errores.CError(0,0,"Ya existe la base de datos " + self.iden,'Semantico') errores.insert_error(e) resultadotxt += "Ya existe la base de datos " + self.iden + "\n" return "Ya existe la base de datos " + self.iden + "\n" @ -90,7 +123,7 @@ class createdb(instruccion): resultadotxt += "Se reemplazo la base de datos: " + self.iden + "\n" return "Se reemplazo la base de datos: " + self.iden + "\n" else: e = errores.CError(0,0,"Error al crear base de datos: " + self.iden,'Semantico') e = errores.CError(0,0,"Error al crear base de datos: " + self.iden,'Semantico') errores.insert_error(e) resultadotxt += "Error al crear base de datos: " + self.iden + "\n" return "Error al crear base de datos: " + self.iden + "\n" @ -102,6 +135,9 @@ class showdb(instruccion): def __init__(self,nombre): self.nombre = nombre