chumsky
chumsky copied to clipboard
Write expressive, high-performance parsers with ease.
I've been working on the `typle` crate to make tuple implementations look more like typical Rust code. I found `chumsky` had some complex macro-based tuple implementations, so I've been testing...
In current Pratt parsers, only associativity type of `left` and `right` are supported. However, according to the original designs of Pratt parsing, it should also support Non-Associative infix binary operators....
reference: https://github.com/tkaitchuck/aHash/issues/200 need to update ahash version
All the code in the `/examples/pythonic.rs` is commented out.
I read the tutorial then wanted to see what the finished code look like but when I looked in `examples/foo.rs` I saw that the code was different from the tutorial.
Suppose I have the following parser: ```rust let ident = select! { Token::Ident(ident) => ident, }; just(Token::Keyword(Keyword::Select)) .ignore_then(ident.labelled("column")) .then_ignore(just(Token::Keyword(Keyword::From))) .then(ident.labelled("table")) .map(|(column, from)| Statement::Select(Select { column, from })) ``` When I...
I have parsers `a` and `b` and I want the following rules to work: - if `a` succeeds, we try to parse `b` and the combined parser returns an error...
`#[diagnostic::on_unimplemented]` was stabilized in Rust 1.78.0 :)
Hello, When attempting to compile the following code, I get a very confusing error. ```rust use chumsky::prelude::*; #[derive(Clone, Debug, PartialEq)] pub enum LiteralValue { Zint(isize), Float(f64), Chars(String), Identifier(String), MannaPos(String), MannaNeg(String),...
For the alpha7 pages at least: e.g. On this section: https://docs.rs/chumsky/1.0.0-alpha.7/chumsky/index.html#example-brainfuck-parser The link to `brainfuck.rs` is: `https://github.com/zesterer/chumsky/blob/VERGEN_IDEMPOTENT_OUTPUT/examples/brainfuck.rs`