code: func (p *parser) parseHash() *ast.Hash {
  	var pairs []*ast.HashPair
  
  	for p.isHashSegment() {
  		pairs = append(pairs, p.parseHashSegment())
  	}
  
  	firstLoc := pairs[0].Location()
  
  	result := ast.NewHash(firstLoc.Pos, firstLoc.Line)
  	result.Pairs = pairs
  
  	return result
  }
docs: // hash : hashSegment+