Парсеры Data.Text для Parsec 3.x

Я ищу вариант Text.Parsec.Char.satisfy для типа Data.Text или какую-то полиморфную альтернативу, что-то со следующей подписью:

satisfy :: Stream s m Text => (Text -> Bool) -> ParsecT s u m Text

Выполняется успешно для любого Data.Text, если указанная функция (Text->Bool) возвращает значение True.

Я пропустил такую ​​функцию или мне придется писать ее с нуля?


person David Unric    schedule 05.10.2012    source источник
comment
Не уверен, что это имеет смысл. Вы анализируете поток, в котором каждый элемент представляет собой Text? Или вы разбираете Text (в этом случае Text.Parsec.Char.satisfy должно работать нормально)?   -  person hammar    schedule 05.10.2012
comment
Из любопытства я хотел бы разобрать Text с Text или ByteString с ByteString и т. д.   -  person David Unric    schedule 06.10.2012


Ответы (2)


Вы где-то импортировали Text.Parsec.String? Вместо этого импортируйте Text.Parsec.Text. Тогда вы можете использовать стандартный satisfy, как говорит хаммар.

person Beetle    schedule 13.03.2013

Это тривиальный комбинатор над anyToken: http://hackage.haskell.org/packages/archive/parsec/3.1.1/doc/html/Text-Parsec-Combinator.html#v:anyToken

person sclv    schedule 03.02.2013