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