def t_NUMBER(t):
    """[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?"""
    try:
        if t.value.count('.') == 0:
            try:
                t.value = int(t.value)
            except:
                t.value = float(t.value)
        else:
            t.value = float(t.value)
    except:
        print('[%d]: Number %s is not valid!' % (t.lineno, t.value))
        t.value = 0
    return t
