EveryParser.Net 1.0.6

dotnet add package EveryParser.Net --version 1.0.6
                    
NuGet\Install-Package EveryParser.Net -Version 1.0.6
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EveryParser.Net" Version="1.0.6" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EveryParser.Net" Version="1.0.6" />
                    
Directory.Packages.props
<PackageReference Include="EveryParser.Net" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add EveryParser.Net --version 1.0.6
                    
#r "nuget: EveryParser.Net, 1.0.6"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package EveryParser.Net@1.0.6
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=EveryParser.Net&version=1.0.6
                    
Install as a Cake Addin
#tool nuget:?package=EveryParser.Net&version=1.0.6
                    
Install as a Cake Tool

EveryParser.Net

Description

This parser is for "everything in your life!" as you need inside your projects. This parser is an easy to use expression parser library. It can not like the most parsers only calculate math, it can also calculate logical boolean expressions, working with strings calculation and date/time expressions.

This project repository is only for .Net-Core we are currently working on an integration for many other programming languages. It's planed for Java, Python, Typescript and Ruby.

Installation Instructions

The recommended way to get EveryParser.Net is to use NuGet. The following packages are provided and maintained in the public .

Usage

The know how to use, look at our Wiki of this project or the quick start below. You can also check out the tests written for this project.

To create the C# classes from AntLR use the following command: java -jar antlr-4.10.1-complete.jar -Dlanguage=CSharp EveryGrammar.g4 -o ".antlr" -package "EveryParser"

Quick Start

If you just want to evaluate with no thinking of own parameters or errors:

Expression.CalculateDecimal("IndexOf([1,2,3], 1)")

Results in ⇒ 0

If you have an expression with variables from outside the formular:

var expr = new Expression("variable1 + variable2");
var arguments = expr.GetFormularArgumentNames();
if (arguments.Any())
{
  expr.AddArgument("variable1", 1);
  expr.AddArgument("variable2", 2);
}
expr.CalculateDecimal();

Results in ⇒ 3

If you want to check for errors from the evaluation of an expression:

var expr = new Expression("# + ! * testfunc(1)");
expr.Calculate();
if (expr.HasErrors)
  for(int i = 0; i < expr.CalculationErrors.Length; ++i)
    Console.WriteLine(expr.CalculationErrors[i].Item2);

Returns all errors you receive from the evaluation

Contributing

We call it EveryParser and we mean it in all ways. If you think there is something missing or you need some more functions, let us know with an Issue or feel free to create a pull request.

Thanks

Thanks to all contributors for this project. Also thanks to the team behind ANTLR, Math.Net, XUnit and also Microsoft .Net.

License

The project runs under the MIT License.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.6 501 6/11/2025
1.0.5 403 1/4/2023
1.0.4 363 12/6/2022
1.0.3 435 11/22/2022
1.0.2 421 11/22/2022
1.0.1 429 8/23/2021
1.0.0 431 7/29/2021