首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LR解析如何选择符合条件的语法产品(从叶子构建解析树)?

LR解析如何选择符合条件的语法产品(从叶子构建解析树)?
EN

Stack Overflow用户
提问于 2020-08-22 20:38:56
回答 1查看 103关注 0票数 1

我正在阅读LR解析教程。本教程在这里使用了一个示例语法:

代码语言:javascript
复制
S -> aABe
A -> Abc | b
B -> d

然后,为了说明解析算法是如何工作的,本教程展示了下面解析单词"abbcde“的过程。

我了解到,在算法的每一步,都会搜索一个限定结果(即表第2列所示的语法规则),以匹配字符串的一个片段。但是LR解析如何在一组符合条件的产品中进行选择(如表中的第3列所示)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-23 19:19:40

字符串的LR解析反向跟踪最右边的派生。从这个意义上说,如果您总是通过展开最右边的非终端,然后向后运行该过程来派生字符串,那么所应用的缩减的顺序就是您所得到的。(在你的例子中试试这个--这不是很好吗?)

LR解析器实际使用的具体机制包括使用一个解析自动机来跟踪语法生成中解析的位置,以及一些前瞻性信息。LR解析器有几种不同的样式(LR(0)、SLR(1)、LALR(1)、LR(1)等),它们在自动机是如何构造和如何使用前瞻性信息方面有所不同。您可能会发现搜索关于这些自动机如何工作的教程很有帮助,因为这是LR解析器实际工作的核心。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63540907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档