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

2023-11-22

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

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

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

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

EDIT:

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


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

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

这对我有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Antlr4 C# 目标和生成文件的输出路径 的相关文章

  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲

随机推荐

  • python 多久刷新一次文件?

    Python 多久刷新一次文件 Python 多久刷新一次到标准输出 我不确定 1 至于 2 我相信Python在每一个新行之后都会刷新到stdout 但是 如果您将标准输出重载到文件中 它会经常刷新吗 对于文件操作 Python 使用操作
  • 排序算法是否应该在比较函数中传递相同的元素

    libcxx 的 std sort c 标准的 llvm 版本 库 调用具有相同元素的比较谓词 即 比较函子的两个参数都引用相同的位置 要排序的序列 一个简化的例子来说明这一点 cat a cc include
  • 迁移到 mysql 5.7 后查询非常慢

    我有一个 MySQL 数据库 其中包含 InnoDB 表 总计超过 10 GB 的数据 我想将其从 MySQL 5 5 迁移到 MySQL 5 7 我有一个查询 看起来有点像 SELECT dates date count mySub2 m
  • 如何检测android中是否存在麦克风?

    我的应用程序中有一个语音识别部分来捕获用户的语音输入 这就是我所做的 Intent voiceIntent new Intent RecognizerIntent ACTION RECOGNIZE SPEECH startActivityF
  • 查找存储依赖项的 Maven 存储库

    我正在开发一个包含多个公司远程 Maven 存储库的项目 每个存储库托管数十个依赖项 整个项目使用数百个依赖项 我需要一种方法快速确定依赖项存储在哪个远程存储库上 Maven 是否提供了一种简单的方法来执行此操作 还是我需要自己搜索每个存储
  • 单击栏或按钮外部时隐藏菜单侧边栏

    我正在尝试制作一个像语义 UI 一样的菜单 但我只实现了单击菜单按钮并打开菜单 反之亦然 我使用切换类来显示侧边栏 但我不知道这种方式是否完全正确 div class menu button div menu button click fu
  • 表单中 type="submit" 的纸张按钮未提交?

    我正在尝试使用paper button with type属性设置为submit 就像人们所做的那样button元素 提交封闭的form 但由于某种原因无法提交表格 这是错误还是功能 怎么做paper button提交表格 PS 我在 da
  • 浏览器关闭后删除身份验证/会话 cookie

    浏览器关闭后 cookie 继续存在需要哪些具体步骤 目前我有 createPersistentCookie set to true on LoggedIn event 指定机器密钥 表单滑动过期设置为true 只要浏览器打开 用户就会保持
  • 是否可以从 gc 角度将 java 对象标记为不可收集以节省 gc 扫描时间?

    是否可以从 gc 角度将 java 对象标记为不可收集以节省 gc 扫描时间 类似的东西http wwwasd web cern ch wwwasd lhc Objectivity V5 2 Java guide jgdStorage fm
  • 我能通过字符来区分枚举的最接近的是什么?

    我已经多次写过这个问题 最后意识到我最大的问题是我不知道如何表示这些数据 这使得很难推理其余的代码 数据在Python中的表示方式 class LSP C MASK MAP A Ch A B Ch B C Ch C D Ch D T Tmp
  • 如何吞掉所有异常并保护我的应用程序免于崩溃?

    我发现几个 C 应用程序因错误条件而崩溃 例如obj null or obj member null 很多时候 obj来自3rdPartyApp的接口 并导致 3rdPartyApp 和 MyCsApp 一起崩溃 如何在所有可能的区域添加异
  • 如何设置 chrome 的复选框颜色

    在我的应用程序中 我显示了带有图例的图表 图例有彩色复选框 下面是一个可以正常工作的复选框的代码IE但颜色没有出现在Chrome and Firefox
  • 带有 Web GUI 的免费 G​​IT 服务器,如 BitBucket/GitHub [已关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 在工作中我使用 BitBucket 我想要在家里将类似的东西部署在我的 Linux 服务器上 所以我正在寻找 Only 1 或 2 个用户需要 An
  • 将 Paypal 付款拆分为两个帐户

    我目前正在创建一个系统 允许管理员创建事件并允许个人注册这些事件 每次注册都会产生相关费用 注册者可以使用 PayPal 支付费用 创建活动后 管理员输入将存入资金的 PayPal 帐户 然后 我对每次注册收取固定价格作为服务费用 当付款提
  • 单一方法的管理员权限

    我目前正在开发一个应用程序启动器 自动更新程序 因此 为了将应用程序安装 更新到 Program Files 我需要请求管理员权限 好吧 由于更新程序只需要在找到新版本时编写一些内容 所以我尝试只 如果发现新版本 则请求权限 每次在应用程序
  • 连续添加 char 以获得字典中最长的单词[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 给定一个单词词典和一个初始字符 通过向单词中连续添加一个字符来找到字典中最长的单词 在任
  • 错误:“{”标记之前应有类名

    我知道 stackoverflow 和其他网站上有几个类似的问题 循环包括 但我仍然无法弄清楚 也没有出现任何解决方案 所以我想发布我的具体内容 我有一个事件类 它有 2 个甚至更多的子类 即到达和着陆 编译器 g 抱怨 g c Wall
  • TcpClient.Connected 返回 true 但客户端未连接,我可以使用什么代替?

    在 VB net 中 我使用 TcpClient 来检索数据字符串 我不断检查 Connected 属性以验证客户端是否已连接 但即使客户端断开连接 它仍然返回 true 我可以用什么来解决这个问题 这是我当前代码的精简版本 Dim cli
  • Aws Lambda 访问 META-INF/MANIFEST.MF?

    我习惯于在我构建的每个 jar 文件的 META INF MANIFEST MF 中填写与组件版本 构建时间等相关的信息 我希望我的 lambda 记录该信息和 或将其作为其输出的一部分 在大多数情况下 我可以使用类似于以下的代码来访问它
  • Antlr4 C# 目标和生成文件的输出路径

    我有一个带有 Antlr3 语法文件的 C 解决方案 我正在尝试升级到 Anltr4 事实证明语法是最简单的部分 它变得更好 大小也减少了三分之一 事实证明 生成解析器是棘手的部分 在旧的解决方案中 我只是在语法文件更改时运行 AntlrW