code: func (p *Lexer) Token8() (string, bool) {
  
  	var buf []rune
  
  	for {
  		c, _ := p.Rune()
  		if !isTokenChar(c) {
  			break
  		}
  		buf = append(buf, c)
  	}
  
  	p.UnreadRune()
  	return string(buf), len(buf) > 0
  }
docs: // Token8 reads from the Parser input stream and returns
  // a token, if any. A token is defined as a sequence of
  // Unicode letters and/or numbers and/or _.