LL(1)语法解释

LL(1) grammar interpretation

如何解释这个语法?我不明白为什么有些词是粗体。

如果我为此编写一个解析 tree/table,我会包括粗体字吗?我想弄清楚图片中的语法是否是 LL(1),但不明白如何阅读它。如有任何帮助,我们将不胜感激!

粗体项是记号(在中,a b 和c 也应该是粗体;你老师的错误)。尖括号中的项目是生产规则。

语法是 LL(1) 如果对于每个地方都存在一个替代方案(由 | 分隔),解析器可以通过仅查看一个替代方案来决定追求哪个替代方案令牌(下一个)。

所以以 规则为例。它有四种选择。 必须以标记 if 开头。 必须以标记 while 开头。 必须以标记 begin 开头。只剩下 ,它必须以一个变量开头,即 abc 之一。因此,就 而言,LL(1) 解析器可以处理该规则,因为它可以通过仅检查一个标记来在四种可能性之间做出决定。

如果任何规则要求(例如)检查两个标记,则 LL(1) 解析器无法处理该语法 - 它需要 LL(2) 解析器。

希望对您有所帮助。