需要LR(1)语法的例子不是LR(0)?

时间:2016-06-05 08:11:08

标签: parsing

任何人都会给我一个LR(1)语法的处理例子,而不是LR(0)语法?我只是试图找出为什么LR(1)解析器更高效和强大,并尝试了一个语法的例子,发现它非LR(0),在解析表中有冲突,然后尝试LR(1)也没用...  一个非常简单的语法示例,(增强)

S->A
A->aBed | aEef
B->m
E->m

需要的细节分析。 有人会用例子来解释吗?在这里感到困惑。

1 个答案:

答案 0 :(得分:0)

例如:

S -> Aa | Bb
A->c
B->c

要确定cA还是B,您需要知道以下符号。

在现实生活中,你最常需要LR(1)来制作epsilon:

OPTIONAL_A ->  ε | A

MULTI_A ->  ε | MULTI_A A

...其中ε仅匹配空字符串。为了减少epsilon的产生,你总是需要看过去。