我正在使用 canonical LR Method
来构建解析表。
考虑语法:
s -> D C A
s -> D a B
a -> C
s -> a A
我正在阅读的书中提到第一个闭合状态:
I(0) = [s -> .D C A , $]
[s -> .D a B , $]
[a -> .C , A]
[s -> .a A , $]
在州
[a -> .C , A]
A
中的item
来自哪里?所有项目都有$
作为向前看符号,第三项有A
。
请解释一下。
答案 0 :(得分:2)
项目:
[ a -> · C, A ]
项目扩展的结果:
[ s -> · a A ]
其中非终结符a
后跟终端A
。这意味着C
减少到a
可能发生在后继状态为s -> a · A
的后继状态;或者换句话说,当前瞻是A
时。
您提及的州中的所有其他项目都来自初始(隐含)项目
[ s' -> · s $ ]
其中非终结符s
后跟伪终结符$
(即输入结束标记),因此它们的前瞻符都是$
。