Skip to content

AndreasBurbach/EveryParser.Net

Repository files navigation

EveryParser.Net

Codacy Badge

NuGet Badge

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.

About

Parser for everything in your life!

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •