问题标签 [lr1]
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.
parsing - LR1 解析器和 Epsilon
我试图了解 LR1 解析器是如何工作的,但我遇到了一个奇怪的问题:如果语法包含 Epsilons 怎么办?例如:如果我有语法:
很清楚如何开始:
... 等等
但我不知道如何为这样的语法做:
这样做是否正确:
然后让这个状态在 DFA 中接受?
任何帮助将不胜感激!
parsing - 为 LR(1) 解析构建状态时处理无限循环
我目前正在从以下语法构造 LR(1) 状态。
这是I0的构造
和 I1。
等等。但是当我开始构建 I4 时...
问题是 A -> .aA
当我尝试从 a 构造下一个状态时,我将再次获得与 I4 完全相同的内容,并且这会无限地继续下去。类似的循环发生在
那么,我做错了什么?必须有一些我遗漏的细节,但我浏览了我的笔记和我的书,要么找不到,要么就是不明白这里出了什么问题。有什么帮助吗?
grammar - 这个语法怎么了
WORD 和 SOMETHING 是非空终结符
这是一个 LR1 语法,所以野牛应该毫无问题地解析它。
但是我在运行时遇到了一个意想不到的问题:程序提示输入两次,例如,当我输入“qwerty”时,它提示输入第二个输入,当我尝试调试它时,我得到了这个:
c# - 我在哪里可以找到 LR(1) 解析器生成器的简单、易于理解的实现?
我在哪里可以找到 LR(1) 解析器生成器的简单(尽可能多,但不简单!)实现?
我不是在寻找性能,只是在寻找生成 LR(1) 状态(项目集)的能力。
C++、C#、Java 和 Python 都适合我。
parsing - LR(1) 语法:如何分辨?支持/反对的例子?
我目前正在查看 GNU Bison 来解析程序代码(或者实际上是扩展使用 Bison 来执行此操作的程序)。我知道 Bison 只能(或:最好)处理 LR(1) 语法,即一种特殊形式的上下文无关语法;而且我实际上也(相信)理解上下文无关和 LR(1) 语法的规则。
但是,不知何故,我对 LR(1) 语法的概念缺乏很好的理解。以 SQL 为例。SQL 包含——我相信——一种上下文无关的语法。但它也是 LR(1) 语法吗?我怎么知道?如果是,什么会违反 LR(1) 规则?
parsing - printing parse Tree as a dynamic list in c language
I have written a code in C to implement LR(1) parse table, however now I am facing a problem in printing the parse tree. How do we do that in C? The tree can have variable children and since the parsing algorithm is bottom-up, I am not sure where to begin. I want to make it look like the output of the pstree
command or something of that sort.
Thank You
parsing - LR(1) - 如何计算前瞻
我很难理解如何计算前瞻。
可以说我有这个扩展语法:
我这样写了 State 0:
使用许多解析模拟器,我看到所有计算器都说:
为什么?R后面不能跟一个“=”吗?
parsing - 如何重写上下文无关语法使其成为 LR(1)?
对于给定的上下文无关文法:
如何重写语法使其成为 LR(1)?
当前语法在解析输入“id : .id”时存在移位/减少冲突,其中“。” 是解析器的输入指针。
该文法产生满足正则表达式 (id:(id)*)+ 的语言
parsing - 如何为非常简单的编程语言创建 Lr(1) 解析器
我需要为带有变量、简单条件、循环和函数的代码创建解析器,例如:
我阅读了很多理论,但没有找到任何 Lr(1) Parser for code 的工作示例。有必要在没有任何解析器生成器的情况下这样做..有人吗?
abstract-syntax-tree - 如何将 LR(1) Parse 翻译成抽象语法树?
我编写了一个表驱动的 LR(1) 解析器,它工作得很好,但是在将解析转换为语法树/抽象语法树的阶段我有点脱节。这是一个我非常热衷的项目,但我真的只是在这里遇到了死胡同。提前谢谢你的帮助。
编辑:我的解析器也只使用一个二维数组和一个动作对象,告诉它下一步去哪里,或者它是否减少去哪里以及要弹出多少项目。我注意到很多人使用访问者模式。我不确定他们如何知道要制作哪种类型的节点。
这是上下文的下推自动机