chumsky icon indicating copy to clipboard operation
chumsky copied to clipboard

Write expressive, high-performance parsers with ease.

Results 110 chumsky issues
Sort by recently updated
recently updated
newest added

The following code prints out `0..3` which means that `.padded()` includes the padding in the span of the output. ``` let parser = just::("5").padded().map_with_span(|_, s: Span| s); let result =...

I was having trouble parsing binary operators with deeply nested combinators to handle precedence. The Rust compiler time and memory usage grow exponentially until it runs out of memory for...

I propose a combinator that repeats the first parser until the second one matches. [nom](https://github.com/Geal/nom) has an equivalent combinator: https://docs.rs/nom/7.1.1/nom/multi/fn.many_till.html The output type would be `(Vec, B)`, `A` and `B`...

Parsers don't do anything by themselves, so the `#[must_use]` attribute should probably be applied to them (as with `Iterator`).

good first issue
api

Hi again! I want to write a parser where the delimiters are optional. I tried the following: ```rust let lapp__ = expr .clone() .then_ignore(just(Token::Space)) .then_ignore(just(Token::RParen)) .then(expr.clone()); let lapp_ = choice((...

Having an example on how to parse Python-like languages that are aware of indentation would be interesting.

wontfix

I don't really see why this parameter is needed, and as far as I'm aware the end of a set of disjoint ranges is a number and not a range,...

This is now being developed in #82

enhancement
help wanted

I would expect that adding recovery logic to a grammar doesn't functionally change the grammar, but currently it does: `repeated()` and `or_not()` (at least) with an inner that can recover...

1.0

AFAIK there's not a lot of documentation (except few lines), nor examples on how to use the recovery module and the `parse_recovery_*` functions https://docs.rs/chumsky/latest/chumsky/recovery/index.html Especially on the functions `nested_delimiters` `skip_then_retry_until`...

1.0
error-recovery