我怎么解释这个语法?我不明白为什么有些话是大胆的。

如果我正在为此编写一个解析树/表,我会包含粗体单词吗?我想弄清楚图中的语法是否是LL(1),但不知道怎么读。任何帮助都将不胜感激!
发布于 2015-10-09 01:32:41
粗体项目是记号(in,a,b和c也应该是粗体;您的老师的错误)。尖括号中的项目是生产规则。
如果语法是LL(1),如果每个地方都存在一个替代(由\分隔),解析器可以只看一个标记(下一个)就可以决定追求哪个选项。
以规则为例。它有四种选择。必须从令牌(如果是)开始。必须从令牌(而不是)开始。必须从令牌begin开始。这只剩下一个变量,它必须以一个变量开头,即a、b或c中的一个。因此,就它而言,LL(1)解析器可以处理该规则,因为它只需要检查一个令牌就可以在这四种可能性之间做出决定。
如果任何规则需要(例如)检查两个标记,则LL(1)解析器无法处理该语法--它需要一个LL(2)解析器。
我希望这能帮到你。
https://stackoverflow.com/questions/33026925
复制相似问题