Результаты поиска по запросу "parsec"

1 ответ

атопарсек или парсек в хаскеле

Я должен проанализировать некоторые файлы и преобразовать их в некоторые предопределенные типы данных. Похоже, что Haskell предоставляет для этого два пакета: attoparsec ...

4 ответа

Поскольку меня интересуют пробелы между тегами, а не внутри них, я все еще могу использовать зарезервированные операторы для разбора "<", "{{" и т. Д., Поскольку анализатор лексемы использует только конечные пробелы.

арсеры вText.Parsec.Token вежливо использоватьlexeme есть пробел после токена. К сожалению для меня, пробел включает в себя новые строки, которые я хочу использовать как терминаторы выражений. Есть ли способ убедитьlexeme покинуть новую строку?

1 ответ

К счастью, издержки, связанные с синтаксисом выражений вычислений, обычно незначительны для наиболее важного применения выражений вычислений в F #: асинхронных выражениях. (Выражения seq являются особым случаем, поскольку компилятор F # компилирует их в конечные автоматы.)

ил проверить FParsec и попытался написать парсер для λ-выражений. Оказывается, рвение затрудняет рекурсивный анализ. Как я могу решить это? Код: open FParsec type λExpr = | Variable of char | Application of λExpr * λExpr | Lambda of char * ...

ТОП публикаций

2 ответа

спасибо, это работает, но, как сказал Raeez Lorgat, modifyState - это нужная мне функция.

лизирую выражение с помощью Parsec и хочу отслеживать переменные в этих выражениях, используя пользовательское состояние в Parsec. К сожалению, я не совсем понимаю, как это сделать. Учитывая следующий код: import Data.Set as Set inp = "$x = $y ...

2 ответа

Haskell Parsec комбинатор 'many' применяется к парсеру, который принимает пустую строку

import Text.ParserCombinators.Parsec delimiter :: Parser () delimiter = do char '|' return () <?> "delimiter" eol :: Parser () eol = do oneOf "\n\r" return () <?> "end of line" item :: Parser String item = do entry <- manyTill anyChar (try eol ...

5 ответов

Каковы преимущества аппликативного разбора по сравнению с монадическим?

Кажется, существует консенсус, что вы должны использовать Parsec как аппликатив, а не как монаду. Каковы преимущества аппликативного разбора по сравнению с монадическим? стильпредставлениеабстракцияМонадический разбор?

2 ответа

Использование Parsec для разбора регулярных выражений

Я пытаюсь изучить Parsec, внедрив небольшой синтаксический анализатор регулярных выражений. В BNF моя грамматика выглядит примерно так: EXP : EXP * | LIT EXP | LITЯ попытался реализовать это в Haskell как: expr = try star <|> try litE <|> lit ...

1 ответ

Parsec или счастливый (с Алексом) или uu-parsinglib

Я собираюсь написать синтаксический анализатор языка verilog (или vhdl) и сделаю много манипуляций (рода преобразований) анализируемых данных. Я намерен проанализировать действительно большие файлы (полный дизайн Verilog, размером до 10 000 ...

1 ответ

Должен ли я использовать лексер при использовании библиотеки комбинатора синтаксического анализатора, такой как Parsec?

При написании парсера в библиотеке комбинатора парсера, такой как Parke на Haskell, у вас обычно есть 2 варианта: Напишите лексер, чтобы разделить вашString введите токены, затем выполните синтаксический анализ[Token]Напрямую пишите парсер ...