1

是否可以使用 ANTLR 或 ANTLR3 创建 LL(1) 表驱动(非递归)编译器?

4

1 回答 1

1

不。

但是,由于 ANTLR 是开源的,您可以修改 ANTLR 的一个分支来实现它。

ANTLR 将词法分析器和解析器构建为递归下降源代码。这就是 ANTLR 易于使用和流行的原因,因为人们可以查看源代码并了解词法分析器和解析器的工作原理,而不是查看表条目。因为是源代码,所以也可以使用工具来调试源代码。如果 ANTLR 使用表而不是源代码输出,那么对于那些自己学习词法分析和解析的人来说,它将失去其易于理解和有用性。

于 2012-03-27T16:35:15.443 回答