Scala式に対応するツリーを取得し、結果のツリーをトラバースすることも可能であることを理解しています。特定のツリーノードが何らかの基準に一致するとします。そのノードをその場で変更できるようにするために、どのメソッド呼び出しが必要ですか?つまり、他のツリーに置き換えますか?
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)
}
}