feat: cleaner parsing functions

This commit is contained in:
2025-12-27 20:46:10 -05:00
parent c37e96770f
commit 14fc4b30da
5 changed files with 121 additions and 85 deletions

View File

@@ -52,7 +52,7 @@ func getToken(i *iterator.Iterator[rune]) (*token.Token, error) {
letter, err := i.Next()
if err != nil {
return nil, trace.WrapError(fmt.Errorf("cannot produce next token"), err)
return nil, trace.Wrap(err, "cannot produce next token")
}
switch {
@@ -65,11 +65,11 @@ func getToken(i *iterator.Iterator[rune]) (*token.Token, error) {
case letter == '\\':
return token.NewSlash(index), nil
case letter == '\n':
return token.NewNewline(index), nil
return token.NewSoftBreak(index), nil
case letter == '{':
return token.NewNewline(index), nil
return token.NewOpenBrace(index), nil
case letter == '}':
return token.NewNewline(index), nil
return token.NewCloseBrace(index), nil
case letter == ':':
if _, err := parseCharacter(i, '='); err != nil {
return nil, err
@@ -77,7 +77,7 @@ func getToken(i *iterator.Iterator[rune]) (*token.Token, error) {
return token.NewAssign(index), nil
}
case letter == ';':
return token.NewEnd(index), nil
return token.NewHardBreak(index), nil
case unicode.IsSpace(letter):
return nil, nil
case isVariable(letter):