2007-05-01から1ヶ月間の記事一覧

bjam_win その15 Grammarの戻り値

bjam_grammarのブロック、if、forを実装しました。 bjam_grammar.hppの差分 変数とルールのスコープがおかしかったバグとルール呼び出しの結果が常に空になるバグも修正しています。 今日ハマったのはSpiritのGrammarの戻り値に関してです。 struct bjam_gra…

bjam_win その14

インタプリタ版bjam_grammarが修正前の状態に近づいてきたので一旦コミットしました。 今日の差分 変数の代入、展開に対応 ルール呼び出しに対応 TODO: ローカル変数とターゲット変数 名前の付いた引数の受け渡し ブロック for/if/while/switch 組み込みrule

短絡評価の実装

引き続きbjamインタプリタの実装中です。 現在、if/whileの条件部分と変数の代入までは出来ていて、あとはルール呼び出しを実装できればそれなりに動くはずというところです。 bjamの「&&」と「||」は優先順位が同じで、短絡評価もされるので次のようになり…

no_actions_d

前にno_actions_dは使わないと書いてましたが、使い方が分かったので、これを使ってbjam_grammarを書き直しています。 no_actions_dディレクティブを使う場合、対象となるパーサーのスキャナがno_actions_scanner<Scanner>::typeである必要があります。 この制約は再</scanner>…