bjam_grammarにセマンティックアクションを組み込み中です。
今回は、string_listやlist_of_listに演算子を定義している分、簡潔に記述できています。
特に楽なのは+=演算子で、push_back()やinsert()の呼び出しが必要だったのが、
lol
= list [lol.val += arg1]
% keyword_p(":")
;
list
= *( non_punct [list.val += arg1] )
;
のようになっています。
いちいちファンクタを作ったり、バインドしたりしなくて済むのがよいです。
今日の差分
まだ実行はできませんが、変数やルールの定義処理を実装済みです。