Обработка завершается с использованием фреймворка Spirit Parser Framework

StackOverflow https://stackoverflow.com/questions/930334

  •  06-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь разобрать строку, похожую на следующую, используя анализатор spirit:

<junk> -somearg#this is a string with a literal ## in it# <junk>

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

Это было то, что я имел в виду:
confix_p(L'#', *anychar_p, L'#' >> ~ch_p(L'#'))
Однако это возвращает:
#this is a string with a literal ##
Я бы хотел, чтобы это перескочило через ## Персонажи....возможно ли это?

Билли3

Это было полезно?

Решение

Я решил эту проблему, добавив звездочку kleene в анализатор confix.В любом случае, спасибо!

*confix_p(L'#', *anychar_p, L'#' >> ~ch_p(L'#')) работает, как и ожидалось.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top