Locations and tokens are now capable of creating errors on their own

This commit is contained in:
Sasha Koshka 2022-08-12 13:51:38 -05:00
parent 7914f0df45
commit accf528869
3 changed files with 12 additions and 2 deletions

View File

@ -22,9 +22,9 @@ func NewError (
message string,
kind ErrorKind,
) (
err *Error,
err Error,
) {
return &Error {
return Error {
Location: location,
message: message,
kind: kind,

View File

@ -8,3 +8,8 @@ type Location struct {
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)
}

View File

@ -86,6 +86,11 @@ func (token Token) Location () (location file.Location) {
return token.location
}
// NewError creates a new error at this token's location.
func (token Token) NewError (message string, kind file.ErrorKind) (err file.Error) {
return token.location.NewError(message, kind)
}
// Describe generates a textual description of the token to be used in debug
// logs.
func (token Token) Describe () (description string) {