0
libclang을 사용하여 함수 호출에 인수를 삽입하는 방법을 알고 싶습니다. 난 그냥 인수를 출력 코드를 다음과 같습니다libclang을 사용하여 코드를 삽입하는 방법 (C++)
class CASTVisitor : public RecursiveASTVisitor<CASTVisitor>
{
public:
CASTVisitor(Rewriter &R) : rewriter(R)
{
}
virtual bool VisitCallExpr(CallExpr *call)
{
for(int i = 0, j = call->getNumArgs(); i < j; ++ i)
{
errs() << "argType: " << call->getArg(i)->getType().getAsString() << "\n";
}
errs() << "** Added parameter to function call\n";
return true;
}
...
};
편집 :
내가 읽고 인수를 설정할 수 있지만, 내가의 시작 부분에 하나를 삽입 할 수있는 방법이 표시되지 않습니다 parmVarDcl() 정규 표현 엔진
기본 클래스 및 복합 문에 멤버 변수를 추가하는 경우도 마찬가지입니다. 기존 텍스트를 바꿀 수 있지만 새 오브젝트를 쉽게 삽입 할 수는없는 것 같습니다. 내가 맞습니까?
또한 "연타는 그 AST의 돌연변이를 지원하도록 설계되지 않았습니다" https://stackoverflow.com/a/10763844/7392560 내가 예상했던 것보다 더 복잡 할 것이다 함수 호출하는 간단한 매개 변수를 추가 생각 . –