- 아주 오래전에 만들어 놓은 것을 github에 올리면서 readme 파일을 작성했습니다.
개요
- c 헤더 파일을 파싱해서 '#define', 'enum' 구문으로 정의된 값, 상수명을 검색합니다.
- 원본: https://github.com/lmk/c_define_parser
사용법
error.h 파일의 내용이 아래와 같을 때
#define ERROR_NONE 0x00 #define ERROR_LOGIN 0x01 #define ERROR_FILE 0x02 #define ERROR_DEVICE 0x03
파라미터로
1
을 입력하면ERROR_LOGIN
을 찾아줍니다$ find_const.py 1 1 is ERROR_LOGIN
구현 로직
- 모든 파일을 머지한다.
- 주석을 제거한다.
- enum 구문을 파싱해서 dic_command에 저장한다.
- define 구문을 파싱해서 dic_command에 저장한다.
- dic_command에 저장된 상수 값을 찾아서 치환 한다.
- dic_command의 key, value 값을 바꿔서 dic_command_r에 저장한다.
- 값으로 상수를 찾는다.
선행 작업
- find_const.py 파일 9번째 줄에 FILE_PATH 배열에 파싱할 헤더파일 목록을 추가합니다.
반응형
'Dev > Python' 카테고리의 다른 글
python에서 ctype을 이용한 c library 연동 예제 (0) | 2016.04.29 |
---|