问题标签 [ll]

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 回答
71 浏览

parsing - 制作语法 LL

我已经在转换它上浪费了很多时间,但我总是起床获得通用前缀 ID。

谁能给我解释一下?因为我正试图为一个非常大的语法做这件事,并且需要我的基础知识清楚。

A、B、C、D 是唯一的非终端。

0 投票
1 回答
97 浏览

grammar - 有人可以验证以下 FIRST 和 FOLLOW 集是否正确吗?

我正在做一个练习来为语法创建 FIRST 和 FOLLOW 集。我认为我所做的是正确的,但答案与我的略有不同。所以需要有人帮助来验证这一点。谢谢你。语法是:

EPSILON 是真正的“epsilon”,这是我为 X 设置的第一个答案:

但给出的答案是:

有人可以验证哪个是正确答案吗?谢谢:)

0 投票
1 回答
61 浏览

parsing - 跟随集合自顶向下解析

我对遵循以下规则集有疑问:

我已经计算出Follow(L)Follow(L'). 也是Follow(L')在,Follow(L)所以它们都将包含:{end, $}. 但是,L'Nullable 也将Follow(L)包含Follow(C)?

我已经计算出Follow(C)=First(L')Follow(C) subset Follow(L) = { ; $ end}.

在答案中Follow(L)and Follow(L')contains only {end, $},但它不应该包含;as可以为 null 吗Follow(C)L'

谢谢

0 投票
1 回答
723 浏览

parsing - 如何使这个 LL(1) 解析器适应 LL(k) 解析器?

在龙书的附录中,给出了一个 LL(1) 前端作为例子。我认为这很有帮助。但是,我发现对于下面的上下文无关语法,至少需要一个 LL(2) 解析器。

我如何调整 LL(1) 解析器的词法分析器以支持 k 前瞻标记?有一些优雅的方法吗?

我知道我可以为令牌添加一些缓冲区。我想讨论一些编程的细节。


这是解析器:


Lexer.scan()从流中返回下一个令牌。

0 投票
0 回答
145 浏览

antlr - 尝试解决左递归尝试使用 ANTLR 构建解析器

我目前正在尝试使用 Antlr 和 Ecpise 为 Oberon 语言构建一个解析器。

这是我到目前为止所得到的:

我的问题是,当我检查语法时,我收到以下错误,只是找不到合适的方法来解决这个问题:

我也有声明序列和简单表达式的问题。

当我使用options { … backtrack = true; … }它时至少可以编译,但是当我运行测试文件时显然不再正常工作,但是我找不到自己解决左递归的方法(或者我可能只是太盲目了此刻,因为我已经看这个太久了)。有什么想法可以更改发生错误的行以使其正常工作吗?

编辑 我可以修复三个错误之一。statement现在工作。问题是,assignment两者procedurecall都以designator.

0 投票
1 回答
987 浏览

parsing - 条件语句的 LL(1) 语法

我正在为 Pascal 创建一个解析器,但我陷入了条件语句。

假设我有这个代码片段:

这是有效的帕斯卡 if 语句。但是,当我尝试为((10 mod 3) = 1)表达式提出 LL(1) 语法时,我崩溃并在括号上烧毁。问题是,上面的条件可以重写为if (10 mod 3) = 1 then ...或由于运算符优先级为if 10 mod 3 = 1 then ...

我有算术表达式的典型 LL(1) 语法:

但是我无法为整个条件提出 LL(1) 语法。我想到了类似的东西:

where来自上面EE算术表达式语法。

这不是 LL(1),因为CF -> E REL_OP EandCF -> '(' E REL-OP E ')'规则包含'('.

任何想法如何解决第一次碰撞?

0 投票
1 回答
413 浏览

antlr - ANTLR4 力 LL(1)

如何强制 ANTLR4 仅接受 LL(1) 语法?

作为一项学术练习,我们必须制作一个 LL(1) 语法。但是,ANTLR4 只接受 LL(*) 语法,而不会警告它不是 LL(1)。我知道通常,LL(*) 是可取的,但 LL(1)-ness 是练习的要求。

我找不到它作为选项或论点,也找不到权威的 antlr4 指南......

提前致谢!

0 投票
1 回答
753 浏览

parsing - Transform grammar into LL(1)

I have the following grammar:

With this firstand follow sets:

I've created the parsing table that follows:

From here I can see that this is not LL(1).

How can I modify this grammar so that it becomes LL(1)?

0 投票
0 回答
526 浏览

grammar - 将语法转换为 LL(1)

得到了一个必须转换为的简单语法,LL(1)我尝试了许多解决方案,但删除了左递归,但它不会产生相同的语法。

语法是这样的:

知道我怎样才能把这个右递归吗?有没有通用的算法?

0 投票
2 回答
77 浏览

parsing - 是否存在未生成的 LL(*) 解析器

我需要在运行时更改解析器的语法规则,并且我希望避免在每次规则更改时重新生成解析器。

是否有不使用代码生成的解析器?

问候,