c# - C# 的 Antlr.Runtime 中缺少类

标签 c# antlr nuget

我正在尝试使用 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/

相关文章:

c# - int[,] 的数独求解器算法

domain-driven-design - Antlr 是 DSL 生成器还是有意编程的替代品?

javascript - 如何检测源/调试 Lexer 的空值

nuget - 通过 nuget 安装 SignalR

visual-studio - "Enable NuGet Package Restore"在 VS 2015 中消失了

c# - 使用信号量保护队列的问题

c# - 是否可以在 iMac 上托管 .net Web 服务?

return-value - 如何处理ANTLR中的列表返回值

c# - NuGet 无法正确处理链接文件的 CopyToOutputDirectory

c# - EF7 RC2 代码首先创建数据库