如何从前缀符号构建二进制表达式树?

古纳塞卡

像这样的东西(*(+ 1 2 3)5)
像*,+这样的运算符可以有两个以上的操作数。

亚历山大·阿尼克(Alexander Anikin)

要使用无数个操作数进行前缀表示,您应该为开/闭括号定义一些其他规则(通常这不是前缀表示的作用)。

简单的解析器将接受操作,第一个操作数,然后将其他操作数一个接一个地添加。在每个步骤上,只需创建新的操作节点,左操作数将采用先前的(当前)结果,右操作数将采用新获取的操作数。

继续输入直至结尾或关闭方括号。不要从输入中删除右括号-应该在开-关解析部分中处理,而不是在操作解析中处理。

取操作数很简单:

  • “(”->深入分析子表达式,直到“)”。
  • 不同的操作->更深入地分析子表达式。
  • 可以简单地忽略相同的操作,但这取决于您。
  • 常量(或变量,如果有的话)->使操作数成为子表达式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

二进制表达式树的缀

来自分类Dev

堆栈和二进制表达式树出现双重释放或损坏错误

来自分类Dev

使用链接比较运算符评估二进制表达式树

来自分类Dev

堆栈和二进制表达式树出现双重释放或损坏错误

来自分类Dev

计算二进制表达式树的值

来自分类Dev

快速的二进制表达式问题

来自分类Dev

如何修复“对二进制表达式无效的操作数”错误?

来自分类Dev

如何从二进制表/矩阵创建表达式输入样式格式?

来自分类Dev

如何在bash脚本中将变量评估为二进制表达式

来自分类Dev

Linux Shell - 如何将变量分配给二进制表达式?

来自分类Dev

NSInteger乘法:对二进制表达式无效的操作数

来自分类Dev

二进制表达式的无效操作数(“ RadioDevice”和“ const RadioDevice”)

来自分类Dev

错误:对二进制表达式无效的操作数(“ float”和“ float”)

来自分类Dev

无效的二进制表达式操作数(Int和NSNumber *)

来自分类Dev

C ++-二进制表达式的无效操作数

来自分类Dev

“对二进制表达式无效的操作数”错误

来自分类Dev

为二进制表达式创建AST

来自分类Dev

使用std :: sort时“二进制表达式的无效操作数”

来自分类Dev

二进制表达式的递归模式匹配,所以很接近

来自分类Dev

无效的操作数到二进制表达式错误消息

来自分类Dev

对std :: max_element的二进制表达式无效的操作数

来自分类Dev

对二进制表达式无效的操作数(NSNumber * __strong和NSNumber *)

来自分类Dev

对二进制表达式无效的操作数(“ NSMutableArray”和“ double”)

来自分类Dev

二进制表达式的无效操作数错误

来自分类Dev

解析器 AST - 二进制表达式与函数的优势

来自分类Dev

二进制表达式不能在LINQ中转换为谓词表达式

来自分类Dev

手动将二进制表达式计算为十六进制

来自分类Dev

二进制表达式的无效操作数(“ ostream”(又名“ basic_ostream <char>”)和“ ostream”)

来自分类Dev

重新格式化二进制表达式时防止IntelliJ保持换行

Related 相关文章

  1. 1

    二进制表达式树的缀

  2. 2

    堆栈和二进制表达式树出现双重释放或损坏错误

  3. 3

    使用链接比较运算符评估二进制表达式树

  4. 4

    堆栈和二进制表达式树出现双重释放或损坏错误

  5. 5

    计算二进制表达式树的值

  6. 6

    快速的二进制表达式问题

  7. 7

    如何修复“对二进制表达式无效的操作数”错误?

  8. 8

    如何从二进制表/矩阵创建表达式输入样式格式?

  9. 9

    如何在bash脚本中将变量评估为二进制表达式

  10. 10

    Linux Shell - 如何将变量分配给二进制表达式?

  11. 11

    NSInteger乘法:对二进制表达式无效的操作数

  12. 12

    二进制表达式的无效操作数(“ RadioDevice”和“ const RadioDevice”)

  13. 13

    错误:对二进制表达式无效的操作数(“ float”和“ float”)

  14. 14

    无效的二进制表达式操作数(Int和NSNumber *)

  15. 15

    C ++-二进制表达式的无效操作数

  16. 16

    “对二进制表达式无效的操作数”错误

  17. 17

    为二进制表达式创建AST

  18. 18

    使用std :: sort时“二进制表达式的无效操作数”

  19. 19

    二进制表达式的递归模式匹配,所以很接近

  20. 20

    无效的操作数到二进制表达式错误消息

  21. 21

    对std :: max_element的二进制表达式无效的操作数

  22. 22

    对二进制表达式无效的操作数(NSNumber * __strong和NSNumber *)

  23. 23

    对二进制表达式无效的操作数(“ NSMutableArray”和“ double”)

  24. 24

    二进制表达式的无效操作数错误

  25. 25

    解析器 AST - 二进制表达式与函数的优势

  26. 26

    二进制表达式不能在LINQ中转换为谓词表达式

  27. 27

    手动将二进制表达式计算为十六进制

  28. 28

    二进制表达式的无效操作数(“ ostream”(又名“ basic_ostream <char>”)和“ ostream”)

  29. 29

    重新格式化二进制表达式时防止IntelliJ保持换行

热门标签

归档