Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
是否可以使用 ANTLR 或 ANTLR3 创建 LL(1) 表驱动(非递归)编译器?
不。
但是,由于 ANTLR 是开源的,您可以修改 ANTLR 的一个分支来实现它。
ANTLR 将词法分析器和解析器构建为递归下降源代码。这就是 ANTLR 易于使用和流行的原因,因为人们可以查看源代码并了解词法分析器和解析器的工作原理,而不是查看表条目。因为是源代码,所以也可以使用工具来调试源代码。如果 ANTLR 使用表而不是源代码输出,那么对于那些自己学习词法分析和解析的人来说,它将失去其易于理解和有用性。