boost: spirit :: qi и табуляция в качестве разделителя - PullRequest
1 голос
/ 15 ноября 2011

Я новичок в повышении.У меня есть строка, разделенная табуляцией ('\ t').Как я могу разобрать его с boost :: spirit?

код парсера из сэмплов boost

1 Ответ

0 голосов
/ 15 ноября 2011

Пример кода повышения не совпадает с реальным примером повышения, который был разделен запятой, так что, вероятно, есть ваши модификации?

Анализатор ascii :: space будет обрабатывать для вас вкладки как разделители, поэтому что-то вроде:

start %=
    lit("employee")
    >> '{'
    >>  int_ >>
    >>  quoted_string >>
    >>  quoted_string >>
    >>  double_
    >>  '}'
    ;

Должно работать (минус «lit('\t')»). Но это также проанализирует другие пробельные символы (например, пробел, табуляция).

Если вам действительно нужно, чтобы между терминами явно были одиночные вкладки ТОЛЬКО, то оставьте в lit('\t') и оберните его в lexeme[], чтобы отключить пропуск с помощью анализатора пропусков.

...