[英]Setup ANTLR 4 grammar to handle Java and C# environments
我在C#和Java环境中都使用了ANTLR 4拆分语法,除非将函数NotifyErrorListeners更改为使用驼峰式notifyNotListeners,否则无法在两种语言中都编译语法。
C#示例:
statement
: expression SEMICOLON
| { NotifyErrorListeners("; expected."); } expression // They forgot the semicolon.
Java示例:
statement
: expression SEMICOLON
| { notifyErrorListeners("; expected."); } expression // They forgot the semicolon.
我的C#ANTLR环境通过Nuget获得了:Antlr4 4.2.2-alpha001
我的Java ANTLR环境是从antlr.org下载的:antlr-4.5-complete.jar
有没有一种方法可以修改我的语法,因此在切换语言时不必修改它? 是否有更好的功能可以使用这两种环境?
我已经解决了我的问题。 在C#项目中为解析器创建一个局部类,并确保它在相同的程序集和名称空间中。 然后,很容易添加使用Java期望的骆驼套的方法。 现在,我可以使用两种环境,而无需修改语法。
public partial class ScriptParser
{
public void notifyErrorListeners(string message)
{
this.NotifyErrorListeners(message);
}
}
谢谢劳恩的问题和建议。 你把我逼向正确的答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.