2015-11-01 2 views
-1

У меня есть следующее определение в синтаксический анализатор с использованием ReadP библиотеки Haskell:Как я могу пропустить пробелы при анализе Haskell строки

expr = chainl1 comp (string "===" >> return fun6) 

Как я могу пропустить пробелы перед оператором ===? Я не знаю, как включить его в этот синтаксис.

+0

Я думаю, что вопрос слишком широк, так как это звучит как ответ, нужно будет объяснить базовый синтаксис, монады и монадический синтаксический разбор. Существует множество обучающих программ, посвященных библиотекам комбинаторов парсеров, которые вы можете проверить. – jberryman

+0

Я знаю, как разбираться, у меня просто возникают проблемы с синтаксисом в этом. Все работает, но когда я пытаюсь разобрать строки с пробелами перед операторами, они терпят неудачу .... – Ezis

+0

вы пробовали 'пробелы >> строку" === ">> return fun6' – mb14

ответ

1

ReadP имеет skipSpaces для именно того, что usecase; ваш парсер затем становится

expr = chainl1 comp (skipSpaces >> string "===" >> return fun6) 
Смежные вопросы