具有无限前瞻的理论 LR 解析器是否能够解析(明确的)可以由上下文无关文法描述的语言?
通常 LR(k) 解析器仅限于确定性上下文无关语言。我认为这意味着必须始终有一个当前可以应用的语法规则。在当前的前瞻上下文中的含义不超过一种可能的解析方式被允许发生。“语言实现模式”一书指出,“......解析器是不确定的 - 它无法确定选择哪个替代方案。” 如果前瞻集重叠。相反,如果有多个备选方案,非确定性解析器只会选择一种方式,然后返回决策点,如果在某个点不可能继续先前做出的决策,则选择下一个备选方案。
无论我在哪里阅读 LR(k) 解析器的定义(例如在 Wikipedia 或 Dragon Book 中),我总是会读到以下内容:“k 是前瞻标记的数量”或“k > 1”的情况,但如果 k 可以是无限的,则永远不会. 无限前瞻与尝试所有替代方案直到成功不一样吗?
为了(隐式)区分 LR(k) 解析器和非确定性解析器,是否假设 k 是有限的?