2017-12-29 50 views
0

나는 clang 플러그인을 작성하는데, 이제 TestConsumer, TestAction, TestVisitor의 세 클래스가있다. TestVisitor에서 VisitObjCPropertyDecl 및 VisitCallExpr에서 작업을 수행했습니다.RecursiveASTVisitor에서 다른 액션을 실행하는 방법?

방문자가 먼저 모든 ObjCPropertyDecl을 방문하고 Decl의 이름을 벡터에 저장 한 다음 모든 CallExpr을 방문하고 벡터에 이름이 있지만 모든 호출 expr에 존재하지 않으면 Diag 오류가 발생합니다.

그래서 어떻게 할 수 있습니까?

답변

0

혼자서 편한 길을 찾았습니다.

TestAction에는 virtual bool EndSourceFileAction() {} 메서드가 있으며이 메서드를 재정의합니다. 또는 ~TestVisitor() {}에서 최종 조치를 취하십시오.