首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编写生成解析树的代码

编写生成解析树的代码
EN

Stack Overflow用户
提问于 2012-02-14 18:21:18
回答 4查看 5.5K关注 0票数 0

在一次面试中,我被问到这个问题:

编写一段代码来生成解析树,就像编译器在内部为任何给定表达式所做的那样。例如:

代码语言:javascript
运行
复制
a+(b+c*(e/f)+d)*g 
EN

Stack Overflow用户

发布于 2012-02-14 18:57:39

每当您打算编写解析器时,要问的主要问题是您是想手动完成,还是使用解析器生成器框架。

在这种情况下,我会说这是一个很好的练习,把它全部写出来。

从树本身的良好表示开始。这将是你的算法的输出。例如,这可能是一个对象集合,其中一个对象类型可以表示一个“标签”,如示例中的abc。其他人可以代表数字。然后,您可以定义运算符的表示形式,例如,+是一个二元运算符,它将有两个子对象,分别表示左子表达式和右子表达式。

下一步是实际的解析器,我建议使用一个经典的递归解析器。描述这一点并提供标准伪代码实现的一个文本是由Theodore Norvell编写的文本

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

https://stackoverflow.com/questions/9275200

复制
相关文章

相似问题

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