我在C#和Java环境中都使用ANTLR 4拆分语法,除非我将函数notifyErrorListeners更改为使用camel case NotifyErrorListeners,否则我无法用这两种语言编译语法。
C#示例:
statement
: expression SEMICOLON
| { NotifyErrorListeners("; expected."); } expression // They forgot the semicolon.
Java示例:
statement
: expression SEMICOLON
| { notifyErrorListeners("; expected."); } expression // They forgot the semicolon.
我的C#反was环境是通过Nuget: Antlr4 4.2.2-alpha 001完成的
我的Java环境是从antlr.org下载的: ANTLR -4.5-plete.jar
有没有一种方法可以修改我的语法,这样我就不用在语言之间切换时修改它了?是否有更好的功能可供使用,以方便这两种环境?
发布于 2015-03-27 11:58:01
我已经解决了我的问题。在解析器的C#项目中创建一个分部类,并确保它位于相同的程序集和命名空间中。然后,很容易添加一个使用camel camel的方法-- Java所期望的。现在,我可以在不修改语法的情况下使用这两种环境。
public partial class ScriptParser
{
public void notifyErrorListeners(string message)
{
this.NotifyErrorListeners(message);
}
}
谢谢你的提问和建议。你把我推向正确的答案。
https://stackoverflow.com/questions/29305228
复制相似问题