feat: better error messages
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user