演算子とセマンティックアクション

bjam_grammarにセマンティックアクションを組み込み中です。
今回は、string_listやlist_of_listに演算子を定義している分、簡潔に記述できています。
特に楽なのは+=演算子で、push_back()やinsert()の呼び出しが必要だったのが、

lol
    =   list [lol.val += arg1]
        % keyword_p(":")
    ;

list
    =   *( non_punct [list.val += arg1] )
    ;

のようになっています。
いちいちファンクタを作ったり、バインドしたりしなくて済むのがよいです。


今日の差分
まだ実行はできませんが、変数やルールの定義処理を実装済みです。