문제

내가 원하는 경우 수정하거나 추가 내 자신을 확장하여 C 추가 GCC C 컴파일러,어떤 것이 해야 할까요?내가 원하지 않을 제안하는 변경은 언어 나가는 방법을 알고 싶 C 컴파일러에서 작동합니다.

나는 보았는 소스 코드를 방문하는 것처럼 보인다 Objective-C 로 구현되는 단순한 파서를 생성하는 코드는 참조를 수정된 런타임 라이브러리와 다음에 대한 모든 것은 C-기반으로 사용한 일반 C 컴파일러입니다.난 그것을 공부하고 강렬하게도 나는 가능하게하지 않습니다.

예를 들어 예를 들어,나를 추가하고 싶어하는 내 자신의 키워드를 Objective-C,그냥 재미를위한.내가 원하는 무언가를 추가하는 것 같다 쉽게 구현할 수처럼,어쩌면 @assert.모든 나는 원하는 @assert 함수를 호출하는 것에 추가하 Objective-C runtime:

objc_runtime_assert (__FILE__, __LINE__, expression, "string version of expression");

물론 그와 같이 구현 함수 호출 및 매크로는 어쨌든,그러나 나는 원리의 이해를 얻을 구문 분석하고 컴파일 단계에 C 소스 코드,그리고 어쩌면 그렇게 우리 고유의 확장의 언어에 대한 내 자신만 사용할 수 있습니다.

소스 코드를 나는 지속적으로 말하기"나"고 있는 많은,많은 매크로는 작업을 수행 또는 정보를 획득에서 이러한 나무입니다.

어떤 설명서에서 설명하는 것은 이런 종류의 깊이있는?

도움이 되었습니까?

해결책

나무는 가능성이 가장 높 추상적인 구문을 나무(AST) 고 모든 컴파일러 책을 가르 칠 것입니다. 드래곤 예약 가에서,하나의 클래스 I took 리 The essence of compilers 로빈 사냥꾼,ISBN0-13-727835-7.당신이해야 할 수 있 찾기 t 에서 자료의 다른 대학과 몇 가지 좋은 검색어는(컴파일러 디자인,AST,어휘 분석,top-down 구문 분석,bottom-up 구문 분석,의미 분석,LL,LR).

다른 팁

그것은 경우에 따라 달라집니다 당신은 이미 친숙한 컴파일러에 일반하지 않습니다.하지 않을 경우,시작 드래곤 예약.그렇다면,다음 GCC 이미 있는 일부에 대한 문서 당신은:

  1. GCC 내부 설명서
  2. GCC Wiki, 특히, 시작하기 페이지 정보를 포함한 많은 것들에 대한 GCC 나무가 포함되어 있습니다.

에 따라 달라지는 어떻게 당신이 그것을-하지만 당신은 수 있습을 위한 GCC 의 구현 D 프로그래밍 언어 GCD.이것은 진행중인 작업,그러나 풀어 구현에 GCC 지 않고 프레임 워크(아직)많은 경우 인식에서 GCC 팀이 있습니다.GCD 경험이 될 수 있습 유익한.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top