Antlr-Ng Parser Generator
Mood
thoughtful
Sentiment
mixed
Category
tech
Key topics
Parser Generators
ANTLR
Compiler Design
The Antlr-Ng parser generator is introduced as a potential successor to ANTLR, sparking discussion about its relationship to the original project, performance improvements, and the state of parser generator technology.
Snapshot generated from the HN discussion
Discussion Activity
Active discussionFirst comment
4d
Peak period
15
Day 4
Avg / period
5
Based on 20 loaded comments
Key moments
- 01Story posted
Sep 9, 2025 at 10:04 AM EDT
3 months ago
Step 01 - 02First comment
Sep 12, 2025 at 11:03 PM EDT
4d after posting
Step 02 - 03Peak activity
15 comments in Day 4
Hottest window of the conversation
Step 03 - 04Latest activity
Sep 23, 2025 at 5:50 AM EDT
2 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
I didn't really care about diagnostics. It has some, that's enough.
And of course it's easier to maintain declarative grammar description.
My guess is, that it's often used for those kinds of simple grammars without high requirements to impementation. When you need to get things done. Like regex. You might write code to parse a string in a more efficient way, but with regex it's almost always easier. So ANTLR is like regex engine for more complicated inputs.
If that's the case, I think it's misleading. It's fine to fork a project, but you don't get to call yourself the next generation of someone else's project.
It's about a tool claiming to be the successor without seeming to be part of the ANTLR organisation. Are they completely different people, did the ANTLR4 owners stop writing it? There seems to be deliberately no clarification on this.
What improvements have been made to make them better? The problem domain seems pretty well defined and even 20 years ago the things that were changing felt like polishing off a few rough edges caused by earlier resource constraints.
I don't want to be dismissive and say "Why make this?" as a implied suggestion that it shouldn't have been made.
Nevertheless, Why make this? I assume there are good reasons for doing this that I am not aware of, what are they?
https://github.com/antlr-ng/antlr-ng#future
Basically they feel the main problem with the original antlr is it’s being stifled by its batteries included nature. They’re hoping that splitting it will make each of the runtimes more agile. They don’t mention why the core was rewritten rather than just forking the original.
I dislike Java as much as the next guy, but I believe the true value of tools (and this tool in particular) is in the embedded wisdom and experience of their creators/Terrence Parr. Just generating a functionally equivalent port doesn't add much value.
That said, that's just a first impression, I have no idea what motivated this fork
Antlr-ng is Mike Lischke's port of Antlr4, which he likely undertook because ANTLR is used at Oracle for one MySQL product. It's not "official ANTLR," but Terence Parr granted him the use of the "ANTLR" name and allowed a fork to port the existing Antlr4 code to TypeScript.
Mike's Antlr-ng port of the Antlr4 code began with a Java-to-TypeScript translator he wrote. Along the way, he made some improvements to the TypeScript target.
But, Antlr-ng uses ALL(star). Therefore, it shares the same performance issues as Antlr4. I'm not sure where Mike wants to take Antlr-ng to address that issue.
ANTLR is presented as a generator for small, fast parsers. ALL(star) probably can't do that. Many grammars people write are pathological for ANTLR. People hand-write parsers, reverse-engineer the EBNF from the implementation as an afterthought, drop the critical semantic predicates from the EBNF, and then refactor it into something else—example: the Java Language Spec.
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.