Вопросы по теме 'parsec'

Разбор синтаксиса на основе отступов в Haskell Parsec
Я пытаюсь разобрать язык на основе отступов (например, Python, сам Haskell, Boo, YAML) в Haskell с использованием Parsec. Я видел библиотеку IndentParser, и похоже, что это идеальное совпадение, но я не могу понять, как превратить мой TokenParser в...
2594 просмотров
schedule 15.07.2022

Функция парсинга в haskell
Я новичок в Haskell и пытаюсь разбирать выражения. Я узнал о Parsec, а также нашел несколько статей, но, похоже, не понимаю, что мне нужно делать. Моя проблема в том, что я хочу дать выражение типа «x ^ 2 + 2 * x + 3», а результатом будет функция,...
2683 просмотров
schedule 03.02.2023

Parsec против Yacc / Bison / Antlr: зачем и когда использовать Parsec?
Я новичок в Haskell и Parsec. После прочтения главы 16 Использование Parsec of Real World Haskell у меня в голове возник вопрос : Почему и когда Parsec лучше других генераторов парсеров, таких как Yacc / Bison / Antlr? Насколько я понимаю,...
10692 просмотров
schedule 30.11.2022

Ошибка синтаксического анализа при вводе '‹-' внутри блока do?
Я пытаюсь выполнить синтаксический анализ в Haskell, используя Parsec. У меня есть несколько парсеров в моем коде, но я получаю сообщение об ошибке на одном из них: expression2 = do (operator lexer "|" a <- alternate as...
1348 просмотров
schedule 09.10.2022

Parsec - комбинатор ошибок 'many' применяется к синтаксическому анализатору, который принимает пустую строку
Я пытаюсь написать синтаксический анализатор с использованием Parsec, который будет анализировать грамотные файлы Haskell, например следующие: The classic 'Hello, world' program. \begin{code} main = putStrLn "Hello, world" \end{code} More...
2602 просмотров
schedule 09.06.2023

Parsec соответствует одному символу Юникода
Я пытаюсь создать синтаксический анализатор (с помощью parsec), который анализирует токены, разделенные символами новой строки, запятыми, точками с запятой и тире Unicode (ndash и mdash): authorParser = do name <- many1 (noneOf [',', ':',...
997 просмотров
schedule 26.06.2023

Отладка парсека
Я работаю с parsec, и у меня проблемы с отладкой кода. Например, я могу установить точку останова в ghci, но я не уверен, как увидеть, сколько входных данных было использовано, или что-то в этом роде. Существуют ли инструменты/рекомендации,...
2422 просмотров
schedule 16.01.2023

Parsec: предиктивный анализ
У меня есть только несколько навыков работы с haskell, и мне нужна помощь, как реализовать прогнозирующий синтаксический анализ (LL*) с помощью parsec. У меня есть контекстно-свободная грамматика: <a> ::= identifier | identifier '('...
334 просмотров
schedule 28.05.2023

Является ли парсек альтернативой ANTLR?
Я планирую создать небольшой язык программирования для моей конкретной цели. Я читал, что ANTLR3 хорош для такой цели. Позвольте мне спросить, является ли Parsec возможной альтернативой ANTLR3 или относится к другой категории. Большое Вам спасибо.
408 просмотров
schedule 17.12.2023

Есть ли в F# новый тип Haskell?
Новая библиотека: XParsec . Этот вопрос привел к независимой от типа потока реализации parsec в F# 3.0, вдохновленной FParsec, освобожденной от CharStreams и упрощенной: http://corsis.github.com/XParsec/ В вдохновленной FParsec простой...
1263 просмотров
schedule 19.09.2022

Это идиоматическое использование Text.Parsec?
Мое использование Text.Parsec немного заржавело. Если я просто хочу вернуть совпадающую строку, это идиоматично? category :: Stream s m Char => ParsecT s u m [Char] category = concat <$> (many1 $ (:) <$>...
588 просмотров
schedule 18.01.2023

Разбирать рекурсивные данные с помощью parsec
import Data.Attoparsec.Text.Lazy import Data.Text.Lazy.Internal (Text) import Data.Text.Lazy (pack) data List a = Nil | Cons a (List a) list :: Text list = pack $ unlines [ "0" , "1" , "2" , "5" ] Как можно реализовать парсер List...
1731 просмотров

Проблемы с пустым списком при использовании parsec
Вот часть кода, который вызывает очень странные ошибки в зависимости от того, что анализируется после маркера emptyList в целевом файле. data Express = Seq [Express] | ID String | Num Integer | BoolConst...
113 просмотров
schedule 11.06.2023

Неожиданный символ Parsec после вызова функции
Вот мой код: http://hpaste.org/86353 . Я строю с GHC на Windows. Приведенный выше код производит следующий вывод в моем тестовом файле: parse error at (line 3, column 5): unexpected " " expecting "{", "if" or identifier Вот мой тестовый...
177 просмотров
schedule 01.06.2022

Ошибки синтаксического анализа пространства парсека Haskell
у меня есть stringparse = mstring <$> char '"' <*> (many alphaNum <|> many space) <*> char '"' where mstring a b c = [a] ++ b ++ [c] Когда я делаю, parse stringparse "" "\"hello\"...
231 просмотров
schedule 28.04.2023

аттопарсек или парсек в haskell
Мне нужно проанализировать некоторые файлы и преобразовать их в некоторые предопределенные типы данных. Haskell, похоже, предоставляет для этого два пакета: attoparsec парсек В чем разница между ними и какой из них лучше подходит...
10214 просмотров
schedule 13.04.2022

Как лучше всего использовать WriterT с Parsec?
Вопрос нуба по Haskell. Я весело провел время, написав несколько парсеров как с Parsec, так и с AttoParsec. Теперь я хочу собрать информацию в процессе синтаксического анализа (по сути, построить таблицу символов), и использование преобразователя...
325 просмотров
schedule 18.12.2023

Комбинаторы parsec и Text/ByteString
Парсер/комбинатор Haskell Parsec поддерживает входные потоки от Data.ByteString и Data.Text . Есть ли планы по добавлению дополнительной поддержки этих типов в будущих выпусках? Комбинаторы (many, sepby, string...), кажется, разработаны для...
329 просмотров
schedule 18.10.2022

Используйте Parsec для анализа нескольких разных типов полей.
У меня есть небольшой синтаксический анализатор, который может анализировать значения, разделенные табуляцией (TSV), в строки. Я хочу переключиться на проверку чисел и логических значений (указанных как «Y» или «N») в исходном файле. Вот старая...
99 просмотров
schedule 23.06.2023

Перевод производства грамматики в Parsec
Я пытаюсь преобразовать следующую грамматическую продукцию callExpr: primaryExpr | callExpr primaryExpr к выражению Parsec в Haskell. Очевидно, проблема в том, что он леворекурсивный, поэтому я пытаюсь разобрать его в стиле...
171 просмотров