首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建解析树以确定给定LL语法的正确性

创建解析树以确定给定LL语法的正确性
EN

Stack Overflow用户
提问于 2018-04-21 18:53:04
回答 1查看 259关注 0票数 1

我有一个程序,它目前将生成一个令牌的输出,将用于这个下一个程序的输入。它将检查代码语法的正确性。

我遇到了一些问题,我将如何开始将这个语法转换成一个可用的程序。

下面是语法的用法,我将如何开始做这个。或者哪里有好的资源来帮助自己学习创建自己解析器的基础知识。

这个实现将使用Java,所以如果您能够得到与java实现相对应的答案,那就太棒了

程序stmt_list $$$→ stmt_list→stmt stmt_list _ε stmt→id = expr \\ input \ print expr→术语term_tail term_tail→添加op项term_tail \ε 术语fact_tail→因子 fact_tail→mult_op fact_tail _ε 因子→( expr ){##**$} add_op→+x- mult_op→*\x{e76f}/\/\x{e76f}%

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-24 14:18:53

您应该从阅读编译器的语法分析一章开始--原理、技术和工具,也称为“龙书”。

检查输出令牌的步骤如下:

  • 构建First遵循集。
  • 构造预测解析表。
  • 检查同一表单元格中的多个产品(冲突)

所有这些步骤都可以在“龙书”中找到,用各自的算法完美地解释。

我希望这能帮到你。这实际上只是在解析之前的一步,因此,如果您能够检查语法是否为LL(1),我建议实现解析算法,它只是一个堆栈,在这里您推送非终端并引用表来生成AST。

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

https://stackoverflow.com/questions/49959180

复制
相关文章

相似问题

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