- 「コンパイラ・スクリプトエンジン」相談室15
842 :jonigata[]:2014/03/19(水) 21:37:10.09 ID:tn/Loswd - ちょっと良く覚えてないですが、
EBNFに対応するにはstd::vectorとか特定のデータ構造が必要になるなと思って、 セマンティックアクション側に特定の構造を期待しないcaperとしては 実現不可能だなと思ってやめた気がします。 今だったら、variadic template使えばいいかな?
|
- 「コンパイラ・スクリプトエンジン」相談室15
843 :jonigata[]:2014/03/19(水) 21:39:03.68 ID:tn/Loswd - いやvariadic template使っても難しいかな……
SemanticAction側の条件を厳しくする以外に いい仕様が思いつかない
|
- 「コンパイラ・スクリプトエンジン」相談室15
844 :jonigata[]:2014/03/19(水) 21:55:41.81 ID:tn/Loswd - あ、次の引数を受け取る関数をセマンティックアクションに渡して、
セマンティックアクション側はテンプレートで受け取ればいいのか。 struct SemanticAction { template <class F> void SumList(F f) { std::vector<Value*> a; Value* v while(f(v)) { a.push_back(v); } } }; こんな感じ
|