Antlr(ANother Tool for Language Recognition)是一个功能强大的解析程序,它基于编译原理理论将用户编写的语法规则经过词法分析和语法分析后形成一颗语法树,然后在此基础上提供深度优先遍历算法,按照监听器模式或者访问者模式对访问到的每个节点执行回调方法,这样用户只需要编写自己处理节点的业务逻辑,而不需要关心语法如何识别和如何遍历,大大简化了开发语言程序的难度。
我们知道的大名鼎鼎的大数据处理框架 Hive、Spark、Presto 都是基于 Antlr 解析 SQL 语法规则,然后在语法树的基础上生成自己的执行计划。除了这些用途外,Antlr 还可以用于语言翻译等、规则处理等各种领域。
本文通过编译原理基础为开始,通过示例程序详细介绍如何基于 Antlr 开发应用程序,在文章中涉及到:
然后在访问器的基础上实现一个表达式计算程序,相信通过本文的介绍,能够让读者快速入门 Antlr,为阅读 Hive、Spark 源码打下基础。
本文适合于对 Antlr 感兴趣,以及想通过 Antlr 开发语言处理的任何人。文末附带推荐的权威中文翻译教材。
绑定成功
预订达标,作者开始写作
审核未达标,本场 Chat 终止
审核达标,文章发布
审核未达标,本场 Chat 终止