flexとbisonで電卓を作るのメモ
「自力で字句解析や構文解析作るよりも、flexとbison使ったほうが保守性が高くなるよ」
というアドバイスを受けて、ためしに使ってみました。
.lファイルと.yファイルを作る
ここのmycalc.lとmycalc.yファイルをコピペする(´∀`;
http://kmaebashi.com/programmer/devlang/yacclex.html
ただ、bisonだと、出力ヘッダファイル名が、mycalc.tab.hになるので、
mycalc.lの3行目、
003: #include "y.tab.h"
を
003: #include "mycalc.tab.h"
にしないとコンパイルが通りませぬ。
ビルド
例えばこんなバッチファイルを作って、ビルドします。
(※パスはデフォルトインストールの場合)
set path=C:\MinGW\bin; set path=%path%;C:\Program Files\GnuWin32\bin; bison -dv mycalc.y flex mycalc.l gcc -o mycalc mycalc.tab.c lex.yy.c
実行すると、なんとmycalc.exeという電卓が!
(…kenmoは1行もソースコード書いてないんですけどね…(´∀`;