2014-07-25 2 views
1

pycparser를 사용하여 C 파일을 구문 분석하려고합니다. 나는 C 파일을 사전 처리하는 동안 pycparser가 가짜 lib 폴더 (cpp_args에서 가짜 lib의 경로를 제공하는 경우)에서 제공되는 라이브러리 파일 만 읽거나 include에 언급 된 위치에서 읽는 것을 알고 싶다.pycparser는 C 코드 파일의 include에 나열된 헤더 파일을 어떻게 읽습니까?

#include<folder1/folder2/xyz.h> 

아래 라인에
된 직후와 같은 진술은 어디 xyz.h에 대한 pycparser 검색 만 가짜 LIB 폴더에있을 것입니까?

답변

2

가짜 폴더가 아닌 다른 디렉토리를 검색합니다. 파일 pycparser/__init__.py을 보면 preprocess_file이라는 함수가 입력 파일에서 C 전 처리기를 호출하고 결과 출력을 문자열에 넣은 다음 parse_file이라는 다음 함수로 전달합니다. 이 함수들 각각의 코드는 상당히 명확하고 주석이 잘 들어 있습니다. 따라서 읽고 이해할 수 있는지 확인하십시오.

가짜 폴더는 stdlib.h, stdio.h 등과 같은 표준 라이브러리 헤더에만 포함됩니다. 이러한 헤더에는 종종 휴대용이 아닌 컴파일러 관련 확장이 포함됩니다. 코드를 구문 분석 할 수 있으려면 함수 printf(...) 만 있다는 것을 알아야합니다.