Home of LoycCore, the LES language of Loyc trees, the Enhanced C# parser, the LeMP macro preprocessor, and the LLLPG parser generator.
The ecsharp repository holds several tools for enhancing .NET and C# development:
The Loyc .NET Core libraries, a set of libraries whose theme is "stuff that should be built into the .NET framework, but isn't." These libraries have their own repository and home page, and the Loyc .NET Core repository is the
Core/folder in this repository. One of these libraries (Loyc.Syntax) supports universal syntax trees, LES2 and LES3.
Enhanced C# (or EC#) is a liberalization and regularization of the C# language. You can think of EC# as a C# preprocessor, since only the "front end" part of the project is done. The preprocessor consists of three mostly-independent parts,
These projects are the first products of the Loyc (Language of Your Choice) initiative.
If you just want the core libraries, you can find them in NuGet. Otherwise, see
Open Loyc.netfx.sln in Visual Studio (or Loyc.netstd.sln for the .NET Standard edition), set the build configuration to Debug, and build it!
If you need to change any .ecs or .les source files (Enhanced C# or LES), you'll need to install the latest LeMP extension for Visual Studio, which can be found on the Releases page. There is no build step for these files, so the extension is not required for building. Unfortunately VS Code is not supported at this time - let me know if you need support.
If Visual Studio complains about OxyPlot, the easiest fix is to unload the LoycCore.Benchmarks project (nothing depends on it). To fix it properly, open Core\Loyc.netstd.sln, right-click the solution, choose "Restore NuGet packages", build the solution (just to make sure it worked), and then return to the original solution.
Visual Studio may complain, while building a .NET Framework 4.7.2 project, that 'Your project does not reference ".NETFramework,Version=v4.7.2" framework...." if you built the .NET Standard version of the same project earlier. To fix this, locate the folder named
objinside the project from which the error message originated, delete the entire
objfolder, and rebuild (the
project.assets.jsonfile inside that folder seems to be causing the error).
This is more of a note-to-self than anything. Pull-requestors can ignore it.
- set SEMVER=(semantic version combines w.x.y into wx.y, e.g. 2.7.1 => 27.1, because semantic versioning demands a new major version number for each breaking change, while the internal version number increments the minor version for a minor breaking change.)
git tag v2.7.1.
git push origin v2.7.1.