code: func (s *Scanner) recentPosition() (pos token.Pos) {
  	pos.Offset = s.srcPos.Offset - s.lastCharLen
  	switch {
  	case s.srcPos.Column > 0:
  		// common case: last character was not a '\n'
  		pos.Line = s.srcPos.Line
  		pos.Column = s.srcPos.Column
  	case s.lastLineLen > 0:
  		// last character was a '\n'
  		// (we cannot be at the beginning of the source
  		// since we have called next() at least once)
  		pos.Line = s.srcPos.Line - 1
  		pos.Column = s.lastLineLen
  	default:
  		// at the beginning of the source
  		pos.Line = 1
  		pos.Column = 1
  	}
  	return
  }
docs: // recentPosition returns the position of the character immediately after the
  // character or token returned by the last call to Scan.