Scalaを使って関数のASTにアクセスするには、以下のようにすればいいらしい。
1 scala> def f = print("hello") 2 f: Unit 3 4 scala> scala.reflect.Code.l ift(f).tree 5 res3: scala.refl ect.Tree = Select(Select(Select(Ident(Field(line4$object,PrefixedTy pe(ThisType(RootSymbol ),Class(line4$object)))),Field($iw,PrefixedTy pe(ThisType(Class(line4$object)),Class($iw)))),Field($iw,PrefixedTy pe(ThisType(Class($iw)),Class($iw)))),Method(f,PolyType(List(),List(),PrefixedTy pe(ThisType(Class(scala)),Class(scala.Unit )))))
posted by
genki
on Wed 28 Apr 2010
at 06:59