Jayce is a simple tokenizer
```rust use jayce::{Tokenizer, TokenizerResult};
let source = "Excalibur = 5000$"; let duos = vec![ ("newline", r"^\n"), ("whitespace", r"^\s+"), ("name", r"^[a-zA-Z_]+"), ("price", r"^[0-9]+\$"), ("equals", r"^="), ]; let mut jayce = Tokenizer::new(source, &duos);
while let TokenizerResult::Token(token) = jayce.next() { println!("{:?}", token); } ```
rust,ignore
Token { kind: "name", value: "Excalibur", line: 1, column: 10 }
Token { kind: "whitespace", value: " ", line: 1, column: 11 }
Token { kind: "equals", value: "=", line: 1, column: 12 }
Token { kind: "whitespace", value: " ", line: 1, column: 13 }
Token { kind: "price", value: "5000$", line: 1, column: 18 }
next
returns a TokenizerResult
which can be
Found(token)
If a regex matchesUnknown(message)
When there is zero matchEnd
Reaching the source ends