2010-11-23 6 views
0

표준의 좋은 C++ 구현을 알고있는 분 C 전처리 기가 있습니까? 나는 C++ C 코드를 분석 관련 프로젝트에서 일하고 있어요, 나는 매크로 등을 지원하기 좋아하지만 C 전처리 자신을 구현에 관심이 아니에요 것C 전처리 기의 C++ 구현

.

이상적으로는 프리 프로세서는 메인 C 파일의 파일 이름에 걸릴 것이고, 전처리 C 코드의 스트림을 반환합니다.

누구나 간결하지만 포괄적 인 참조를 추천 할 수 있습니까? C 전처리?

+0

렉스/yacc 파일을 찾으셨습니까? – arbithero

+2

GNU cpp의 문제점은 무엇입니까? –

+0

대부분의 C 또는 C++ 컴파일러에는 전처리 된 파일 만 출력 할 수있는 명령 행 스위치가 있습니다. 과거에는 여러 코드 분석 도구 (필자가 작성한 여러 가지 사내 도구 포함)가 사전 처리 기능을 사용하여 자체적으로 구현하지 않아도되었습니다. 나는 마이크로 소프트의 C++ 컴파일러가 15 년 전에이 기능을 가지고 있었음을 압니다. 그리고 GNU cpp도 잘하고 있습니다. –

답변

4

GNU cpp, GCC의 일부는 C++ 대신 C로 작성되었지만 매우 유연하고 매우 쉽게 C 코드를 파싱하고 사전 처리합니다.

+0

고마워 - 나는 이것을 위해 GCC를 사용할 수 있다는 것을 몰랐다! 어쨌든 나는 외부 적으로 호출 할 수 있기 때문에 C 코드가 좋습니다. – Cam

0

Lex and Yacc (각각 Flex 및 Bison이라고도 함)을 사용해야합니다. 이들은 언어 구문 분석에 사용되는 도구입니다. This excellent book은 훌륭한 대학 도서관에서 입수 할 수 있습니다.

+3

이 질문에 어떻게 대답합니까? –

+1

이러한 도구는 도구 일 뿐이므로 구문 분석 토큰/문법 결과를 조작하려면 c/C++ 코드를 작성해야합니다. 이것이 전 처리기에 대한 과잉이라고 판단됩니다. – rtpg

+1

이들은 또한 전처리 기의 어려운 부분 (즉, 예외적으로 복잡한 규칙이있는 매크로 대체)을 돕지 않습니다. –