如何解决LR解析如何选择合格的语法产生式从叶子构造解析树?
我正在阅读有关LR解析的教程。本教程在此处使用示例语法:
S -> aABe
A -> Abc | b
B -> d
然后,为说明解析算法的工作原理,本教程在下面介绍了解析单词“ abbcde”的过程。
我知道在算法的每个步骤中,都将搜索合格的产品(即语法规则,在表的第2列中进行说明)以匹配字符串的一部分。但是,LR解析如何在一组合格的产品中进行选择(在表的第3列中进行说明)?
解决方法
字符串的LR解析可找出反向的最右派生。从这个意义上讲,如果您通过始终扩展最右边的非终结符并向后运行该过程来派生字符串,那么所应用的归约顺序将是您所得到的。 (在您的示例中尝试一下-整洁吗?)
LR解析器实际执行此操作的特定机制涉及使用解析自动机,该自动机跟踪语法生成在语法生成中的位置以及一些超前信息。 LR解析器有几种不同的风格(LR(0),SLR(1),LALR(1),LR(1)等),它们在自动机的结构方式以及如何使用先行信息方面有所不同。您可能会发现搜索有关这些自动机如何工作的教程会有所帮助,因为这是LR解析器实际工作方式的核心。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。