code: func (l *lexer) backup() {
  	if l.prev.byteNo == lexEOF {
  		panic("backup called with no valid previous rune")
  	}
  	l.pos = l.prev
  	l.prev = position{byteNo: lexEOF}
  }
docs: // backup steps back one rune. Can only be called once per call of next.
  // It also does not recover the previous value of freshLine.