I've updated the script above:
- added protected variables, you can keep eval from modifying some variables by adding to this.
- added the option to disable the use of assignment operator (won't break evaluation, though).
- for those who would like to use it, the operator is fixed
- added limited support for @ (strictly for concatenation)
- restored precedence (for the most part), fixing the != operator
I wonder if I should finish it? Would eval be beneficial to anyone? Does anyone need it to do something particular?