社区
Java SE
帖子详情
如何解析表达式生成操作树?
kathy_koo
2021-02-28 12:12:51
假设我有表达式如这种形式
"1+2-3*4/5+(6/7*8-2)"
假设操作数永远只有0-9
操作符也永远只有+-*/
优先级符合也只会出现()
请问如何解析表达式,通过生成操作树来得到表达式的计算结果double型
我能手绘出生成的操作树,却写不出来怎么生成
(这题接近手写简单的编译器,解析token,生成操作树,操作数转成压栈,然后执行,然后可以假设输入永远合适,不会有语法错误,因为token解析我会写,但解析出来的token转操作树或者压栈不会)
...全文
37
回复
打赏
收藏
如何解析表达式生成操作树?
假设我有表达式如这种形式 "1+2-3*4/5+(6/7*8-2)" 假设操作数永远只有0-9 操作符也永远只有+-*/ 优先级符合也只会出现() 请问如何解析表达式,通过生成操作树来得到表达式的计算结果double型 我能手绘出生成的操作树,却写不出来怎么生成 (这题接近手写简单的编译器,解析token,生成操作树,操作数转成压栈,然后执行,然后可以假设输入永远合适,不会有语法错误,因为token解析我会写,但解析出来的token转操作树或者压栈不会)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
表达式
解析
之
表达式
树
的建立
在上一阶段对字元提取的基础上,完成了
表达式
树
的构建,通过这一
表达式
树
的建立,可以很容易
生成
可顺序执行的基于堆栈的代码,这在脚本
解析
系统,已经编译器中是一个重要的部分。
tree-regex:
生成
解析
树
(AST) 的线性正则
表达式
引擎
树
-io
生成
解析
树
(AST) 的快速正则
表达式
引擎。 它以匹配的文本大小的线性时间执行此
操作
,并以模式大小的 O(m*log(m)) 缩放。 算法 该算法描述于 尼科·施瓦茨。 可扩展的代码克隆检测。 博士论文,伯尔尼大学,2014 年 2 月 亚伦·卡珀。
生成
解析
树
的高效正则
表达式
。 硕士论文,伯尔尼大学,2014 年 12 月
ExpressionTreeAndlambdaToSQL.rar
用lambda构建ORM查询语句
中间代码
生成
器的设计(实验报告+代码+运行结果) 编译方法
(1) 设计语法制导翻译
生成
表达式
的四元式的算法; (2) 编写代码并上机调试运行通过。 ·输入——算术
表达式
·输出——语法分析结果 相应的四元式序列 (3) 本实验已给出递归子程序法的四元式属性翻译文法的设计,鼓励学生在此基础上进行创新,即设计LL(1)分析法或LR(0)分析法的属性翻译文法,并根据这些属性翻译文法,使用扩展的语法分析器实现语法制导翻译。
.NET元编程英文版
.NET元编程英文版
Java SE
62,628
社区成员
307,259
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章