我正在Visual Studio中使用ANTLR語法開發自定義語言的語言服務。但是,語法中充滿了C++代碼來處理預處理器指令和編譯器的效率原因。有沒有辦法使用一種針對多種語言的ANTLR語法?
Visual Studio的語言服務是用C++編寫的一種痛苦,所以我需要一個用於相同語言的C#解析器。這意味着我必須設置language=CSharp2
並從語法中去除所有C++代碼。
我正在考慮編寫一個小的導出程序,將所有C++代碼從語法中刪除,並將諸如{ $channel = HIDDEN; }
之類的簡單語句轉換爲{ $channel = TokenChannels.Hidden; }
。
有沒有更聰明的方法來做到這一點?就像通過模板,或者在語法中嵌入兩種語言的小竅門一樣?
你不能把C++當作託管C++嗎?這應該與它周圍的C#世界兼容。 –
ANTLR必須定義它自己的語義表達式的抽象編程語言,而不是。我選擇處理正在進行的項目的目標是直接使用Python,或者使用Jython(經過測試)在Java中使用Python,或使用Cython使用任何其他語言。 – Apalala