你好,堆栈的流成员。
我正在学习编译器类。我确实理解 Top-Down Parser 应该避免左递归,并转换为右递归方式。
问题是,
a)我是否理解正确的 Top-Down Parser 等于 LL 而 Bottom-Up Parser 等于 LR ?
b) 我发现左递归是自称 ex) Expr :== Expr '+' Term | 可以导致无限循环查找 Expr 的项。但无论如何,任何考虑输入 C 或 Java 的示例代码?(我不想要解析器或扫描仪代码)我需要的是带有句子形式的案例代码示例,通过左递归发生无限循环。
c) 在自顶向下解析器中使用右递归实际上有什么不同?
ANS c) 无需回溯。但还有别的吗?
ANS b)x - 2 * y
还有别的东西吗?因为这个适用于回溯的解析方式。
我发现了非左递归和左递归的案例示例。
左递归语法
A -> Ax
非左递归语法
A -> Bx
B -> Ay
两者都进入无限循环。
谢谢你,感谢你所有的专家。