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