code: func parseValue(p ParseParams) (ast.Value, error) {
  	var value ast.Value
  	var sourceObj *source.Source
  	switch src := p.Source.(type) {
  	case *source.Source:
  		sourceObj = src
  	default:
  		body, _ := p.Source.(string)
  		sourceObj = source.NewSource(&source.Source{Body: []byte(body)})
  	}
  	parser, err := makeParser(sourceObj, p.Options)
  	if err != nil {
  		return value, err
  	}
  	value, err = parseValueLiteral(parser, false)
  	if err != nil {
  		return value, err
  	}
  	return value, nil
  }
docs: // TODO: test and expose parseValue as a public