8557ef9a7e
Signed-off-by: Alejandro Mery <amery@jpi.io>
34 lines
727 B
Go
34 lines
727 B
Go
package ini
|
|
|
|
import (
|
|
"errors"
|
|
"log"
|
|
|
|
"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 (*Decoder[T]) newErrInvalidToken(t *token) *lexer.Error {
|
|
return newError(t.pos, t.value, "", errInvalidToken)
|
|
}
|
|
|
|
// parserOnError is the callback for lexer errors
|
|
func (dec *Decoder[T]) parserOnError(pos lexer.Position, content string, err error) error {
|
|
log.Printf("%s: %s %s: %q: %v", "ini", pos, "error:", content, err)
|
|
|
|
dec.executeFinal()
|
|
return newError(pos, content, "", err)
|
|
}
|