In most language grammars, *unary* - has a higher precedence than any binary operators (meaning that -12/7 evaluates as (-12)/7).
But mafia's ASH parser is (as far as I can tell) a hand-written top-down parser, which is good for code sanity, but not so for grammar sanity.
In this case, I *think* parseExpression sees a negative numeric constant instead of unary minus, and decides to *return* instead of continuing to parse an expression.
ETA: it's possible that adding a space after the - would also make the parser understand it as unary minus, making it work.