问题标签 [lr]

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.

0 投票
1 回答
3085 浏览

c++ - 显示有效的 LR(0) 项

我必须创建一个 C++ 程序来显示编译器设计中 SLR 解析中的有效 LR(0) 项。到目前为止,我能够将语法作为用户的输入并找到它的闭包。但我无法在 SLR 中进一步实现 goto。谁能给我提供有关如何显示语法的有效 LR(0) 项的链接或代码。
-提前致谢

0 投票
7 回答
8542 浏览

programming-languages - LL 与 LR 解析器的局限性?

我知道 LL 与 LR 解析器的基本区别。我也知道 GLR、SLR 和 LALR 都是 LR 解析器的扩展。所以我更详细的问题是......

给定一个 LL(*) 解析器和 LR 解析器的任何变体,是否有任何语言可以用一种语言来描述,而不能用另一种语言来描述?或者更简单地说,是否有任何特性或属性都无法表达?

作为一个具体的例子。如果我要使用 LL(*) 解析器创建一种语言,我是否会遇到想要添加到我的语言中的所需功能/属性,而这只有通过 LR 解析器才能实现(反之亦然)?

0 投票
4 回答
85179 浏览

algorithm - LL和LR解析有什么区别?

谁能给我一个 LL 解析与 LR 解析的简单示例?

0 投票
2 回答
1226 浏览

parsing - LR(k) 解析器,k 无限,不限于确定性上下文无关语言?

具有无限前瞻的理论 LR 解析器是否能够解析(明确的)可以由上下文无关文法描述的语言?

通常 LR(k) 解析器仅限于确定性上下文无关语言。我认为这意味着必须始终有一个当前可以应用的语法规则。在当前的前瞻上下文中的含义不超过一种可能的解析方式被允许发生。“语言实现模式”一书指出,“......解析器是不确定的 - 它无法确定选择哪个替代方案。” 如果前瞻集重叠。相反,如果有多个备选方案,非确定性解析器只会选择一种方式,然后返回决策点,如果在某个点不可能继续先前做出的决策,则选择下一个备选方案。

无论我在哪里阅读 LR(k) 解析器的定义(例如在 Wikipedia 或 Dragon Book 中),我总是会读到以下内容:“k 是前瞻标记的数量”或“k > 1”的情况,但如果 k 可以是无限的,则永远不会. 无限前瞻与尝试所有替代方案直到成功不一样吗?

为了(隐式)区分 LR(k) 解析器和非确定性解析器,是否假设 k 是有限的?

0 投票
1 回答
911 浏览

c# - 算术表达式的 LR 解析

我有像 (1+1),1+(a+1) 这样的表达式的 LR 语法和 LR 表

0:E'->E

1:E->E+T

2:E->T

3: T -> T * F

4:T->F

5: F ->( E )

6:F->身份证

我尝试检查像 1+1 或 1+(1*a)+1 这样的表达式,但解析器说这个表达式不正确。

我可以用我的语法做什么来修复它?

0 投票
4 回答
54693 浏览

parsing - LL(1)、LR(1)、LR(0)、LALR(1) 文法的例子?

是否有一个很好的在线资源,其中包含一些主要解析算法(LL(1)、LR(1)、LR(0)、LALR(1))的语法集合?我发现许多属于这些家族的单独语法,但我不知道有人写过大量示例语法的好资源。

有人知道这样的资源吗?

0 投票
1 回答
1573 浏览

theory - 为什么所有的 LL(1) 文法都是 LR(1)?

众所周知,任何 LL(1) 语法也是 LR(1),但我似乎无法在任何地方找到严格的证明。我听说过一些关于证明的高级概述(例如,由于 LL(1) 语法一次仅从一个标记确定其产生式,而 LR(1) 语法可以在做出决定之前扫描更多的输入制作)。但是,在查阅了两本关于编译器和解析的教科书并在 Google 上进行了快速搜索之后,我似乎无法找到更正式的证据来证明这一事实。

有谁知道这个证明,或者至少在哪里可以找到它?

0 投票
4 回答
69324 浏览

algorithm - LR(0) 和 SLR 解析有什么区别?

我正在研究我的编译器概念,但是我有点困惑......谷歌搜索让我无处可寻。

SLR 和 LR(0) 解析器是否相同?如果不是,有什么区别?

0 投票
1 回答
301 浏览

parsing - 扩展语法以支持 unar 操作

我有非常简单的语法:

我想扩展它以支持 unar 操作(恕我直言,这是正确的语法,但它可能是错误的,因为我在语法、解析器、词法分析器等方面是真正的 n00b):

当我尝试更新解析表时,真正的问题出现了: 在此处输入图像描述

所以问题是我应该如何编辑这个表来提供一元操作支持(基于描述的语法)?

PS无论如何,我将非常感谢使用LR(k)(或LALR)解析器解析Java(或任何其他OO语言)中的ariphmetic表达式的任何帮助^_^

PS2。解析器生成器不适合这种情况。

0 投票
1 回答
7769 浏览

parsing - 为什么这个 LR(1) 语法不是 LALR(1)?

这不是我的作业,我正在尝试理解 LALR(1) 语法。所以我发现了这个

我写了 LR 项目,但我不明白为什么这是 LR(1) 语法而不是 LALR(1)?

谁能帮我?谢谢