我正在尝试使用 NuGet 让 Antlr 工作。
我尝试引用的 Antlr.Runtime.dll 的当前版本是 3.1.3.42154。
问题是,当我尝试构建 Lexer 和 Parser .cs 文件时,我遇到了很多关于缺少类型的构建错误。
例如找不到类 GrammarRuleAttribute
。我查看了 Antlr.Runtime.dll 并且该类不存在。但是,如果您查看 GitHub 上的 Antlr 项目那么你可以看到 GrammarRuleAttribute
确实应该在 Antlr.Runtime.dll 中。
这是一个错误还是我遗漏了什么?
最佳答案
这是一个时间敏感的问答,因为 ANTLR 的 C# 目标(Johannes Luber 的 CSharp2 和我自己的 CSharp3)会随着时间的推移而变化。我知道 CSharp2 目标最近有一些问题正在处理中。在撰写本文时,CSharp3 目标的当前版本是 3.3.1。
这是 CSharp3 target documentation 的链接,其中包括指向 ANTLR 工具的 C# 端口、CSharp3 运行时、MSBuild 支持和一些 Visual Studio 工具的下载链接。随着新版本的发布,我会定期更新此文档。
编辑:如果您在打开语法文件时遇到显示问题或异常消息,您应该从扩展管理器中卸载 ANTLR 3、StringTemplate 和可扩展性框架扩展,然后按照说明重新安装它们在链接文档中。我已经更新了扩展来解决这个问题。
关于c# - C# 的 Antlr.Runtime 中缺少类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5076380/