이 같은 문제에 대한 표준 용액은, 질문과 주석 언어의 어떤 부분 집합을 이해하는 사용자 지정 처리기를 작성하는 것입니다 주석을 제거한 코드를 다시 작성한 다음 실제 언어 컴파일러로 전달합니다.
확장 언어의 경우 표준 방법 : 컴파일러 앞에 사전 처리 단계 추가.
불행히도 은 구문 분석이 불가능합니다. 기능 완료 C++; C++ 소스 코드를 처리하는 것은 언어 기능을 분석하는 일이 지루해서 전체 AST 생성기를 만드는 것을 거의 끝내게됩니다.
이 선언에서 봐 :
template<bool b, class T> void foo(T &t){if(b) T.do_this(); else T.do_that();}
class foobar { public: virtual void do_this(); virtual void do_that(); };
class barfoo : public foobar { public: virtual void do_this(); virtual void do_that(); };
및 브라켓 템플릿 및 템플릿 매개 변수에 대한을 비교 한 위해 이중 의미를 가지고 지금이 기능 여기
void bar(float l){ barfoo t; foo<fsqrt(l) > 1, foobar>(t); }
문제입니다. 각 괄호가 속하는지를 결정하는 유일한 방법은 완전한 구문 트리가 필요합니다. 당신이 설명처럼 나는 단지 하나의 도구 알고
: Qt는 툴킷의 MOC, 당신이 제안하는 것을 수행 : C++ 코드 키워드 신호 및 슬롯 주석. Qt는 공개 소스이므로 MOC의 소스를 조사하는 것이 좋습니다.
C++을 작성하고 읽는 것은 실제로 매우 어렵습니다.
가능한 복제본 : http://stackoverflow.com/questions/4689756/java-like-annotations-in-c –