2015-02-01 2 views
2

VarDecl이 함수에서 초기화되었고, 그렇다면 FunctionDecl 또는 문자열로 함수 이름을 가져올 수 있는지 궁금합니다.VarDecl의 기능을 찾는 방법은 무엇입니까?

Ive는 http://clang.llvm.org/doxygen/classclang_1_1ValueDecl.html을 통해 보았지만 아무것도 찾을 수 없습니다. 어떤 도움을 주시면 감사하겠습니다.

///This function will be called whenever a variable is found in the ASTReader 
    static void RegisterVarDecl(void *v) 
    { 
    VarDecl* var = (VarDecl*)v; 
    if (var->isLocalVarDecl()){ 
     variables_.push_back(new string(var->getNameAsString().c_str())); 
    } 
    } 

이 함수와 그 함수의 인수를 반환

static void RegisterFunctionDecl(void * v) 
    { 
    FunctionDecl* func = (FunctionDecl*)v; 
    funcs_.push_back(new string(func->getNameInfo().getName().getAsString())); 
    if (func->getNumParams() > 0){ 
     for (int i = 0; i < func->getNumParams(); ++i){ 
     params_.push_back(new string(func->getParamDecl(i)->getNameAsString())); 
     } 
    } 
    num_params_.push_back(func->getNumParams()); 
    } 

동안 잘 나를 위해 변수의 이름을 반환합니다.

FunctionDecl에 VarDecls가 존재하는지 또는 VarDecl이 속하는 FunctionDecl을 찾을 수 있는지를 지정하는 방법이 있는지 궁금합니다.

+0

간단한 예제를 추가해 주시겠습니까? 달성하려는 것은 무엇입니까? – JDS

답변

관련 문제