天天看点

《ANTLR 4权威指南 》一3.3 将生成的语法分析器与Java程序集成

本节书摘来自华章出版社《antlr 4权威指南 》一书中的第3章,第3.3节,[美] 特恩斯·帕尔(terence parr) 著张 博 译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

在语法准备就绪之后,我们就可以将antlr自动生成的代码和一个更大的程序进行集成。在本节中,我们将会使用一个简单的java示例程序的main()方法调用我们的“初始化语句解析器”,并打印出和testrig的“-tree”选项类似的语法分析树。下面是完整的test.java程序,它体现出了2.1节中的完整的识别流程。

《ANTLR 4权威指南 》一3.3 将生成的语法分析器与Java程序集成

上面的程序使用了很多antlr运行库的类,像是commontokenstream和parsetree,我们将在4.1节中深入学习它们。

下面是编译运行test的方式:

《ANTLR 4权威指南 》一3.3 将生成的语法分析器与Java程序集成

antlr还能自动报告语法错误,并从语法错误中恢复。例如,如果我们输入一个缺失最后的右花括号的初始化语句,结果会是下面这样:

《ANTLR 4权威指南 》一3.3 将生成的语法分析器与Java程序集成

现在,我们已经知道了如何对一个语法运行antlr工具,以及如何将自动生成的语法分析器和一个微型的java程序集成。不过,一个仅仅能够检查语法正确性的程序并没有什么亮点,我们要构建的是一个能够将short数组初始化语句转换为string对象的翻译器。