bison/flexで電卓を作る(あり合わせ編)
以下はまだ全然形になっていないメモ。
先日のエントリでは電卓アプリを作ろうとflexを弄ってみたが、そのままリエントラントなものを最初から指向してbisonも弄ってたらぐちゃぐちゃになってどうしようもなくなったので、既にネット上に転がっている電卓用の構文解析ルールを持ってきて、それをリエントラント化する方向でやり直し。
ベースは課題2 bison の応用: 簡易電卓より拝借。
(あとで書く)
現状の問題点
- yyparseのコールの仕方がわからない。具体的にはyyscan_t型の変数をどこで宣言し、どの引数に含めればいいのか。また、yyscan_t型の変数を宣言するには定義を知らなくてはいけないが、scanner.hを外部に作成するにはどうすればいいのか
- yywrapにflex --header-file=scanner.hを食わせてもヘッダファイルを出力してくれない
- scanner.cからはparser.hを参照する必要があるが(トークンの定義を知る必要があるため)、それぞれ相互に参照するためMakefile.amに書くコンパイル順をどうすればよいのかよくわからない。
順序だてて一つずつ解決しないと。