feat: undo

This commit is contained in:
2026-02-11 20:54:05 -05:00
parent b3f9f08c62
commit 3b7cf21eb7
3 changed files with 27 additions and 41 deletions

View File

@@ -4,18 +4,18 @@ import "git.maximhutz.com/max/lambda/pkg/token"
// scanner is the declarative lexer for the Saccharine language.
var scanner = token.NewScanner[TokenType]().
On(`:=`, TokenAssign).
On(`\(`, TokenOpenParen).
On(`\)`, TokenCloseParen).
On(`\{`, TokenOpenBrace).
On(`\}`, TokenCloseBrace).
On(`;`, TokenHardBreak).
On(`\n`, TokenSoftBreak).
On(`\\`, TokenSlash).
On(`\.`, TokenDot).
On(`[a-zA-Z0-9_]+`, TokenAtom).
Skip(`#[^\n]*`).
Skip(`[^\S\n]+`)
On(`:=`, TokenAssign, 1).
On(`\(`, TokenOpenParen, 0).
On(`\)`, TokenCloseParen, 0).
On(`\{`, TokenOpenBrace, 0).
On(`\}`, TokenCloseBrace, 0).
On(`;`, TokenHardBreak, 0).
On(`\n`, TokenSoftBreak, 0).
On(`\\`, TokenSlash, 0).
On(`\.`, TokenDot, 0).
On(`[a-zA-Z0-9_]+`, TokenAtom, 0).
Skip(`#[^\n]*`, 0).
Skip(`[^\S\n]+`, 0)
// scan tokenizes a string into Saccharine tokens.
func scan(input string) ([]Token, error) {