мне нужно создать правило, с помощью повышающего духа, который должен соответствовать ситуации, какповышение духа и связанных частей
return foo;
и
return (foo);
Я пытался чего-л, как это:
start %= "return" >> -boost::spirit::qi::char_('(') >> identifier >> -boost::spirit::qi::char_(')') >> ';';
но это будет достигнуто даже в таких случаях, как
return (foo;
и
return foo);
Как я могу решить эту проблему?
Как насчет 'statement = (" return ">> identifier >> ';') | («return» >> '(' >> identifier >> ')' >> ';') '? –
@faranwath Да, я уже думал об этом, но это выглядит ужасно, особенно в случае, когда у меня есть много правил с аналогичной структурой. – FrozenHeart
Ужасно? Я думаю, мы отличаемся тем, что делает правильное производственное правило приятным, но это ваша работа, настолько справедливая. –