All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- An interpreter context can now be replaced by another one with the same name.
- Added global variables support (variables that are common to all instances of
Interpreter
). - Implemented the disposal code (#24).
- Added an console calculator example project (#25).
- The number of cached nodes is now limited to 64. (#21).
- The regular expression that matches context variables now behaves as intended (#23).
- Setting an existing variable no longer raises an exception (#27).
- Added binary operators
<<
,>>
,&
and|
. - Added comparison operator
!=
(with aliasne
). - Added new operators
floor
,ceil
,trunc
. - Added new operators
e
,log
,log10
. - Added aliases to existing operators
<
,<=
,>
and>=
.
- Operators priority is now from lowest (0) to highest (int.Max);
- Formula syntax: Alphanumeric operators should now be separated from operants by a blanck space or brackets (e.g.:
e2
should be writtene 2
ore(2)
).
- Removed some deprecated operation aliases (
degrad
andraddeg
). - Removed some deprecated functions related to unnamed contexts :
- Constructor
Interpreter(IInterpreterContext)
. - Function
SetContext(IInterpreterContext)
.
- Constructor
- Operators that contain digits in their names no longer fail (e.g.:
deg2rad
). - Fixed an issue related to mixed operators (i.e.:
!
was mixed to!=
).
- The interpreter now handles the use of multiple contexts (identified by name).
- Some operators now accept a function-style writer (eg.
min(1, 2)
instead ofmin 1 2
. - Copies of all previously prcessed formulae are now kept in cache (optimization).
- Operations and values are now stored a tree (optimization).
- Fixed precedence issues related to
|
and&
boolean operations. 2`).
- Constructor
Interpreter(IInterpreterContext)
is now deprecated. UseInterpreter.SetContext(string, IINterpreterContext)
instead. - Function
SetContext(IInterpreterContext)
is now deprecated. UseInterpreter.SetContext(string, IINterpreterContext)
instead.
- Added new operations :
tan
,cosh
,sinh
,tanh
,acos
,asin
,atan
,deg2rad
,rad2deg
,and
,or
,&
,|
- Added new constants :
true
,false
.