cparser는 C99로 작성된 재귀 하강 C99 파서입니다. 여기에는 전처리기, 어휘 분석기, 파서가 포함되어 있으며 AST를 구성하고 의미 분석을 수행합니다. libFirm 중간 표현 라이브러리의 프런트엔드 역할을 합니다. 이러한 방식으로 최적화 및 코드 생성이 수행됩니다. 컴파일러는 명령줄 스위치를 사용하여 여러 대상 아키텍처에 대한 교차 컴파일을 지원합니다. 어셈블러와 링커를 호출하고 명령줄 옵션을 구문 분석하기 위한 드라이버 논리가 함께 제공됩니다. 이를 통해 많은 상황에서 gcc 또는 clang을 즉시 대체할 수 있습니다.
요구사항:
소스 디렉터리의 libfirm이라는 디렉터리에 libfirm의 압축을 풀거나 'config.mak' 파일을 사용하여 대체 위치를 설정할 수도 있습니다. 소스 디렉토리에 'make'를 입력하기만 하면 됩니다. 결과는 "build"라는 디렉터리에 저장됩니다. 'config.mak' 파일을 생성하여 포함 디렉터리에 대한 기존 전처리기, 컴파일러 및 링커 플래그와 내장 경로를 재정의할 수 있습니다.
cparser에는 추가 cmake 빌드 시스템이 있습니다. CMake는 make 기반 빌드보다 더 복잡한 빌드 시스템이며 대부분의 cparser 개발자는 이를 사용하지 않습니다. 그러나 컴파일러 및 링커 플래그를 적용하여 더 넓은 범위의 시스템에 대한 공유 라이브러리를 구축할 수 있고 설치 대상을 제공하며 배포용 패키지를 준비하는 사람들에게 더 친숙한 경우가 많습니다.
cparser는 종종 소스/빌드 디렉터리에서 제대로 실행되지만 올바른 시스템 경로를 사용하여 적절한 설치를 구성해야 합니다. 이를 위해 config.mak
파일을 생성하고 시스템에 맞게 PREFIX
, SYSTEM_INCLUDE_DIR
, LOCAL_INCLUDE_DIR
, COMPILER_INCLUDE_DIR
, MULTILIB_M32_TRIPLE
, MULTILIB_M64_TRIPLE
, variant=optimize
변수를 설정해야 합니다. 변수는 비어 있는 것으로 정의될 수 있습니다. 자세한 내용은 config.default.mak
및 Makefile
참조하세요.
공식 홈페이지: http://libfirm.org/
이메일 문의: [email protected]
메일링 리스트: https://lists.ira.uni-karlsruhe.de/mailman/listinfo/firm
버그 추적기: http://pp.ipd.kit.edu/~firm/bugs
인터넷 중계채팅 : irc://chat.freenode.net/#firm