Files
ini/basic/error.go
T
amery 7a4e31b937 basic: refactor error handling
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-02 02:05:06 +00:00

32 lines
591 B
Go

package basic
import (
"errors"
"asciigoat.org/core/lexer"
)
var (
errInvalidToken = errors.New("invalid token")
)
func newError(pos lexer.Position, content, hint string, err error) *lexer.Error {
return &lexer.Error{
Line: pos.Line,
Column: pos.Column,
Content: content,
Hint: hint,
Err: err,
}
}
func newErrInvalidToken(t *token) *lexer.Error {
return newError(t.pos, t.value, "", errInvalidToken)
}
func (dec *decoder) OnError(pos lexer.Position, content string, err error) error {
err = newError(pos, content, "", err)
dec.executeFinal()
return err
}