code: func (l *lexer) lineNumber(pos ast.Pos) int {
  	return 1 + strings.Count(l.input[:pos], "\n")
  }
docs: // lineNumber reports which line we're on. Doing it this way
  // means we don't have to worry about peek double counting.