2011-01-19 97 views
7

如何將新關鍵字添加到叮噹聲中?新的關鍵字應該是一個函數限定符。聲明部分在哪裏去?如何爲clang添加一個新關鍵字,該關鍵字將被視爲主要關鍵字?

謝謝。

+0

聽起來你需要爲clang/LLVM拼寫解析和lexing部分,並從那裏出發,我懷疑你可能會從clang郵件列表中獲得更好的幫助 – Necrolis 2011-01-19 15:10:12

+0

我編輯了IdentifierTabe.cpp,並添加了新的關鍵字TokenKinds.def儘可能從解析和lexing我無法找到從C的主要行爲,因爲我不知道它在哪裏定義。 – 2011-01-19 15:27:23

回答

7

您必須將其添加到include/clang/Basic/TokenKinds.def,然後向ParseDeclarationSpecifiers(...)添加一個新案例。

也許更容易的選擇是定義一個新的屬性,然後用

#define your_new_qualifier __attribute__((your_new_attribute))

否則你不得不將此限定符支持添加到AST,這可能是容易出錯,而屬性會通過相同函數的各種聲明自動傳播。