16 using namespace boost::spirit;
18 using namespace boost::spirit::classic;
25 conjInfo_(iVect), mode_(iMode) {}
27 conjInfo_.back().mode_ = mode_;
34 typedef scanner_policies<skip_parser_iteration_policy<nothing_parser,
40 bool decayParser(
const string& iValue, vector<ConjInfo>& oStrings ) {
41 using namespace boost::spirit;
43 Rule_1 label = ((+alnum_p) >> *ch_p(
':') >> *ch_p(
'_') >>*alnum_p)[push_back_a(oStrings)];
44 Rule_1 conj = (ch_p(
'@') >> !((ch_p(
'b')>>ch_p(
'a')>>ch_p(
'r')[
ModeSetter(oStrings,ConjInfo::kBar)] )|
46 ch_p(
'-')[
ModeSetter(oStrings,ConjInfo::kMinus)]) );
48 return parse( iValue.c_str(),
rule< ScannerUsed_1 > Rule_1
Evaluator * parse(const T &text)
ModeSetter(vector< ConjInfo > &iVect, ConjInfo::Mode iMode)
vector< ConjInfo > & conjInfo_
void operator()(const char) const
bool decayParser(const std::string &iValue, std::vector< ConjInfo > &oStrings)
scanner_policies< skip_parser_iteration_policy< nothing_parser, iteration_policy >, match_policy, action_policy > ScannerPolicy
scanner< const char *, ScannerPolicy > ScannerUsed_1