gpt4 book ai didi

visual-studio-2019 - 哪些 ANTLR Nuget 包是哪些?

转载 作者:行者123 更新时间:2023-12-05 02:43:37 24 4
gpt4 key购买 nike

我正在尝试在 Visual Studio 16.9.2 的 .NET 5 项目中安装 ANTLR 4 支持,但我无法弄清楚我应该使用无数 ANTLR NuGet 包中的哪一个。我想要一个完全不需要 Java(不仅仅是在运行时)并且不需要扩展的软件。

我最初使用 Antlr4 和 Antlr4.Runtime 包,它们似乎可以一起工作,但后来我发现它们缺少 CharStreams 类,据我所知这是获取 ICharStream 对象的预期方法。

然后我尝试使用 Antlr4.Runtime.Standard 而不是 Antlr4.Runtime,但这似乎与 Antlr4 包不兼容。 (它给了我很多编译错误。)然后我尝试将 Antlr4 换成其他包,但找不到适用于 Antlr4.Runtime.Standard 的包。

有人能告诉我生成器 + 运行时的有效组合吗?官方包太多了,无法不断试错。我查看了几个在线教程,但它们往往适用于仍在使用 VSIX 的 VS 的早期版本。

最佳答案

以下是您可以使用的软件包的概要:

  • Antlr4.Runtime -- 这是 Harwell 的 Antlr4 v4.6.6 端口。此包包含一个工具、运行时和构建规则,以提供完整的 NET 体验。但是,这个工具集已有多年历史并且没有得到维护。它不能以任何方式与“官方”Antlr 工具集和运行时一起使用。 grammars-v4中的一些语法针对这个工具链,但我一直在重写那里的大部分语法以针对“官方”版本,而不是 Harwell 的代码。没有垫片可以将针对这个旧运行时的语法与更新的/“官方”运行时互操作,但我正在写一个。这个包适用于许多旧式目标框架。
  • Antlr4.Runtime.Standard .这是 Antlr4 的“官方”支持版本。这是一个 netstandard2.0 库,它只包含运行时。要使用它,Antlr4 JAR 工具必须生成解析器。它不包括工具,也不包括构建规则。
  • Antlr4BuildTasks .这是一组用于使用 Antlr4.Runtime.Standard 的构建规则。这是我用 Harwell 的工具制作的 fork ,多年来我一直在打磨它。它为 Antlr4 程序提供无缝构建,无需手动下载和运行 Antlr4 Jar 工具:它会为您下载 jar,并包含一个独立的 Java 环境来调用 JAR。它使用 Java,但您不需要安装 Java,并且除非您为构建打开诊断输出,否则甚至不知道它已被调用。它没有集成到 VS2019 中,因此它可以与 MSBUILD、dotnet、VS2019、VSCode、Ryder 等一起使用。此代码适用于任何地方:Windows、Linux、OSX。

您还应该知道我(多年来)编写的其他几个用于生成 Antlr 程序的工具:

  • Antlr4BuildTasks.Templates。这是一个简单的 Dotnet 模板,您可以通过 dotnet new antlr 安装、生成和运行新的 Antlr C# 程序;点网运行。它不是很灵活,但很简单,可以创建一个简单的算术示例,然后您可以根据需要进行调整。无需下载和安装 Java 或 Antlr4 JAR——因为它使用我的 Antlr4BuildTasks 程序包,所以这一切都是通过“构建”无形地为您完成的。
  • dotnet-antlr .这个程序是一个 StringTemplate 程序,它为许多目标语言生成一个 Antlr4 程序。我目前让它适用于 C#、Java、JavaScript、Dart、Go、Python3,并且会在某个时候添加其他目标。我也有代码生成对于 Harwell 的 Antlr4cs/Antlr4.Runtime 库。它生成 makefile 以提供一个基本的、一致的界面来构建和运行 Antlr 程序,但是你可以插入任何一组模板来生成你想要的任何东西。要使用 makefile,使用 Msys2。它还会生成一个 .csproj 文件,因此您可以在没有 Make 的情况下使用它任何。该程序用于 grammars-v4 构建中的 CI 测试。我目前正在开发此程序,并计划将其移至用于编辑/转换语法的工具链中。

我有一个 extension for VS2019 for Antlr但如果您需要实际查看语法的文本着色以编辑该死的语法,我建议您只使用 VSCode 和我的扩展程序或 Mike 的扩展程序。注意,VS2019 只支持旧版本的 LSP,不支持语义高亮。我向 MS 投诉,但他们更新 VS2019 的速度非常慢。我不得不写一个 LSP type library超越 MS 写的有限包。

编辑:nuget 包 Antlr4.CodeGenerator 是实际为 Harwell 的 Antlr4 v4.6.6 端口编码解析器生成器(又名“工具”)的包。它对 msbuild 的构建规则进行编码。 “官方”Antlr4 工具的等效项是 Antrl4BuildTasks。

关于visual-studio-2019 - 哪些 ANTLR Nuget 包是哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66837329/

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