【发布时间】:2016-01-24 18:29:43
【问题描述】:
所以我有这个语法(如下),我需要建立一个解析表。我需要使它适合预测解析器。我知道第一个想法是让它明确,但对我来说它已经明确(因为我找不到可以为其绘制 2 个不同解析树的字符串)。其次,我需要将其考虑在内。我把我的猜测放在原始语法下面,我觉得我错过了一些东西,如果我错过了一些东西,有人可以指出。
S -> m G | m K p
G -> n G | n
K -> q K r | m n
我的猜测:
S -> m A
A -> G | K p
G -> n G'
G' -> n G' | emptyString
K -> q K r | m n
【问题讨论】:
-
我理解错了还是你有一个额外的
m?S -> mQ和Q -> mA会给你一个额外的m,对吧? -
纠正我的错误,错误更新。感谢您指出这一点
-
为什么你认为它是错误的?
-
我试图找到第一个并关注非终端,我得到了
$,除了K,我认为可能有问题,因为我没有玩过语法这么多。 -
通过检查很明显,除了 K 之外的任何非终结符都不能跟
$以外的任何东西。
标签: parsing context-free-grammar ll ambiguous-grammar