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 is a minimum repro. It seems that the label gets used only in certain situations for the keyword parser. This may also be the case for other...

Example APIs: ```rs Parser::into_iter_parser(self) -> impl IterParser where O: IntoIterator IterParser::chain(self, impl IterParser) -> impl IterParser IterParser::repeated(self) -> impl IterParser // TODO: Conflict with ::repeated? ```

api

When using the new pratt parsing feature, how would I create a syntax tree which includes spans? e.g. How does one get spans that include the operators? And how does...

Some things me might want to hide: - `Mode` - `Check`/`Emit`/etc. - `Parser::go`/`Parser::go_check`/`Parser::go_emit`/etc. - `InputRef` - Most of `Input` (`Input::next_maybe`, for example) Hiding these details does not necessarily make the...

help wanted
api
1.0
interop

I see with_state is good for string interning and per-item arenas. Can it be currently used to collect a json array into a bumpalo Vec? If not, what kind of...

enhancement

Whenever the `select!` parser returns an `ExpectedFound` error, it makes the `expected` field empty. I think this has to do with tokens that contains values like: ```rust enum Token {...

The `recursive` implementation leaks memory if it references itself and the parser definition is defined using the `define` function. See the following example that creates millions of parsers, but the...

Consider the following code: ```rust use std::fmt::{Debug, Display}; use chumsky::{prelude::*, util::Maybe}; #[derive(Debug, Clone, PartialEq, Eq)] enum MyErr { Unexpected { expected: Vec, found: Option, span: SimpleSpan, }, UnclosedComment { start:...

I am probably doing something wrong. if not, we could an easy way to parse to a vec of options: originally I had ```rust fn tokenizer>> { recursive(|input| { choice((...

It is near impossible to read the often-page-long errors you get with even basic parsers. you basically have to ignore the error messages 90% of the time and keep searching...