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

Директива Lexing и include с помощью ocamllex
Я делаю компилятор для C-подобного языка, который должен поддерживать директиву #include (только в начале файла) Простым, но неэлегантным подходом было бы создание подпрограммы, которая находит все вхождения директивы и заменяет соответствующий...
394 просмотров
schedule 31.10.2021

Таблица 2-х направлений (строка ‹-› токен) при разборе
Я определил хэш-таблицу keyword_table для хранения всех ключевых слов моего языка. Вот часть кода: (* parser.mly *) %token CALL CASE CLOSE CONST ... reserved_identifier: | CALL { "Call" } | CASE { "Case" } | CLOSE { "Close" } | CONST {...
171 просмотров
schedule 18.03.2022

Использование StringMap в OCamllex
Я пытаюсь написать парсер OCamllex, который строит карту строк слов из списка. Однако я получаю сообщение об ошибке «Неограниченный модуль», когда пытаюсь открыть модуль StringMap в заголовке: { open StringMap type token = EOF | Word of...
561 просмотров
schedule 13.04.2022

Я пытаюсь сделать парсер с ocamlyacc для языка, но какой тип мне поставить?
У меня есть следующий код, который также имеет больше после expr: int {} | BOOL {} и т. Д., Но я не знаю, какой тип я должен написать в типе этого парсера, у меня есть пример калькулятора, который работает с int, а тип - int, но в моей программе у...
84 просмотров
schedule 13.07.2022

Как написать трехадресный код с помощью ocamllex и ocamlyacc?
Мне было интересно, как написать трехадресный код, используя ocamllex и ocamlyacc? Я много гуглил об этом, но ничего не нашел с помощью ocamlyacc. У меня работают парсер и лексер (оба используют, конечно, ocamlyacc и ocamllex), но теперь мне нужно...
680 просмотров

Лексирование строк в ocamllex
У меня были некоторые проблемы с попыткой найти хороший пример для обработки строк в ocamllex. Я нашел пример настольного калькулятора несколько полезным, но на самом деле не нашел способа реализовать его аналогичным образом, в котором он также...
75 просмотров
schedule 06.09.2022

Длинные строки Lua в fslex
В свободное время я работал над лексером Lua fslex, используя руководство ocamllex в качестве справочного материала. Я столкнулся с несколькими проблемами, пытаясь правильно токенизировать длинные строки. «Длинные строки» разделены токенами '['...
535 просмотров
schedule 18.12.2022

Можно ли в ocamllex определить правило, которое смотрит вперед на следующий символ, не используя его?
Я использую ocamllex для написания лексера для языка сценариев, но столкнулся с конфликтом с моим правилом для комментариев. Я хочу, чтобы аргументы моей команды не заключались в кавычки, если они содержат только буквенно-цифровые символы и косую...
1315 просмотров
schedule 14.06.2023

Как предварительно сформировать «просмотр» в лексере OCaml/как откатить лексему?
Ну, я пишу свой первый парсер на OCaml, и мне сразу как-то удалось сделать с бесконечным циклом. Особо следует отметить, что я пытаюсь лексировать идентификаторы в соответствии с правилами спецификации Scheme (очевидно, я понятия не имею, что я...
416 просмотров
schedule 19.07.2023

Внешние определения регулярных выражений ocamllex
Я реализовал обычную комбинацию lexer / parser / pretty-printer для чтения / печати типа в моем коде. Я обнаружил, что между лексером и красивым принтером есть избыточность, когда дело касается регулярных выражений в виде простых строк, обычно...
302 просмотров
schedule 16.12.2023

Ocamllex Синтаксическая проблема
{ } rule translate = parse | "current_directory" { print_string (Sys.getcwd ()) } | _ as c { print_char c } | eof { exit 0 } { let main () = let lexbuf = Lexing.from_channel stdin in while true do translate lexbuf done let _ = Printexc.print main ()...
129 просмотров
schedule 23.01.2024