parser: support unary minus properly