The Equation Solver is .NET Standard class library that implements a state machine defined as:
The state of the Equation Solver is maintained as a collection of Variables which always provide the current value as numbers, strings, and booleans.
The variable are modified by the execution of equations whose targets are the those variables.
A .NET Standard Class that encapsulates values for a specific, unique key (name). Every Variable must have a name and values. The values of a Variable for short, int, long, decimal, double, boolean and text are always set. You can set the value of a Variable using the constructor or the SetValue method.
A .NET Standard class encapsulating a unique identifying name, an expression, and a list of arguments for that expresssion. Functions are used to define and reuse formulas (expressions) in equations.
A .NET Standard class that encapuslate the data comprising a equation (expressions and targets)
UseExpression - a string expression that must evaluate to a true or false. If this UseExpression evaluates to true then the equation and the inner equations are executed.
Expression - a string that produces a value (number, boolean, or text), the value is then assigned to the Variable named in Target.
Target - the variable name to hold the value calculated from the Expression.
MoreEquations - a collection of Equations that will be executed if this equation executes. (provides a tree of equations)
Calculations may be different equations depending on expressions or varable values. This is the reason for branching, the logical determination of equations following a true/false determination. The branches are defined by adding Equations to the MoreEquations collection.
Calculations occur within an application instance
Calculations occur within an application which gets the equations from another source