2013-03-13 1 views
3

저는 C 헤더를 구문 분석하고 함수 이름, 반환 유형, 인수 유형에 대한 정보를 추출하는 python 스크립트 (python clang 바인딩 사용)를 작성했습니다.Clang 바인딩이있는 추출 유형 문자열

함수 이름을 추출하는 데 아무런 문제가 없지만 clang.cindex.Type을 C 유형 문자열로 변환하는 방법을 찾을 수 없습니다. (예를 들어, clang.cindex.TypeKind.UINTunsigned int에)

는 현재 임시 해결책으로, 내가 포인터와 const를 한정자를 처리하기 위해 사전 clang.cindex.TypeKind -> C type string과 코드를 가지고,하지만 난 구조 이름을 추출하는 방법을 발견하지 않았다.

clang.cindex.Type의 C 정의를 가져 오는 일반적인 방법이 있습니까? 없으면 어떻게 clang.cindex.TypeKind.RECORDclang.cindex.TypeKind.FUNCTIONPROTO 타입의 C 타입 문자열을 얻을 수 있습니까? RECORD 들어

답변

0

, get_declaration() 포인트 타입의 선언의 함수 (a union, enum, struct 또는 typedef); 노드의 철자를 가져 오면 이름이 반환됩니다. (물론, 기본 선언 종류의 대 TYPEDEF_DECL 차별화 사이에주의해야합니다.) FUNCTIONPROTO를 들어

을, 당신은 get_result()get_arguments()의 조합을 사용합니다.