code: def t_NUMBER(t):
      # This pattern must come AFTER t_HEXA and t_BIN
      r'(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))([eE][-+]?[0-9]+)?'
      t.text = t.value
      t.value = float(t.value)
  
      if t.value == int(t.value) and is_label(t):
          t.value = int(t.value)
          t.type = 'LABEL'
  
      return f t_NUMBER(t):
      # This pattern must come AFTER t_HEXA and t_BIN
      r'(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))([eE][-+]?[0-9]+)?'
      t.text = t.value
      t.value = float(t.value)
  
      if t.value == int(t.value) and is_label(t):
          t.value = int(t.value)
          t.type = 'LABEL'
  
      return t
docs: r'(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))([eE][-+]?[0-9]+)?