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

На первый взгляд эквивалентные правила менгира изменяют конфликты сдвига / сокращения, встречающиеся в грамматике.
Я использую Menhir для создания синтаксического анализатора, и есть поведение, которое всегда сбивает меня с толку, и я его не понимаю. Я создал следующий минимальный пример, чтобы продемонстрировать это; это показывает объявление аргумента...
1098 просмотров

Есть ли способ экспортировать больше вещей, когда я создаю парсер с менгиром?
Я использую menhir для создания парсера, и прямо сейчас файл parser.mli, который он сгенерировал из моего файла parser.mly, выглядит так: (* The type of tokens. *) type token = (* ... huge ADT definition goes here ... *) (* This exception is...
153 просмотров
schedule 16.11.2022

Как парсер LR(1) обрабатывает пустые правила?
Я работал с несколькими парсерами (Yacc, Bison и Menhir). Если я правильно помню, все они допускают, чтобы правило было пустым. Вот пример того, что я имею в виду под Менгиром, это то, что я использовал чаще всего. some_list: | {[]} |...
373 просмотров
schedule 04.04.2022

Как разобрать список выражений с помощью менгира?
Вот мой текущий лексер и парсер для языка тигра Эндрю Аппеля (ocaml). В настоящее время я пытаюсь поддерживать взаимные рекурсивные функции, но следующий код парсера не работает: decs : | l = list(dec) { l } dec : | t =...
658 просмотров
schedule 03.07.2022

Ветвление на рычаге парсера в зависимости от содержимого токена
Я работаю над простым анализатором / лексером для небольшого проекта, но столкнулся с проблемой. Я разбираю контент по этим строкам: Name SEP Gender SEP Birthday Name SEP Gender SEP Birthday … Где SEP - любое (но не кратное!) Из | , ,...
113 просмотров
schedule 25.05.2023

Как извлечь полезную информацию из полезной нагрузки GADT/экзистенциального типа?
Я пытаюсь использовать Menhir API добавочного синтаксического анализа и API самоанализа в сгенерированном синтаксическом анализаторе. Я хочу, скажем, определить семантическое значение , связанное с конкретной записью стека LR(1); токен,...
100 просмотров
schedule 14.05.2024

Заставить лексер рассматривать парсер перед определением токенов?
Я пишу лексер и парсер на ocamllex и ocamlyacc следующим образом. function_name и table_name - это одно и то же регулярное выражение, т.е. строка, содержащая только английский алфавит. Единственный способ определить, является ли строка...
38 просмотров
schedule 22.06.2023