code: func (p *Parser) scan() (token, string, error) {
  	if p.unreadLastChar {
  		p.unreadLastChar = false
  		return p.currentParsedChar.tok, p.currentParsedChar.lit, nil
  	}
  
  	tok, lit, err := p.s.scan()
  
  	p.currentParsedChar.tok, p.currentParsedChar.lit = tok, lit
  
  	return tok, lit, err
  }
docs: // scan returns the next token from the underlying scanner
  // or the last scanned token if an unscan was requested