1

JavaCC パーサーで有理数を認識する新しいトークン RATIONAL を追加しました。プログラムの出力部分を更新して、有理数の数値を出力するにはどうすればよいですか?

たとえば、('2/5') 値 = 0.4、('8/2') 値 = 4.0、('4/0') 値 = 無限大です。

誰かが私を助けることができれば、私は感謝します。ありがとう。

4

1 に答える 1

1

両方の数値を計算に使用できるようにするには、RATIONAL トークンのイメージをさらに分割する必要があります。

括弧と引用符が定義された構文の一部であるかどうかは、あなたの質問からは明らかではありません。そうであれば、それらを有理式の区切り記号として簡単に定義し、数字とスラッシュのトークンを定義できます。数字が表示される他の場所とあいまいな場合は、字句状態が友達であることを思い出してください。

有理式が単にスラッシュで区切られた 2 つの数値で構成されている場合は、AST を作成し、解析が完了した後に評価することをお勧めします。別の方法として、解析中に評価することもできますが、これの難しさは残りの文法に依存します。

于 2011-03-14T21:01:55.390 に答える