gpt4 book ai didi

c# - Antlr4 C#目标和生成文件的输出路径

转载 作者:可可西里 更新时间:2023-11-01 08:54:03 29 4
gpt4 key购买 nike

我有一个带有 Antlr3 语法文件的 C# 解决方案,我正在尝试升级到 Anltr4。事实证明语法是最简单的部分(它变得更好,大小减少了三分之一!)。生成解析器被证明是棘手的部分。

在旧的解决方案中,当语法文件更改时,我只运行 AntlrWorks 来更新词法分析器和解析器 .cs 文件。词法分析器和解析器直接包含在与语法相同的项目中,因此围绕解析器的框架可以直接使用它们。

对于 C# 的 Antlr4 目标,我注意到(至少在默认情况下)生成的解析器 C# 类的输出路径位于中间目录中,例如对象\调试。这意味着我不能在同一个项目中直接使用解析器。如果我希望生成的源在我的 sln 中可用,我是否应该更改输出路径?我不想在我的 sln 中使用它吗?

我尝试为解析器生成创建一个单独的项目,即一个包含语法文件的项目。当使用 Antlr4 目标构建此项目时,可以从需要解析器类的项目中引用生成的程序集。但是,如果该项目包含在解决方案中,我仍然无法在 visual studio 中获得任何智能感知,因为它的智能感知基于加载项目的源文件,因此它仍然不太可用。我能让它正常工作的唯一方法是构建然后卸载解析器项目,并让其他项目将其作为程序集文件而不是项目引用。

编辑:

在查看 antlr-interest 列表后,我发现此线程表明 intellisense 的问题可能是 Resharpers 的错误。如果是这种情况,那么我的问题是如何在我的解决方案中继续使用 Antlr4 和 Resharper? https://groups.google.com/forum/#!topic/antlr-discussion/QSuJXphaBDg

最佳答案

我找到了 Resharper 的扩展:ReSharper.ExternalCode .

Antlr 提示:在 Resharper -> 代码检查 -> 外部代码中添加 obj\Debug 并重新加载解决方案。

它对我有用。

关于c# - Antlr4 C#目标和生成文件的输出路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19616649/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com