【发布时间】:2012-03-27 15:50:14
【问题描述】:
是否可以使用 ANTLR 或 ANTLR3 创建 LL(1) 表驱动(非递归)编译器?
【问题讨论】:
标签: compiler-construction antlr antlr3 ll non-recursive
是否可以使用 ANTLR 或 ANTLR3 创建 LL(1) 表驱动(非递归)编译器?
【问题讨论】:
标签: compiler-construction antlr antlr3 ll non-recursive
没有。
但是,由于 ANTLR 是开源的,您可以修改 ANTLR 的一个分支来实现它。
ANTLR 将词法分析器和解析器构建为递归下降源代码。这就是 ANTLR 易于使用和流行的原因,因为人们可以查看源代码并了解词法分析器和解析器的工作原理,而不是查看表条目。因为是源代码,所以也可以使用工具来调试源代码。如果 ANTLR 使用表格而不是源代码输出,那么对于那些自学词法分析和解析的人来说,它将失去其易于理解和实用性。
【讨论】: