電卓の作成 (その2)
前回の電卓の作成では、「+」「ー」を処理する構文木を作成し、構文木から中間言語の出力、C言語の出力、インタプリタのように順次計算する処理を実装した。
次に「 * 」「 / 」と括弧の優先度に対応した計算処理を実装した。
前回実装時に参考にしたサイトは理論は理解できるが、いきなりコードに落とし込むには少し分かりにくかった。そこで、下記サイトを参考に、まずは構文木を作成せずに順次計算する処理を実装した。
それで作成したコードがこれ。
作成中に気づいたが電卓の内部処理は「逆ポーランド記法」に変換される。そもそも、wiki に「プログラミング初心者の練習課題として、逆ポーランド記法の電卓を作ることがよく行われる。」と書かれていた。
次は、今回作成した処理から、「 * 」「 / 」括弧の優先度に対応した、中間言語を作成する処理を実装する。