스칼라 2.10 AST에서 요소를 재귀 적으로 검색하는 가장 좋은 방법은 무엇입니까?스칼라 검색 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' 부분을 주목하십시오. –