C# 如何将.g4编译为.cs?

C# 如何将.g4编译为.cs?,c#,antlr4cs,C#,Antlr4cs,我重读了所有的文档,但仍然没有弄明白我到底需要做什么请逐步解释我需要做什么来在VS2019(对于C#)中设置与Antlr的工作,以及在之后如何将.g4编译为.cs。我需要安装Antlr4或Antlr4.Runtime或Antlr4.Runtime.Standard吗?我需要从官方网站下载“antlr-4.8-complete.jar”文件吗?如果是的话,之后我该怎么处理?一般来说,正如您所看到的,我对此感到困惑。我推荐这种方式——不是因为我编写了软件——而是因为它很简单,并且使用了最新的Antl

我重读了所有的文档,但仍然没有弄明白我到底需要做什么请逐步解释我需要做什么来在VS2019(对于C#)中设置与Antlr的工作,以及在之后如何将.g4编译为.cs。我需要安装Antlr4或Antlr4.Runtime或Antlr4.Runtime.Standard吗?我需要从官方网站下载“antlr-4.8-complete.jar”文件吗?如果是的话,之后我该怎么处理?一般来说,正如您所看到的,我对此感到困惑。

我推荐这种方式——不是因为我编写了软件——而是因为它很简单,并且使用了最新的Antlr版本:

  • 安装NetSDK(也称为“dotnet.exe”)
  • dotnet new-i Antlr4BuildTasks.Templates
  • dotnet新antlr
  • 网络构建
  • 网络运行
然后可以在.csproj上打开VS2019或VSCode。看见它用于建筑。您不需要安装Java或Antlr——它包括Java JRE和Antlr的副本。但是,您需要连接到NuGet.org

如果出于任何原因需要在生成外部生成.cs文件,则可以从shell中键入该文件:

  • java-jar~/Downloads/antlr-4.8-complete.jar-Dlanguage=CSharp*.g4
注意,是C#作为
netstandard1.3的当前Antlr运行时;net35
软件包。是Harwell的整个Antlr Java代码和运行时v4.6.6到C#的端口,据我所知,它没有得到维护。该包中有一个工具与基于Java的Antlr工具等效,因此您可以以类似的方式使用它。但是,它比目前的v4.8版本晚了大约3年——很快就会发布。我编写的Antlr4BuildTasks包是对Harwell包的修改,但它调用了基于Java的Antlr工具


在VS2019、VSCode或您拥有的其他编辑器中,对Antlr的语法或语义突出显示、goto refs、goto def等的支持应视为与应用程序的构建分离。是VS2017的。对于VSCode,您可以选择Mike的或我的基于LSP的工具。对于VS2019,您可以使用my扩展,或者使用少数不受支持且非常旧的扩展之一。或者,您可以跳过所有这些,只需将其编辑为文本。

我不熟悉如何将ANTLR与C#结合使用,尽管我可以告诉您,Antlr4用于生成代码,而生成的代码需要运行库。因此,要生成代码,我认为您需要第一个。