加载中...

ANTLR(ANother Tool for Language Recognition)是 Terence Parr 教授主导开发的解析器生成器,以统一的文法文件同时生成词法与语法分析器,目标语言覆盖 Java、Python、C#、JavaScript、Go、C++ 等。
ANTLR 4 采用自适应 LL(*)——ALL(*) 算法,在运行时动态分析决策,几乎免除左递归改写(直接支持左递归表达式文法)与手工消歧;自动生成解析树,并提供 Listener 与 Visitor 两种遍历模式,把文法与语义动作解耦。
被大量数据库与大数据系统用于 SQL 方言解析(如 Presto/Trino、Spark SQL),也常见于配置语言、模板引擎、代码分析工具;官方文法仓库收录了数百种现成语言文法。
开发效率高、文法可读性好,是原型与 DSL 的首选;相比手写解析器,错误恢复定制与极致性能上仍有折衷。

登录 后参与讨论
暂无讨论,来发表第一条评论吧