Пример кода повышения не совпадает с реальным примером повышения, который был разделен запятой, так что, вероятно, есть ваши модификации?
Анализатор ascii :: space будет обрабатывать для вас вкладки как разделители, поэтому что-то вроде:
start %=
lit("employee")
>> '{'
>> int_ >>
>> quoted_string >>
>> quoted_string >>
>> double_
>> '}'
;
Должно работать (минус «lit('\t')
»). Но это также проанализирует другие пробельные символы (например, пробел, табуляция).
Если вам действительно нужно, чтобы между терминами явно были одиночные вкладки ТОЛЬКО, то оставьте в lit('\t')
и оберните его в lexeme[]
, чтобы отключить пропуск с помощью анализатора пропусков.