-
Tree-sitter appears to be ultra-focused on producing valid syntax trees really fast. This is great for e.g. syntax highlighting, but suboptimal in cases where you are writing a reference parser for your custom language and want to provide very useful error descriptions. Chumsky seems to be more suited for the latter (and also has a part of tutorial about precedence[0], so it seems to deal at least with that case).
This overview of parser tradeoffs may be helpful: https://blog.jez.io/tree-sitter-limitations/.
[0] https://github.com/zesterer/chumsky/blob/master/tutorial.md#...
-
InfluxDB
InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
-
I haven't written a parser with Chumsky, bit I've played with a little one a bit if you wanna see an example syntax. The error reporting for this project is implemented with `ariadne` which is also really slick.
Parser: https://github.com/ekzhang/percival/blob/main/crates/perciva...
Error reporting: https://github.com/ekzhang/percival/blob/main/crates/perciva...
Datalog playground: https://percival.ink/
To see an error report, delete some punctuation from one of the Datalog code blocks then press shift-return.
-
The creator of Chumsky is also quite a big proponent of getting generic associated types stabilized in Rust [0], interestingly enough. They have several comments talking about how GATs were very helpful for Chumsky to model their combinators.
[0] https://github.com/rust-lang/rust/pull/96709
-
prql
PRQL is a modern language for transforming data — a simple, powerful, pipelined SQL replacement
I can vouch for adriane, the error display library that is the sister project of Chomsky.
We integrated it into PRQL compiler and the errors are beautiful!
https://github.com/prql/prql/pull/275
-