First of all, thanks for your code.
I found a bug, and would like to report it
It's about exponential(^) operation between two bigDecimal number.
I think that a calculation which expected to take a long time to calculate must throw exception about overflow.
e.g.
Expressions().eval("34^3.0E+24")
Expressions().eval("34^3.0E+2451223111")
The code above throw exception about overflow.
But below is not
34^3.0E+2451223
I think it has to have some validation about each power calculation.
Thank you