我正在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