我正在使用Boost Spirit解析器,並且隨着解析器解析,語義動作被反映到類ParserActions的一個實例中。指向類成員的指針
下面是解析器代碼(相關部分)
struct urdf_grammar : public grammar<urdf_grammar> {
template <typename ScannerT>
struct definition {
definition(urdf_grammar const& self) {
prog = (alpha_p >> *alnum_p)[&(self.actions.do_prog)];
}
rule<ScannerT> prog;
rule<ScannerT> const&
start() const {
return prog;
}
};
const ParserActions & actions;
explicit urdf_grammar(const ParserActions & actions = ParserActions()) : actions(actions) {
}
};
你能給出行動的結構/ do_expession是如何定義的? – 2010-03-04 13:08:17
你能否澄清boost-spirit標籤? – Francesco 2010-03-04 13:08:56
如果您發佈更多代碼(例如,來自函數f1)以及編譯器提供的確切錯誤消息,則可能會得到更好的答案。 – AshleysBrain 2010-03-04 13:11:10