Пример #1
0
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)
Пример #2
0
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
Пример #3
0
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
Пример #4
0
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