gpt4 book ai didi

parsing - 判断文法是否为 LR(0)

转载 作者:行者123 更新时间:2023-12-02 04:35:44 24 4
gpt4 key购买 nike

我是编译主题的新手,刚刚开始自下而上解析的练习。

我一直坚持以下问题。

为以下文法建立一个LR(0)解析表:

1) E –> E + T
2) E –> T
3) T –> (E)
4) T –> id


I0 :

E' –> .E
E –> .E + T
E –> .T
T –> .(E)
T –> .id

在 E 上,DFA 中的下一个状态将是:

 I1:

E' -> E.
E -> E. + T

据我目前所知,这不是 S-R 冲突吗?因为解析器不知道是减少还是移动没有前瞻变量?所以这不应该是 LR(0) 文法?

但是我正在阅读的 PDF 已经构建了 LR(0) 表。那么 PDF 中是否有错误,或者我在理解这个概念的地方出错了吗?

最佳答案

您使用 E' -> E 扩充了语法。通常,您会增加类似 E' -> E $ 的产生式,其中 $ 是语法中不会以其他方式出现的(终结符)符号,表示输入结束。

所以 I1 实际上是


E' -> E. $
E -> E. + T

没有冲突。 (而且我相信语法 LR(0)。)

关于parsing - 判断文法是否为 LR(0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22007420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com