parsing - 处理 LR(0) 语法中的可空产生式

标签 parsing syntax grammar

我认为这是一个非常简单的问题,但我无法在任何地方找到答案。

如果我有一个带有派生 NULL 的非终结符的语法,如下所示:

  1. S -> B$
  2. B -> idP
  3. P -> (E)
  4. P->
  5. E -> B

如何处理产生式 #3 以绘制其 LR(0) 状态图?我是否必须在 LR(0) 解析表中包含与具有空集的转换相对应的列?

最佳答案

该项目P -> ·· 的任何其他项目没有什么不同。在右端;事实上,· 之前没有任何内容。并没有使它变得特别。项目关闭

B -> id · P

将是状态q :

B -> id · P
P -> · ( E )
P -> ·

来自 goto(q, P)将指示过渡到 B -> id P · goto(q, ( ) 将指示过渡到 P -> ( · E )goto$)未在该状态上定义,但 action是;它将表明 P应使用 P -> 来减少规则,之后 goto(q, P)将被使用。

关于parsing - 处理 LR(0) 语法中的可空产生式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26518050/

相关文章:

sql - 为什么SQL的语法是由内而外的?

r - 如果 R 中的语句只能有一行?

java - 如何编写 ANTLR 语法翻译器以返回带有方法的 java 类?

python - 根据特定模式解析文件结构

android - 我将如何在 Retrofit 中处理带有破折号/连字符的 JSON 键?

python - 新的 python async 和 await 关键字

sql - "HAVING ... GROUP BY"和 "GROUP BY ... HAVING"之间的区别

parsing - 学习增量编译设计

python - 我可以查看使用 lxml 从 html 文档解析的元素源的实际行吗

matlab - 如何结束 MATLAB/Octave 函数定义?