LSL-PyOptimizer/lslopt
Sei Lisa ec509b3840 Fix parenthesization of unary minus
The algorithm for adding parentheses around unary operators was not working properly. It converted a * (-b) * c into a * -b * c, which LSL handles as a * -(b * c).

Fix and add test cases for that. One of the test cases shows an example where the difference matters: 0 * (-1e20) * 1e20 should result in 0.0, but if wrongly parenthesized, it gives NaN, because 1e20*1e20 gives infinity due to float overflow, and minus infinity times 0 is indeterminate.

The addition of parentheses has been improved, but it still does not eliminate every redundant parenthesis.

Also fix the horrendous typo of using "operands" where it should be "operators".
2019-05-04 23:20:20 +02:00
..
__init__.py Initial commit. Status so far: 2014-07-26 02:43:44 +02:00
lslbasefuncs.py Style fixes 2019-02-04 00:07:12 +01:00
lslcommon.py Style fixes 2019-02-04 00:07:12 +01:00
lsldeadcode.py First baby steps towards dual Python2+3 compatibility 2019-01-16 00:15:06 +01:00
lslextrafuncs.py First baby steps towards dual Python2+3 compatibility 2019-01-16 00:15:06 +01:00
lslfoldconst.py First baby steps towards dual Python2+3 compatibility 2019-01-16 00:15:06 +01:00
lslfuncopt.py First baby steps towards dual Python2+3 compatibility 2019-01-16 00:15:06 +01:00
lslfuncs.py Style fixes 2019-02-04 00:07:12 +01:00
lslinliner.py Fix a couple of slips that can cause crashes 2019-02-25 19:59:59 +01:00
lsljson.py First baby steps towards dual Python2+3 compatibility 2019-01-16 00:15:06 +01:00
lsllastpass.py First baby steps towards dual Python2+3 compatibility 2019-01-16 00:15:06 +01:00
lslloadlib.py First baby steps towards dual Python2+3 compatibility 2019-01-16 00:15:06 +01:00
lsloptimizer.py First baby steps towards dual Python2+3 compatibility 2019-01-16 00:15:06 +01:00
lsloutput.py Fix parenthesization of unary minus 2019-05-04 23:20:20 +02:00
lslparse.py Allow returning void expressions where state changes are allowed 2019-05-01 04:28:58 +02:00
lslrenamer.py New copyright year 2019-01-01 22:54:34 +01:00