在LL(1)解析表中有多个条目的真正含义是什么?

时间:2018-05-02 10:26:18

标签: compilation compiler-construction

对于语法:

S->aABb
A->a/epsilon
B->b/epsilon 

这个语法不是LL(1),但是这个语法是明确的,所以即使表中有多个条目,这个语法也是明确的。那么,当语法是明确的时,在表中有多个条目的直观含义是什么。

当解析器访问列M[B, b]时,它有2个选项B->bB-> epsilon。这种性质不是非确定性的,但这种语法在现实中是明确的,所以如何解决这种冲突,尽管我们在解析表中有多个条目,但语法仍然是明确的。

1 个答案:

答案 0 :(得分:1)

这意味着语法不是LL(1)并且您需要使用另一种解析算法或者如果可能的话将语法重写为LL(1)(在这种情况下,这只是意味着切换{{1 }和b规则中的B