Increase right-binding power of MMINUS from 100 (same as MPLUS) to 134,
commitccf37eb6ada8c78e1e0496f304a01f089cabd70f
authorRobert Dodier <robert_dodier@users.sourceforge.net>
Sat, 4 Feb 2023 17:08:27 +0000 (4 09:08 -0800)
committerRobert Dodier <robert_dodier@users.sourceforge.net>
Sat, 4 Feb 2023 17:14:14 +0000 (4 09:14 -0800)
treeab7cad901f0336536b892bc6ae0212c72ae6ae8c
parentbcc475e6d5ec1262f2b1496f9b1c81494b5bafb8
Increase right-binding power of MMINUS from 100 (same as MPLUS) to 134,
which is greater than left-binding power of MTIMES (namely 120).

This discourages unnecessary parentheses around the leading term of a "+"
expression when that term has a minus sign.
Possible fix for SF bug #4090: "output formatting: -x-1 has redundant parentheses: (-x)-1"

MMINUS appears in expressions prepared for output by NFORMAT.
The binding power for $- which is recognized by the parser, is unchanged.
Therefore this commit only changes the display of minus expressions,
not input.

There is still some residual strangeness in formatting expressions with minus signs,
which stems from NFORMAT reorganizing (- x)*y to -(x*y).
Printing parentheses for the reorganized expression is actually correct,
because the parser yields (- x)*y, not -(x*y), for the input -x*y.
I believe at this point the focus should shift to NFORMAT.
share/contrib/sarag/rtest_arag.mac
src/grind.lisp
tests/rtest16.mac
tests/rtest9a.mac
tests/rtest_trace.mac