decoder [WIP]

Signed-off-by: Alejandro Mery <amery@jpi.io>
This commit is contained in:
2023-09-01 22:43:36 +00:00
parent dd05b7d26b
commit a3c7f57acd
3 changed files with 259 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
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) newErrInvalidToken(t *token) *lexer.Error {
return newError(t.pos, t.value, "", errInvalidToken)
}
// parserOnError is the callback for lexer errors
func (*Decoder) parserOnError(pos lexer.Position, content string, err error) error {
log.Printf("%s: %s %s: %q: %v", "ini", pos, "error", content, err)
return newError(pos, content, "", err)
}