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

Парсинг простых типов в FParsec
Я пытаюсь разобрать стандартные простые типы (в смысле лямбда-исчисления) с помощью FParsec, но мне трудно перейти от стиля Lex/Yacc к стилю, используемому в FParsec, особенно в отношении рекурсивных определений. Примеры типов, которые я пытаюсь...
550 просмотров
schedule 20.03.2022

Как устранить ошибку FParsec Комбинатор «многие» был применен к синтаксическому анализатору, который работает без использования
У меня есть парсер, который кажется достаточно простым. Я добавил этот вспомогательный анализатор в конец, чтобы предоставить информацию об общих ошибках синтаксического анализа, поскольку все остальные вспомогательные анализаторы не сработали -...
565 просмотров
schedule 07.07.2023

Разбор чисел в FParsec
Я начал изучать FParsec. У него очень гибкий способ анализа чисел; Я могу предоставить набор числовых форматов, которые я хочу использовать: type Number = | Numeral of int | Decimal of float | Hexadecimal of int | Binary of int...
1459 просмотров
schedule 27.12.2022

Как заставить анализатор идентификаторов останавливаться на операторах OperationPrecedenceParser в FParsec?
Я реализую парсер для имен идентификаторов, которые будут использовать символы Unicode. Проблема, с которой я столкнулся, заключается в том, что у меня есть некоторые операторы, которые также написаны с помощью символов Юникода, и они могут быть...
146 просмотров
schedule 01.02.2023

Хвостовая рекурсия в FParsec
Я столкнулся с проблемой парсеров с двумя ветвями рекурсии. Чтобы упростить демонстрацию проблемы, я использую простую грамматику лямбда-исчисления из статья, написанная Лукой Болоньезе в качестве примера: <expression> ::= <name>...
384 просмотров
schedule 28.07.2023

стили FParsec; продемонстрировать различия между комбинатором и монадическим стилем?
Я новичок в F#, около двух месяцев, и недавно я закончил руководство по FParsec и начал искать другие примеры. Чем больше я читал, тем больше запутывался, а потом начал видеть ссылки на стили. Я искал другие стили и придумал этот список....
220 просмотров
schedule 07.07.2022

FParsec - Как анализировать стандартный входной поток
Кажется, я не могу успешно разобрать стандартный входной поток с помощью FParsec. Я сократил свой случай до этого очень простого кода: match (runParserOnStream (pstring "test" .>> FParsec.CharParsers.newline) () "stdin"...
538 просмотров
schedule 22.09.2022

Разбор int или float с помощью FParsec
Я пытаюсь проанализировать файл, используя FParsec, который состоит из значений типа float или int. У меня две проблемы, для которых я не могу найти хорошего решения. 1 И pint32 , и pfloat успешно проанализируют одну и ту же строку, но...
577 просмотров
schedule 06.04.2022

Откат FParsec во вложенном парсере
Я хочу анализировать выражения, построенные так: a is x or y or z or b is z or w , поэтому в основном у меня есть один и тот же разделитель для разных правил в моей грамматике. Мне уже удалось разобрать такие выражения с помощью Antlr, поскольку...
107 просмотров
schedule 01.09.2022

Как разобрать последовательность слов, разделенных двойными пробелами, с помощью fparsec?
Учитывая ввод: alpha beta gamma one two three Как я могу разобрать это ниже? [["alpha"; "beta"; "gamma"]; ["one"; "two"; "three"]] Я могу написать это, когда есть лучший разделитель (например, __), как тогда sepBy (sepBy word...
182 просмотров
schedule 24.06.2022

Пример простого списка FParsec
Я только начинаю работать с FParsec и не могу понять простой синтаксический анализатор списков. Учитывая ввод "{ a;b;c d; }" Я хочу получить результат ['a';'b';'c';'d'] If I do let baseChars = ['0'..'9'] @ ['A'..'Z'] @...
115 просмотров
schedule 20.12.2022