Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Top 23 parser-generator Open-Source Projects
-
ANTLR
ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
ctpg
Compile Time Parser Generator is a C++ single header library which takes a language description as a C++ code and turns it into a LR1 table parser with a deterministic finite automaton lexical analyzer, all in compile time.
-
ecsharp
Home of LoycCore, the LES language of Loyc trees, the Enhanced C# parser, the LeMP macro preprocessor, and the LLLPG parser generator.
-
pyUBX
Python library for parsing/generating u-blox UBX protocol messages, and for creating parsers/generators in other languages.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
antlr https://github.com/antlr/antlr4
And some related parser tools: - https://github.com/kevinmehall/rust-peg - https://github.com/pest-parser/pest - https://github.com/lalrpop/lalrpop
And some related parser tools: - https://github.com/kevinmehall/rust-peg - https://github.com/pest-parser/pest - https://github.com/lalrpop/lalrpop
Ha, nice to see this on HN: this article was pretty helpful to me to understand the concept a few years back when extending my PEG parsing library [1] with a Pratt parser; this mitigates the problem of PEG parsers not allowing left recursion and allows for a much more concise notation of grammars with operator precedence. Thank you Bob:
1. https://github.com/zevv/npeg
Project mention: A glimpse into the universe where Windows died with the 1980s | news.ycombinator.com | 2024-03-12There are languages with perfectly clean grammars which can't be parsed by yacc because they aren't LALR(1).
I agree that a command processor should have a grammar that can be expressed in a well-known formalism, and its parser generated by a parser generator.
I agree that both POSIX shell and CMD.EXE are flawed because that isn't true.
What I'm disagreeing with, is that it is important that the grammar formalism be LALR(1) in particular, and that the parser generator be yacc in particular.
Suppose I have a Packrat parser generator. [0] And my command processor has a nice clean PEG grammar. And I use the Packrat parser generator to generate the parser of my command processor. That grammar quite possibly isn't LALR(1), and hence yacc in particular won't be able to generate a parser for it. But what's the problem with that? If it is a problem at all, it is a very different problem than the problem that CMD.EXE and POSIX shell have
[0] e.g. https://github.com/arithy/packcc
parser-generator related posts
- nom > regex
- Peg.js: Parser Generator for JavaScript
- What is the state of the art for creating domain-specific languages (DSLs) with Rust?
- Letlang — Roadblocks and how to overcome them - My programming language targeting Rust
- How should I prepare for AI-driven changes in the industry as a Software Engineering Manager
- ELI5- Why can’t regex parse HTML?
- Error "ImportError: No Module named antlr4
-
A note from our sponsor - InfluxDB
www.influxdata.com | 28 Apr 2024
Index
What are some of the best open-source parser-generator projects? This list will help you:
Project | Stars | |
---|---|---|
1 | ANTLR | 16,371 |
2 | PEG.js | 4,726 |
3 | lalrpop | 2,873 |
4 | rust-peg | 1,390 |
5 | cpp-peglib | 827 |
6 | owl | 733 |
7 | bnfc | 566 |
8 | ctpg | 448 |
9 | Melang | 413 |
10 | plex | 399 |
11 | TatSu | 391 |
12 | CSLY | 334 |
13 | npeg | 320 |
14 | packcc | 314 |
15 | bison | 297 |
16 | ecsharp | 168 |
17 | nice-parser | 121 |
18 | mints | 100 |
19 | pyUBX | 81 |
20 | lalr | 77 |
21 | m2lang | 62 |
22 | Covfefe | 59 |
23 | pegasus | 57 |
Sponsored