gpt4 book ai didi

scala - 修改 Scala AST 中的节点

转载 作者:行者123 更新时间:2023-12-01 09:48:33 25 4
gpt4 key购买 nike

我理解是可以得到一个Scala表达式对应的Tree,也可以遍历得到的树。假设给定的树节点符合某些条件,我需要调用哪些方法才能就地修改它?即将其替换为其他树?

object traverser extends Traverser {
var applies = List[Apply]()

override def traverse(tree: Tree): Unit = tree match {
case someCriterion => modifyNodeSomehow // How to do this?
// Otherwise...
case app @ Apply(fun, args) =>
applies = app :: applies
super.traverse(fun)
super.traverseTrees(args)
case _ => super.traverse(tree)
}
}

最佳答案

another question我被建议使用 Transformer做类似的事情。但是,据我所知,不可能就地修改树。

关于scala - 修改 Scala AST 中的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14717428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com