feat: better error messages

This commit is contained in:
2025-12-27 02:39:56 -05:00
parent 884180de92
commit 1896cd652d
6 changed files with 70 additions and 51 deletions

View File

@@ -7,6 +7,7 @@ import (
"git.maximhutz.com/max/lambda/pkg/iterator"
"git.maximhutz.com/max/lambda/pkg/saccharine/token"
"git.maximhutz.com/max/lambda/pkg/trace"
)
// isVariables determines whether a rune can be a valid variable.
@@ -38,7 +39,7 @@ func getToken(i *iterator.Iterator[rune]) (*token.Token, error) {
letter, err := i.Next()
if err != nil {
return nil, fmt.Errorf("cannot produce next token: %w", err)
return nil, trace.WrapError(fmt.Errorf("cannot produce next token"), err)
}
switch {
@@ -50,6 +51,8 @@ func getToken(i *iterator.Iterator[rune]) (*token.Token, error) {
return token.NewDot(index), nil
case letter == '\\':
return token.NewSlash(index), nil
case letter == '\n':
return token.NewNewline(index), nil
case unicode.IsSpace(letter):
return nil, nil
case isVariable(letter):