Thank you for your comments.
> Reverse Polish notation is hideous.
YMMV. :) As an HP (RPN) user and someone who has written a Forth interpreter in
his formative years, I don't have issues moving between RPN and infix. I saw a
RPN evaluator, I needed to add a function to it, it was faster to write a
parser for RPN than try to extend and fix the existing parser (accounting for
arity, LR(1) parsing, etc.). I understand not everyone will find `math_rpn`
attractive or useful.
On a practical (rather than aesthetic) point, the extensions to the evaluator
still make sense (but they are missing parsing in `math_eval`), and `math_rpn`
is a good way to write unit tests (from an OpenSIPS script) for the individual
functions and the evaluator itself.
> `math_rpn("2 1 1 +*", "$var(res)")`
I made the choice (same as in Forth) of using blank-separated words. So you'd
effectively have to write this `math_rpn("2 1 1 + *", "$var(res)")`.
I'll revise for code formatting.
---
Reply to this email directly or view it on GitHub:
https://github.com/OpenSIPS/opensips/pull/144#issuecomment-29553364
_______________________________________________
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel