code: func parseMaybeJSON(rest string, d *Directive) (*Node, map[string]bool, error) {
  	if rest == "" {
  		return nil, nil, nil
  	}
  
  	node, attrs, err := parseJSON(rest, d)
  
  	if err == nil {
  		return node, attrs, nil
  	}
  	if err == errDockerfileNotStringArray {
  		return nil, nil, err
  	}
  
  	node = &Node{}
  	node.Value = rest
  	return node, nil, nil
  }
docs: // parseMaybeJSON determines if the argument appears to be a JSON array. If
  // so, passes to parseJSON; if not, quotes the result and returns a single
  // node.