简单地说 ANTLR 是一个词法语法分析工具, 它不是一个应用层面的库, 也不是为应用程序开发使用的. ANTLR 的用户是需要定义某种语法, 并实现对该语法文件的解析的库开发者....下面列举几个使用 ANTLR 的项目:
Groovy - 解析 Groovy 源文件并生成 AST
Cassandra - CQL 语法解析和词法分析
Salesforce APEX - APEX 脚本解析器...query language, 再到庞大复杂的 Groovy, 都不会有人在 ANTLR 的生成结果上做修改打磨, 就像没有人在 Javac 编译之后的字节码文件上做修改打磨一样, 这个 Parser...是一个中间结果, 对于这个中间结果的细致打磨当然应该回到 g 语法文件; 这个道理和 .class 文件中有问题应该回到原始的 .java 源代码去修改一样, 没有人会试图去"打磨"生成的 class...字节码, 对吗?