package file
// Location represents a specific point in a file. It is used for error
// reporting.
type Location struct {
file *File
row int
column int
width int
}
// NewError creates a new error at this location.
func (location Location) NewError (message string, kind ErrorKind) (err Error) {
return NewError(location, message, kind)
// File returns the file the location is in
func (location Location) File () (file *File) {
return location.file
// Row returns the row the location is positioned at in the file, starting at
// zero.
func (location Location) Row () (row int) {
return location.row
// Column returns the column the location is positioned at in the file, starting
// at zero.
func (location Location) Column () (column int) {
return location.column
// Width returns the amount of runes spanned by the location, starting at row
// and column.
func (location Location) Width () (width int) {
return location.width