code: func (p *Parser) objectValue() (ast.Node, error) {
  	defer un(trace(p, "ParseObjectValue"))
  	tok := p.scan()
  
  	switch tok.Type {
  	case token.NUMBER, token.FLOAT, token.BOOL, token.NULL, token.STRING:
  		return p.literalType()
  	case token.LBRACE:
  		return p.objectType()
  	case token.LBRACK:
  		return p.listType()
  	case token.EOF:
  		return nil, errEofToken
  	}
  
  	return nil, fmt.Errorf("Expected object value, got unknown token: %+v", tok)
  }
docs: // object parses any type of object, such as number, bool, string, object or
  // list.