В духе X3 я могу построить парсер следующим образом:
const auto p = ("Number:" >> x3::_int)
| ("String:" >> +x3::alpha);
Если я знаю, что после строки Number
идет целое число, а после String
все время идет строка, я могу использовать >
, чтобы сказать, что после Number
идет только число и так далее.
const auto p = ("Number:" > x3::_int)
| ("String:" > +x3::alpha);
Для меня разница в том, что если синтаксический анализатор не может проанализировать ввод, возникает исключение.
Теперь мой вопрос: должен ли я использовать оператор >
вместо оператора >>
, когда это возможно? Является ли синтаксический анализатор, который будет создан с использованием >
, быстрее, чем тот, который использует только оператор >>
?
>
равно>>
плюсthrow
, если синтаксический анализ не удался. - person ildjarn   schedule 13.08.2016