2016-08-13 2 views
1

В духе X3 можно построить синтаксический анализатор так:Могу ли я получить более быстрый парсер с помощью спиртового X3, когда я использую ожидать оператор

const auto p = ("Number:" >> x3::_int) 
      | ("String:" >> +x3::alpha); 

Если я знаю, что после того, как строка Number приходит INT и после String строка все время я могу использовать > сказать после Number только приходит число и так далее.

const auto p = ("Number:" > x3::_int) 
      | ("String:" > +x3::alpha); 

Для меня разница заключается в том, что синтаксический анализатор не выполняет синтаксический анализ ввода. Исключение составляет бросок.

Теперь, мой вопрос в том, должен ли я использовать оператор > над оператором >>, когда это возможно? Является ли синтаксический анализатор, который будет сгенерирован с использованием > быстрее, чем тот, который используется только с помощью оператора >>?

+2

Нет - '' '' '' '' '' '' '' '', если синтаксический анализ не выполняется. – ildjarn

+4

Если вы когда-нибудь задавались вопросом: «Что быстрее», просто измерьте его. –

ответ

1

Вы всегда должны просто просматривать вещи.

Независимо:

Могу ли я получить быстрый парсер с помощью спиртового X3, когда я использую ожидать оператор

Только в той мере, в какой она препятствует отслеживанию альтернативы, но если вам нужно, что это не делая все равно.

Смежные вопросы