问题标签 [left-recursion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
left-recursion - 左递归消除问题
所以我有这个左递归语法
就目前而言,它是左递归,所以我通过另一个步骤消除了左递归:
但是我有一种下沉的感觉,我错误地消除了它,因为如果我追踪它,那么第一组E
仍然会以E
. 我对么?还是我错过了什么?这个问题是更大语法集的一部分,仅供参考。
left-recursion - 消除特定语法的左递归
我已经浏览了一百万个示例/教程,但我仍然无法消除此语法的左递归:
有任何想法吗?
recursion - 删除左递归过程
我只是对左递归时的某些事情感到好奇,我已经完成了这个问题,当我完成左递归时,我已经将 F 添加到 S 中的所有内容中。我们是否总是为左递归这样做(我的老师没有解释得很好)。
antlr - ANTLR4 相互左递归
我刚刚遇到了 ANTLR 4.2.2 的一个奇怪问题:
考虑一个(简化的)java语法。这不会编译:
ANTLR 输出以下错误:
是的,我也看到了左递归。但我没有看到相互左递归,只有一个普通的。
当我删除周围的括号时(classOrInterfaceType)
,它编译得很好。当然,括号是多余的,但是语法是自动生成的,代码生成器在某些情况下总是插入括号。那么这里的问题是什么?
antlr - 尝试解决左递归尝试使用 ANTLR 构建解析器
我目前正在尝试使用 Antlr 和 Ecpise 为 Oberon 语言构建一个解析器。
这是我到目前为止所得到的:
我的问题是,当我检查语法时,我收到以下错误,只是找不到合适的方法来解决这个问题:
我也有声明序列和简单表达式的问题。
当我使用options { … backtrack = true; … }
它时至少可以编译,但是当我运行测试文件时显然不再正常工作,但是我找不到自己解决左递归的方法(或者我可能只是太盲目了此刻,因为我已经看这个太久了)。有什么想法可以更改发生错误的行以使其正常工作吗?
编辑
我可以修复三个错误之一。statement
现在工作。问题是,assignment
两者procedurecall
都以designator
.
parsing - 仅使用 e 终端消除左递归
如果有语法:
其中 e 是 epsilon (空字符串)有没有办法从这个语法中消除左递归?
antlr - 相互左递归?
我正在为 ANTLR 中的语法开发解析器。我目前正在研究 () 具有最高优先级的表达式,然后是 Unary Minus 等。
当我添加 ANTLR 行时出现错误:以下规则集是相互左递归的 [add, mul, unary, not, and, expr, paren, accessMem, relation, or, assign, equal] 我该怎么做解决这个问题?提前致谢。
python - 使用 PyParsing 解析函数调用
我正在尝试解析一种简单的语言。问题在于解析函数调用。我试图告诉它函数调用是一个表达式,后跟左括号、参数列表和右括号。我有这样的事情:
问题很明显:expr
是左递归的。但是,我不知道该怎么做才能解决这个问题。我对右递归式语法(又名 PLY、Yacc 等)很有经验,但我仍在尝试找出左递归语法。
parsing - 如何修改语法以消除 ANTLR4 中的左递归错误?
我正在尝试解析一种语言。以下 ANTLR4 解析器规则直接从语言规范中复制:
但是antlr报错:以下几组规则相互左递归不知道怎么修改语法,希望有人能帮帮我。谢谢。