【问题标题】:How do I rebuild a C# ANTLR parser without Visual Studio?如何在没有 Visual Studio 的情况下重建 C# ANTLR 解析器?
【发布时间】:2014-08-14 11:42:15
【问题描述】:

我正在尝试在 Boo 编译器中进行一些研究。不幸的是,解析器是由 ANTLR 生成的。我已经编辑了生成解析器的语法文件,但我只是不知道如何执行下一步:实际生成解析器。

显然,使用 ANTLR 生成解析器的首选方法是使用 ANTLRWorks IDE...除非您使用的是 C# 输出目标,因为这是特殊。无论如何我都试过了,它什么也没做,只是给我错误提示“此命令在传统模式下无效”。显然,自从编写了 Boo 编译器以来,就有了一个新版本的 ANTLR,并且那里存在一些向后兼容性问题......或者其他什么。不太清楚。

所以我查找了 C# 目标。它希望作为插件安装在 Visual Studio 中。唯一的问题是,我有 SharpDevelop,它不适用于 VS 插件,而且我不打算花数百美元购买非 Express 版本的 Visual Studio,因此我可以使用开源工具来构建一个开源解析器!

必须有一个简单的方法来做到这一点;我只是没看到。如何在没有 Visual Studio 的情况下使用 ANTLR 生成 C# 解析器?

【问题讨论】:

  • 您使用的是哪个版本的 ANTLR/ANTLRWorks?我正在使用两者来生成 c# 代码。
  • @Patrick:我使用的是最新版本的 ANTLRWorks(刚刚下载),它似乎存在向后兼容性问题。
  • 我想是的。我也看到了。您可以使用以前版本的 ANTLR 吗?可选地,我们在构建过程中使用 ant,并且有一个集成的库。它可能对你有用。

标签: c# parsing antlr


【解决方案1】:

Visual Studio 的 ANTLR 插件仅提供编辑器功能和向项目添加新语法的简化功能。它本身不执行任何代码生成。

ANTLR 3 和 ANTLR 4 的 C# 目标与 MSBuild 无缝集成。按照设计,目标不支持解析器的命令行生成,因为它们不符合我对可靠软件构建的要求。但是,我愿意包括对非 MSBuild 支持的支持,前提是生成始终作为构建的一部分发生,而不是作为独立步骤。在您构建项目时,所有正确配置的 C# 目标安装将根据您的修改自动重新生成解析器,即使没有安装 Visual Studio。

对于 ANTLR 4,请按照 instructions here 生成代码,但跳过涉及可选 Visual Studio 扩展的部分。如果您对任何特定部分有问题,请创建一个新问题并描述您尝试的步骤以及您正在使用的系统配置。

对于 ANTLR 3,说明是在将项目迁移到 GitHub 之前创建的,因此它们是 in Word format here。可以在ANTLR 3 C# Target project on GitHub 上创建与本文档相关的问题。 重要说明(编辑):该文档也是在创建Antlr3 NuGet 包之前编写的。使用 NuGet 包管理器安装此 NuGet 包将自动配置项目文件,无需文档中的步骤 1.1.2、1.3 和 1.4。

【讨论】:

    猜你喜欢
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 2010-09-07
    • 1970-01-01
    • 2019-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多