Yep, I know about tree-sitter and Lezer. They are GLR.
After stuying these, I attempted to find something backed by recent research.
I probably formulated my initial question not completely clearly (or too specifically) and can’t edit it now.
Initially, I wanted generated parsers to be LR-something, but then @jaror linked (Modern parser generator - #2 by jaror) a paper by Jurgen Vinju who stated:
We conclude that top-down is much easier to experiment with and extend. Bottom-up could be faster due to partial evaluation, but still, additional bookkeeping and less sharing are required to filter correctly. Rascal’s SGLL in Java is as fast as the SDF2’s SGLR in C.
Second, it is arguably easier to design and implement (new) disambiguation constructs with GLL than with GLR. Third, data-dependent context-free grammars add the level of formality and generality that we were always searching for when inventing new disambiguation schemes (as exemplified by the Jakker and Iguana Parsing Architectures). We conclude that a top-down implementation of data-dependent context-free parsing is the way to go for Rascal as well as SDF3.
So, after years of research, the objective of the Rascal team became SGLL + DDCFG parsing.
Now, I want:
- a tool written in Haskell
- that produces an SGLL parser for a DDCFG
- the tool generates purely Haskell code
- or, the tool reads a grammar and generates a parser in memory (nice for prototyping)
- and the produced parser is
- fault-tolerant
- optionally incremental
UPD: Maybe I want an even more powerful formalism the LLR-system (paper). Its repo has < 3 KLOC in Java