code: func (self *Position) String() string {
  	str := self.Filename
  	if self.isValid() {
  		if str != "" {
  			str += ":"
  		}
  		str += fmt.Sprintf("%d:%d", self.Line, self.Column)
  	}
  	if str == "" {
  		str = "-"
  	}
  	return str
  }
docs: // String returns a string in one of several forms:
  //
  //	file:line:column    A valid position with filename
  //	line:column         A valid position without filename
  //	file                An invalid position with filename
  //	-                   An invalid position without filename
  //