Удовлетворение эквивалентно Парсеку в uu-parsinglib

Я ищу satisfy функционировать как тот, который имеет Parsec. Что-то вроде:

--The parser satisfy f succeeds for any character for which the supplied
--function f returns True.
--Returns the character that is actually parsed.
satisfy :: (Char -> Bool) -> Parser Char

Единственное, что я нашел, это pSatisfy, который требует Insertion в качестве аргумента. Я не понимаю, почему это необходимо... Я просто хочу, чтобы синтаксический анализатор не работал, если предикат не удовлетворен!

Как мне этого добиться?

1 ответ

Решение

Наконец мне удалось взломать satisfy функция, которая отвечает моим потребностям. Тем не менее, uu-parsinglib - это анализатор исправления ошибок, который выдаст исключение, если вы не предоставите корректирующую альтернативу.

Это означает, что вы должны использовать обычный pSatisfy функционировать и обеспечить Insertion элемент. Если вы не знаете, какой должна быть стоимость, вы можете использовать 5, как видно из реализаций других парсеров, таких как pSymbol,

Другие вопросы по тегам