Поддерживает ли Boost Spirit X3 левую рекурсию? - PullRequest
0 голосов
/ 17 мая 2018

Одна из недостатков / сложностей реализации синтаксических анализаторов с рекурсивным спуском связана с левой рекурсией, например,

<expr> :=    <expr> '+' <num> 
          |  <num>

Анализатору необходимо проанализировать выражение, прежде чем он сможет анализировать выражение ...

Теперь Boost :: Spirit :: X3 генерирует парсеры рекурсивного спуска .Означает ли это, что он не поддерживает левую рекурсию или для этого есть обходные пути?

Примечание. Левая рекурсия может (часто? Всегда?) Заранее исключаться из грамматики (как в решении этот вопрос ), но я не об этом спрашиваю.

1 Ответ

0 голосов
/ 01 июля 2018

Дух вообще не переписывает вашу грамматику, он работает именно так, как вы написали.

...