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

C# C的Antlr.Runtime中缺少类#,c#,antlr,nuget,C#,Antlr,Nuget,我正试图让Antlr使用NuGet工作 我尝试引用的Antlr.Runtime.dll的当前版本是3.1.3.42154 问题是,当我尝试构建Lexer和Parser.cs文件时,会遇到很多关于缺少类型的构建错误 e、 g.找不到类GrammarRuleAttribute。我已经在Antlr.Runtime.dll中查找过了,但是类不在那里。但是,如果查看上的Antlr项目,则可以看到GrammarRuleAttribute确实应该位于Antlr.Runtime.dll中 这是一个bug还是我遗

我正试图让Antlr使用NuGet工作

我尝试引用的Antlr.Runtime.dll的当前版本是3.1.3.42154

问题是,当我尝试构建Lexer和Parser.cs文件时,会遇到很多关于缺少类型的构建错误

e、 g.找不到类
GrammarRuleAttribute
。我已经在Antlr.Runtime.dll中查找过了,但是类不在那里。但是,如果查看上的Antlr项目,则可以看到
GrammarRuleAttribute
确实应该位于Antlr.Runtime.dll中


这是一个bug还是我遗漏了什么?

这是一个有点时间敏感性的问答,因为ANTLR的C#目标(Johannes Luber的CSharp2和我自己的CSharp3)随着时间的推移而变化。我知道CSharp2目标最近有一些问题正在解决中。在撰写本文时,CSharp3目标的当前版本是3.3.1

这里是到的链接,其中包括到ANTLR工具的C#端口、CSharp3运行时、MSBuild支持以及一些Visual Studio工具的下载链接。随着新版本的发布,我会定期更新此文档


编辑:如果在打开语法文件时遇到显示问题或异常消息,应从扩展管理器中卸载ANTLR 3、StringTemplate和Extensibility Framework扩展,并按照链接文档中的说明重新安装。我已经更新了扩展以解决此问题。

我在使用CSharp2或CSharp3时遇到此问题。我在ANTLRWorks 1.5rc1建筑

结果证明与ANTLR版本有关。我使用3.1.x版本的NuGet安装了官方软件包。在拆除并安装了非官方的3.4.1软件包之后,它工作了


在我的测试语法中,还有一个与隐藏通道有关的小问题。将其更改为隐藏(如Antlr3.Runtime中所定义)解决了问题

最新版本似乎在某个地方不同步。谢谢你的c版本链接。我想我会按照你的指示去做,但我现在遇到了问题。表示“未找到“AntlClassGenerationTask”任务。在Visual Studio中打开.g3文件时,我也会弹出一条错误消息。发生编译错误是因为文档图6中所示的
PropertyGroup
需要放在第1.4节步骤4中的import语句之后。我更正了文档的第1.4节,以反映这一点-如果您重做该步骤,它应该可以正常工作。关于打开.g3文件时出现的错误,您是否可以查看扩展管理器,确保安装并启用了“ANTLR语言支持”和“Visual Studio可扩展性框架”扩展?这似乎修复了最初的问题以及我在VS2010中遇到的所有其他错误。谢谢你的帮助!我也有同样的问题。最后,我从github克隆了最新的Antlr源代码。CSharp3运行时(antlr\Runtime\CSharp3\Sources\Antlr3.Runtime)解决方案最初没有生成,我必须先创建一些接口。虽然它可以构建,但我不确定我是否有一个运行时。