【发布时间】:2010-04-28 12:57:32
【问题描述】:
我目前正在根据以下语法构造 LR(1) 状态。
S->AS
S->c
A->aA
A->b
where A,S are nonterminals and a,b,c are terminals.
这是I0的构造
I0: S' -> .S, epsilon
---------------
S -> .AS, epsilon
S -> .c, epsilon
---------------
S -> .AS, a
S -> .c, c
A -> .aA, a
A -> .b, b
还有 I1。
From S, I1: S' -> S., epsilon //DONE
等等。但是当我开始构建 I4...
From a, I4: A -> a.A, a
-----------
A -> .aA, a
A -> .b, b
问题是 A -> .aA
当我尝试从 a 构造下一个状态时,我将再次获得与 I4 完全相同的内容,并且这会无限继续。类似的循环发生在
S -> .AS
那么,我做错了什么?必须有一些我遗漏的细节,但我浏览了我的笔记和我的书,要么找不到,要么就是不明白这里出了什么问题。有什么帮助吗?
【问题讨论】:
标签: parsing infinite-loop states lr1