テスト追加

bjamで式や文が全て値を持つということを踏まえ、ルールの戻り値の仕組みを変えました。
これまで戻り値はフレーム情報に持たせていましたが、bjam_grammar自体にクロージャを設定して、それを戻り値として使うようにしました。
これに伴い、parse_bjam_grammar()の戻り値も独自の構造体に変更されています。


また、bjamの式評価の仕組みも分かってきたので、bjam_grammarとbjam_expression_grammarのテストプログラムも追加しました。
bjam_test.cpp
expression_test.cpp


ちょっとひっかかったパターンは、

A = a ; # 「a」と評価される
A += b ; # Aは「a b」になるが、文は「b」と評価される

で、代入文は右辺が評価結果になります。
直感的ではないですが、左辺に複数の変数を指定できるからだと思います。