使用 ANTLR4 PLSQL 语法到 .NET 中的 .cs 文件时出现问题

Posted

技术标签:

【中文标题】使用 ANTLR4 PLSQL 语法到 .NET 中的 .cs 文件时出现问题【英文标题】:Issue using ANTLR4 PLSQL grammar to .cs file in .NET 【发布时间】:2015-10-30 06:19:03 【问题描述】:

我在 C# target for ANTLR4 的帮助下将 ANTLR PLSQL.G4 语法文件转换为 PLSQLParser.csPLSQLLexer.cs。请参考link。

我使用下面提到的命令行命令将语法文件转换为 .cs 代码。

java -jar antlr-4.5.1-complete.jar -Dlanguage=CSharp PLSQL.g4 

它生成了下面提到的6个文件,即。

PLSQL.tokens PLSQLBaseListener.cs PLSQLLexer.cs PLSQLLexer.tokens PLSQLListener.cs PLSQLParser.cs

我将这些文件添加到我的 C# 项目中,还添加了 C# 的 ANTLR 运行时 (Antlr4.Runtime.dll) 作为对我的项目的引用。

最后我尝试构建我的 C# 项目,但它显示 36 个构建错误。这也在文件 PLSQLParser.cs 和 PLSQLLexer.cs 中。请参考下面提到的错误。

    名称“_input”在当前上下文中不存在 当前上下文中不存在名称“setChannel” 当前上下文中不存在名称“HIDDEN”

我使用的是 Visual Studio 2013 专业版。

请帮助我纠正这些构建错误。

谢谢, 西瓦普拉卡什。

【问题讨论】:

请贴出语法代码。 【参考方案1】:

请确认 G4 文件是为您用于从 *.G4 转换为 *.CS 的 Antler 版本构建的

“xxx 不存在错误”一般就是这种错误。

【讨论】:

以上是关于使用 ANTLR4 PLSQL 语法到 .NET 中的 .cs 文件时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

ANTLR4入门:使用mave ANTLR4插件(antlr4-maven-plugin)执行语法解析生成器

ANTLR4入门:使用mave ANTLR4插件(antlr4-maven-plugin)执行语法解析生成器

Antlr4,如何报告特定的语法错误

使用 antlr4 包括对 matlab 语法的注释

YAML 有 ANTLR4 语法吗?

使用golang+antlr4构建一个自己的语言解析器(完结篇)