![]() |
1
2
generalingastvisitor所做的模式是预排序。 顺序遍历在AST上下文中没有意义。按顺序,遍历是左、根、右。但是一个AST分支可以有1到无穷大的子级。因此,最好是按顺序(n)定义一些遍历,在这里您访问第一个孩子、第二个孩子……第n个子级,根级,第n+1子级,第n+2子级…我看不出这样做的目的。 对于后期订单来说,它有点微妙。如果您只想打印节点及其子实体,那么您的解决方案很简单。你只要打电话给超级 之前 打印节点:
但是,如果您想要为一系列节点类型定制逻辑,则必须在每个访问处理程序中遵循该模式:
在这种情况下,我会组织访客,使这更容易:
在这种情况下,
对于大多数用例来说,这些应该能够帮助您度过难关,尽管在不知道您要做什么的情况下很难确定。 |
|
Aouiche Redouane · 修复Flutter抽屉中的物品 8 月前 |
![]() |
melearning · 背景封面 8 月前 |
![]() |
greenzebra · 在Dart中,我如何将算术运算符定义为变量? 9 月前 |
![]() |
Kartik Nhm · 颤振中是否有一个“看不见”的常数式关键词? 1 年前 |
![]() |
Pointer · 按钮隐藏TextFormField 1 年前 |