自作コンパイラの部屋 > yacc入門 > yaccを使ってみる

yaccを使ってみる

 yaccの世界で"hello world"に相当するものは電卓です。したがって、まずはyaccで簡単な電卓を作ってみることにしましょう。
 電卓と言っても単純なものから、関数電卓のように複雑なものまで様々ですが、ここでは、単純明快に以下のような仕様にしてみました。

 演算子の優先順位すら扱えないのであれば、率直に言ってyaccを使うメリットがありませんが、先々に改造を加えていくためのテンプレートとしてはできるだけ単純なほうが良いでしょう。

 このサンプルをコンパイルするには、アーカイブを解いた後にmakeするだけです。
 実行例を以下に示します。ユーザの入力はアンダーラインで示した部分です。

[ockeghem@t560 yacc]$ ./calc
1+1
2
1+2*3
9

 1+2*3=9になるのは、演算子の優先度が考慮されておらず、(1+2)*3の順で演算されているからです。

次:何を書いたら良いか

目次
Last update: '2000年06月04日