2010-03-08 4 views
0

LLVM/cLang은 특히 잘 설계되었으므로clang에서 추가 매크로 지원?

이것은 C/C++ 매크로/전처리 시스템을 보강 할 수있는 좋은 기회입니다.

사람이 (완전한 튜링 같은) 매크로 시스템이 더 강력한

주를 만들기 위해 연타로 추가

  1. 추가 매크로/전처리 능력 또는
  2. 사이드 프로젝트를 알고 있나요 : 내가 매크로에 대해 묻습니다. C++ 템플릿이 아닙니다. 나는이 스레드가 매크로/전처리 기 특정 적이기를 바란다.

답변

1

LLVM/clang은 특히 잘 설계되었습니다. clang 전처리 기는 특히 좋습니다 : 매크로 확장 등을 추적합니다. 확장되지 않은 이유는 그것이 1 인 것 같습니다. 확장 된 전 처리기는 비표준이며, 2. 아무도하지 않았습니다. 자유롭게 그것을 확장하십시오. 그들은 LLVM IRC에서 "패치는 환영합니다"라고 말했지만, 매우 비표준적인 전 처리기 확장은 그렇지 않을 수도 있습니다.

극단적 인 극단으로 전처리 된 예제를 보려면 PL/1을 살펴보십시오. ;-)

0

M4를 선처리 프로세서로 사용하지 않는 이유는 무엇입니까?

+0

재미있는 것 같지만 주위를 둘러 보면서 m4를 전 처리기로 사용하는 방법을 찾을 수 없습니다. 어떻게해야합니까? 특히, anotehr .hpp 파일을 포함하는 .hpp가 하나 있다고 가정합니다. m4에게 포함 된 파일을 전처리 할 것을 어떻게 말합니까? – anon

+1

당신이해야 할 일은 스크립트를 사용하여 실제 C++ 컴파일러에 제공하기 전에 모든 파일 (헤더 포함)을 먼저 M4 전처리하는 것입니다. 좋은 소식은 M4가 이미 Turing을 지원하는 것처럼 강력한 매크로 시스템을 발명하지 않았다는 것입니다. 매크로가 .hpp 파일 내부에 정의되어 있다고 주장하면 C++ 주석 내에 M4 매크로를 정의하고 M4 매크로를 추출 및 수집 한 다음 M4 응용 프로그램을 수행하기 위해 코드의 사전 스캔을 수행 할 수 있습니다. –