任何人都会给我一个LR(1)语法的处理例子,而不是LR(0)语法?我只是试图找出为什么LR(1)解析器更高效和强大,并尝试了一个语法的例子,发现它非LR(0),在解析表中有冲突,然后尝试LR(1)也没用... 一个非常简单的语法示例,(增强)
S->A
A->aBed | aEef
B->m
E->m
需要的细节分析。 有人会用例子来解释吗?在这里感到困惑。
答案 0 :(得分:0)
例如:
S -> Aa | Bb
A->c
B->c
要确定c
是A
还是B
,您需要知道以下符号。
在现实生活中,你最常需要LR(1)来制作epsilon:
OPTIONAL_A -> ε | A
MULTI_A -> ε | MULTI_A A
...其中ε
仅匹配空字符串。为了减少epsilon的产生,你总是需要看过去。