自作コンパイラの部屋 > 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の順で演算されているからです。
目次 |