code: func (p *Parser) objectItem() (*ast.ObjectItem, error) {
  	defer un(trace(p, "ParseObjectItem"))
  
  	keys, err := p.objectKey()
  	if err != nil {
  		return nil, err
  	}
  
  	o := &ast.ObjectItem{
  		Keys: keys,
  	}
  
  	switch p.tok.Type {
  	case token.COLON:
  		pos := p.tok.Pos
  		o.Assign = hcltoken.Pos{
  			Filename: pos.Filename,
  			Offset:   pos.Offset,
  			Line:     pos.Line,
  			Column:   pos.Column,
  		}
  
  		o.Val, err = p.objectValue()
  		if err != nil {
  			return nil, err
  		}
  	}
  
  	return o, nil
  }
docs: // objectItem parses a single object item