繁体   English   中英

设置ANTLR 4语法以处理Java和C#环境

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM