システムプログラム'02 演習問題(2)
その1
Bisonについての例題を書き換えて、
さらに累乗の演算子(^)にも対応した
Yaccによる構文解析・計算プログラムを作成せよ。
ただし 「^」は右結合で
「*」や「/」よりも、優先順位が高いものとする。
例 | 解釈 | 備考 |
2*3^2 | 2*(3^2) |
「*」よりも優先順位が高い |
2^3^2 | 2^(3^2) |
右結合 |
ヒント:
- xの y乗を計算する C言語の関数は double
pow(double x, double y)、
なお、この関数を使うには #include <math.h>が必要である。
- (#include <math.h>を含めて)3行付け加えるだけで良いはず。
その2
dangling elseの例の実行結果を
x<1, 1<x<=5のそれぞれの場合について、
まず予想し、その後コンパイル・実行して確かめよ。
システムプログラムのホームページ
Koji Kagawa
(kagawa@eng.?????)