scala 2.10 ASTの要素を再帰的に検索する最良の方法は何ですか?scala 2.10 ASTの検索
木がpower.trees(code)
またはmirror.mkToolBox().parseExpr(code)
編集の結果である可能性があります。 2.10.0-RC1でparseExpr
はparse
に名前が変更されました。
私が持っている具体的な使用例は、メソッド名で指定されたクラス/オブジェクトコードからメソッド名 でメソッドのコードを抽出することですが、より一般的な方法で定式化すると、 。
リンクされたコードは、トランクと比較してかなり古くなっています。正しいリンクは次のとおりです:1)ツリーのASTクラス:https://github.com/scala/scala/blob/2.10.x/src/library/scala/reflect/base/Trees.scala、2)トランスフォーマーとトラバーサ: https://github.com/scala/scala/blob/2.10.x/src/reflect/scala/reflect/api/Trees.scala#L606 –
おっと、ありがとう... –
トランスフォーマーの例は次のとおりです。https:/ /github.com/scala/scala/blob/46d57d47e81c8794a9a3594e080576788cc92324/src/compiler/scala/reflect/reify/phases/Reshape.scala(コードでは間違いなくクリーンアップを使用しますが、無視するのはあまりにもいい例です)。 'super.transform'と' copyAttrs'の部分に注目してください。 –