code: func (p *parser) parseInteger() (int, error) {
  	i := p.i
  	start := i
  	for i < len(p.s) && '0' <= p.s[i] && p.s[i] <= '9' {
  		i++
  	}
  	if i == start {
  		return 0, errors.New("expected integer, but didn't find it")
  	}
  	p.i = i
  
  	val, err := strconv.Atoi(p.s[start:i])
  	if err != nil {
  		return 0, err
  	}
  
  	return val, nil
  }
docs: // parseInteger parses a  decimal integer.