code: func (m *GenericParser) parseLit(val reflect.Value) (Object, error) {
  	switch k := val.Kind(); k {
  	case reflect.Bool:
  		return B(val.Bool()), nil
  	case reflect.Int:
  		return I(val.Int()), nil
  	case reflect.Int8:
  		return I8(val.Int()), nil
  	case reflect.Int16:
  		return I16(val.Int()), nil
  	case reflect.Int32:
  		return I32(val.Int()), nil
  	case reflect.Int64:
  		return I64(val.Int()), nil
  	case reflect.Uint:
  		return U(val.Uint()), nil
  	case reflect.Uint8:
  		return U8(val.Uint()), nil
  	case reflect.Uint16:
  		return U16(val.Uint()), nil
  	case reflect.Uint32:
  		return U32(val.Uint()), nil
  	case reflect.Uint64:
  		return U64(val.Uint()), nil
  	case reflect.Float32:
  		return F32(val.Float()), nil
  	case reflect.Float64:
  		return F64(val.Float()), nil
  	case reflect.Complex64:
  		m.Stats.Count("parser.parseLit."+k.String(), 1, 1)
  		return nil, errors.New("unsupported kind of literal Complex64")
  	case reflect.Complex128:
  		m.Stats.Count("parser.parseLit."+k.String(), 1, 1)
  		return nil, errors.New("unsupported kind of literal Complex128")
  	case reflect.Array, reflect.Slice:
  		m.Stats.Count("parser.parseLit."+k.String(), 1, 1)
  		return nil, errors.New("nested slices/arrays of literals are not supported - parseLit should not be called with these kinds of values")
  	case reflect.String:
  		return S(val.String()), nil
  	default:
  		m.Stats.Count("parser.parseLit."+k.String(), 1, 1)
  		return nil, errors.Errorf("kind %v is not supported", val.Kind())
  	}
  }
docs: // parseLit parses literal values (the leaves of the tree).