単項演算子のマイナスと、二項演算子のマイナス

構文解析において一番面倒なのが、単項のマイナスの処理だなぁとつくづく感じます。
つまり "-" が出現したときに、それが単項か二項か判断できない以上、式の末尾を表す ";" なり "\n" なりが必須となってしまうわけで。末尾がないと式が継続しているのか終了しているのかが判断できないんですな。
……いや、shift-reduce 覚悟で望めば問題ないのか。ちょっと考えてみよう。