ANTLR: Antlr is in maintenance mode - go-sqlparser/current GitHub Wiki
Antlr is in maintenance mode
https://github.com/antlr/grammars-v4/pull/2155
"symbol conflicts"
Antlr can generate a parser for a dozen or so different targets. In the past, people noticed that using reserved words from a target language in a grammar would cause Antlr to generate a parser with build issues for that target.
For example, if you had a rule in your grammar such as "int : INT;", the Antlr4 Tool would have generated methods, functions, or variables with the name "int", which clearly would not build for C# or Java. This problem was called a symbol conflict.
To work around symbol conflicts, it was decided to add a check to the tool to prevent people from including symbols in a grammar that would cause build errors. The Tool would stop and output "symbol foo conflicts with generated code in target language or runtime".
This was fine because old grammars would not be impacted when using a new version of Antlr. People writing a new grammar would just "get used to" the preventive check if they tried to use a symbol labeled haram.
The problem with that design decision is that the grammars in this repo are assumed to work on different targets. People who pick up the grammar and try to use it for a different target than what it was developed for would run into symbol conflicts. And, the CI scripts for this repo now test grammars across the various targets.
While a change in the Antlr4 Tool to generate unique names in the generated target code would be the right way to solve this issue, it's not possible because "Antlr is in maintenance mode". Painfully, the only practical solution is to rename all conflicting symbols in all grammars. However, in my opinion, this is the wrong way to solve the problem. For this and other reasons, we should start to look beyond Antlr, towards a new parser generator tool.