Hi everyone,

One of the avro components in Java is the IDL parser. It is generated from
a grammar using JavaCC. This is an old library, that enforces Java 1.5
syntax for the IDL class. What's worse, it is not really upgraded anymore.

For now it works, but it's not suitable for maintaining a high quality
component. As a result, I've been looking for a replacement.

Some alternatives to JavaCC are:
* JavaCC 21; written by a brilliant mind, but who has been out of
programming for a decade and returned a few years ago. JavaCC 21 lacks
maven support, and I cannot find it in Maven Central.
* CookCC; has a YACC-like syntax (quite archaic), and is at version
0.something
* CUP (a Java based “Constructor of Useful Parsers”) generates more
powerful LALR parsers, which allows for grammars that are easier to read.
However, it was last released in Oktober 2015.
* ANTLR is actively developed (9 releases since 2017, last one November
2021) and thus the most obvious choice, but requires ANTLR artifacts at
runtime (i.e. a 328kB extra runtime dependency for the IDL parser)

Going forward, I suggest switching to ANTLR.
My reasons:
1. It's actively maintained
2. There is a Maven plugin,  to generate the parser during the build
3. I know where to find working examples

Does anyone have a better/easier suggestion?

Or should I continue with ANTLR?


Kind regards,
Oscar


-- 
Oscar Westra van Holthe - Kind <[email protected]>

Reply via email to