私はドラゴン ブックを勉強していて、式パーサーを書くのが待ちきれません。
負の数値入力を処理するために、レクサーは記号「-」に遭遇したときに数字を読み取り、数値トークンを返します。
"-4+2" は (-4,number) (+,operator) (2,number) を取得します
しかし、「4-2」ほど簡単なことはできないことがわかりました。
(4,number) (-2,number) 構文が間違っています。
私の解決策の 1 つは、最初のトークンがマイナスの場合にゼロを追加するなど、式を評価する前に前処理を行うことです。皆さんは、この状況をどのように対処しているのか気になります。
ありがとう。