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

Использование Ocamllex для лексирования строк (компилятор Tiger)
Я пытаюсь следовать «Современной реализации компилятора в ML» Аппеля и пишу лексер, используя Ocamllex. Спецификация требует, чтобы лексер возвращал строки после перевода управляющих последовательностей. Следующий код является выдержкой из...
1700 просмотров
schedule 17.11.2022

сгенерированный файл ocamllex
теория говорит об инструменте lex (я читал ocamllex), он преобразует набор регулярных выражений в код C (OCaml) для DFA (на самом деле в NFA, а также в NFA2DFA). Формальное определение DFA M — это кортеж из 5 M = {Q, Sigma, transition_function, q0,...
162 просмотров
schedule 10.07.2023

доступ к части согласованной строки ocamllex
Я пытаюсь организовать код ocamllex и ocamlyacc для сканирования и синтаксического анализа на простом языке. Я определил абстрактный синтаксис для того же самого, но мне трудно сканировать сложные правила. Вот мой код { type exp = B of...
111 просмотров
schedule 07.04.2022

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

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

Таблица переходов переполнена, автомат слишком большой
Я хочу добавить поддержку структурированные ссылки с таблицами Excel на мой лексер и парсер формул Excel. Я добавил следующие регулярные выражения в lexer_structref.mll : let lex_table_name = "DeptSales" let lex_column_header =...
73 просмотров
schedule 28.07.2022

Установите правило на основе значения глобальной переменной
В моем лексере и парсере от ocamllex и ocamlyacc у меня есть .mly следующим образом: %{ open Params open Syntax %} main: | expr EOF { $1 } expr: | INTEGER { EE_integer $1 } | LBRACKET expr_separators RBRACKET { EE_brackets (List.rev $2) }...
57 просмотров
schedule 31.07.2022