MathExprEngine 1.2.0.6785
dotnet add package MathExprEngine --version 1.2.0.6785
NuGet\Install-Package MathExprEngine -Version 1.2.0.6785
<PackageReference Include="MathExprEngine" Version="1.2.0.6785" />
<PackageVersion Include="MathExprEngine" Version="1.2.0.6785" />
<PackageReference Include="MathExprEngine" />
paket add MathExprEngine --version 1.2.0.6785
#r "nuget: MathExprEngine, 1.2.0.6785"
#:package MathExprEngine@1.2.0.6785
#addin nuget:?package=MathExprEngine&version=1.2.0.6785
#tool nuget:?package=MathExprEngine&version=1.2.0.6785
Overview
Expression Calculator is a lightweight, embeddable C# expression engine that parses and evaluates mathematical and logical expressions using a real Abstract Syntax Tree (AST).
It is designed for scenarios where:
- expressions must be user-defined or configurable
- correctness of operator precedence matters
- short-circuit logic is required (logical operators, conditional expressions)
- clear error diagnostics (with column numbers) are important
The engine intentionally avoids scripting engines, or eval-style execution, giving you full control, safety, and extensibility.
What Problems Does It Solve?
Typical problems:
- 🔧 Business rules stored as expressions in configuration or database
- 📊 Dynamic calculations (pricing formulas, scoring systems, validation rules)
- 🧪 Feature flags or conditional behavior without recompilation
- 🧮 Math domains (finance, engineering, analytics)
- 🧩 DSL foundations for more complex rule engines
This math expression is intentionally small, explicit, and deterministic.
Key Features
Arithmetic
+ - * / ^- Correct precedence and associativity
- Unary
+and-
Comparisons
< > <= >= == !=- Return numeric booleans (
1.0= true,0.0= false)
Logical Operators (Short-Circuit)
&&(AND)||(OR)
Only the necessary side of the expression is evaluated.
Conditional (Ternary)
condition ? exprIfTrue : exprIfFalse
- Fully short-circuited
- Only the selected branch is evaluated
Functions
Built-in:
sin(x)cos(x)sqrt(x)pow(x, y)max(x)sum(x)sum(x, y, z, ...)neg(x)
Custom functions:
- Register your own C# functions at runtime
Error Reporting
All syntax and runtime errors include exact column numbers
Examples:
- unexpected tokens
- missing parentheses
- division by zero
- invalid function usage
Design Principles
The engine parses expressions into an Abstract Syntax Tree, not Reverse Polish Notation.
This enables:
- true short-circuit evaluation
- clean implementation of ternary operators
- better error localization
- future extensibility (variables, assignments, lambdas)
Numeric Boolean Model
true→1.0false→0.0
This keeps the engine simple and interoperable with math-heavy formulas.
Execution Overview
Expression String
↳ Tokenizer
↳ Parser
↳ AST Nodes
↳ Evaluation
- Tokenizer: converts text into tokens with column tracking
- Parser: recursive-descent + precedence handling
- AST Nodes: executable expression tree
- Evaluator: walks the tree with short-circuit semantics
| Product | Versions 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 | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- DomainCommonExtensions (>= 4.5.0.7408)
-
.NETStandard 2.1
- DomainCommonExtensions (>= 4.5.0.7408)
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.2.0.6785 | 127 | 2/17/2026 |
| 1.1.1.4273 | 109 | 2/10/2026 |
| 1.1.0.4548 | 94 | 2/3/2026 |
| 1.0.0 | 96 | 1/29/2026 |