antlr / antlrcs

The C# port of ANTLR 3, StringTemplate 3, and StringTemplate 4

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Support .NET Core

sharwell opened this issue Β· comments

From @jeremymeng:

According to https://oren.codes/2015/07/29/targeting-net-core/, class libraries using Profile 259 can run on CoreClr as-is.

πŸ“ This issue was split from #40.

commented

Hi @sharwell - do you have any roadmap for this, or even better, an ETA for when this will be done? Is it being worked on, or on hold for now?

@sharwell Are you waiting for the RC2 release too? Or is there anything we can help now to move this forward? Thanks!

Seems like the discussion is now under antlr/antlr4#1142.

Though PCL profile 259 might run on .NET Core, I still think a dedicate port to .NET Core is required. The PCL port has removed too many APIs to adapt to the limited PCL API surface, while .NET Core (.NET Standard) does provide more. A dedicate port can add more types and ease the pains of migrating from .NET Framework to .NET Core.

@lextm The other issue you linked to is for ANTLR 4. This is the repository for ANTLR 3.

A beta of ANTLR 4's original C# target with support for .NET Core was released to NuGet a few weeks ago.

As for ANTLR 3, PCL and .NET Standard do not differ by much. The only items removed are:

  1. ANTLRFileStream (use ANTLRStringStream instead)
  2. Serialization code for Exception types (generally no need to use this)
  3. Some uses of Console output for debugging (generally no need to use this)
  4. The ability to use output=template, because that would require a much more involved PCL release of StringTemplate 3

In My PR I added a project.json. Running dotnet restore then dotnet pack under Runtime/Antlr3.Runtime/ should output a nupkg that targets the same set of frameworks as the old package does, and two more: netstandar1.1 and netstandard1.3.

This was fixed in #53 (for ANTLR 3) and #59 (for StringTemplate 4).

@sharwell will there be a pre-release on nuget.org soon?

@sharwell just wondering if this will be made available on nuget anytime soon?

I don't have a specific timeline, but it's a blocker for some other things I want to get done so hopefully I can get it resolved in a reasonable time.