39 lines
960 B
Go
39 lines
960 B
Go
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
|
|
}
|