#lexer #parse #token #munch

muncher

Easy to use char muncher for writing a lexer

5 unstable releases

0.7.0 Aug 27, 2021
0.6.2 Aug 20, 2021
0.6.1 Jun 6, 2020
0.6.0 Apr 8, 2020
0.5.0 Feb 6, 2020

#153 in Parser tooling

Download history 123/week @ 2024-07-22 197/week @ 2024-07-29 94/week @ 2024-08-05 118/week @ 2024-08-12 9/week @ 2024-08-19 52/week @ 2024-08-26 124/week @ 2024-09-02 61/week @ 2024-09-09 75/week @ 2024-09-16 114/week @ 2024-09-23 117/week @ 2024-09-30 72/week @ 2024-10-07 89/week @ 2024-10-14 130/week @ 2024-10-21 23/week @ 2024-10-28 58/week @ 2024-11-04

302 downloads per month
Used in 5 crates

MIT/Apache

30KB
608 lines

Muncher

Rust Stable Latest Version

About

An easy-to-use string muncher that allows easy tokenization when writing a parser. Muncher has peek and fork capabilities, so you can look ahead and behind when needed. If lexing braces, Muncher has a built-in brace matching stack accessed from Muncher::brace_stack().

Use

[dependencies]
muncher = "0.6"

Examples

use muncher::Muncher;

let input = "hello\nworld";
let mut m = Muncher::new(input);

let hello = m.eat_until(|c| c == &'\n').collect::<String>();
assert_eq!(m.peek(), Some(&'\n'));
assert!(m.eat_eol());

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

No runtime deps