chumsky
chumsky copied to clipboard
Write expressive, high-performance parsers with ease.
As of commit ef9f20f6177b938550d0c12889c5d2dbac85558f, cloning and building the repo results in an extraneous diff on `Cargo.lock`, which this PR fixes.
resolves #677 The Or parser will now choose a path that succeeded first and if both fail it will try to figure out witch error is better suited
I'm building an lsp, so error recovery is very important for me. I wanted to recover a function call that would look something like that `foo(` My parser would look...
Repro: ```rs use chumsky::prelude::*; #[derive(Clone, Debug, PartialEq, Eq, Hash)] pub enum Instr { Name(char) } fn parser>> { let name = just('a'..='z').map(Instr::Name); name.padded().repeated().collect() } ``` This does not compile due...
```rust struct ParsableType; fn parser() -> impl Parser { let parsers: [BoxedParser
The documentation for the pratt parser [postfix function](https://docs.rs/chumsky/1.0.0-alpha.7/chumsky/pratt/fn.postfix.html) states that the accepted function signatures are the following. ```rs // Transform the operand impl Fn(O) -> O // Combine the operand...
By using `recursive_2` or `recursive_fold` instead of `Recursive::declare` we can prevent situations where we either keep too many strong references around, leading to memory leaks, or too few strong references...
I cloned the main branch of chumsky, and after running the command, the following error appeared: ```sh Compiling winnow v0.6.0 warning: unexpected `cfg` condition value: `stacker` --> src\recursive.rs:171:7 | 171...