Описание тега ocamllex
NoneOcamllex - генератор лексера для OCaml
1
ответ
Ошибка Eof Ocaml
Я делаю компилятор для класса в Ocaml. Мне нужно прочитать файл с командами или выражениями типа "1", а затем он возвращает Int 1. Тот же код работал со всем классом, за исключением меня и моего друга. Все используют одну и ту же версию ocaml и Ubun…
24 фев '14 в 22:56
1
ответ
Таблица 2 направлений (строка <-> токен) в разборе
Я определил хеш-таблицу keyword_table хранить все ключевые слова моего языка. Вот часть кода: (* parser.mly *) %token CALL CASE CLOSE CONST ... reserved_identifier: | CALL { "Call" } | CASE { "Case" } | CLOSE { "Close" } | CONST { "Const" } ... (* l…
15 окт '13 в 21:54
1
ответ
Возможно ли в ocamllex определить правило, которое смотрит вперед на следующий символ, не потребляя его?
Я использую ocamllex для написания лексера для языка сценариев, но столкнулся с конфликтом с моим правилом для комментариев. Я хочу, чтобы аргументы моей команды не заключались в кавычки, если они содержат только буквенно-цифровые символы и косую че…
27 ноя '14 в 22:10
1
ответ
Расширить ocamllex для большей лексики
Есть ли способ заставить ocammlex работать с большим количеством ключевых слов? Я написал интерпретатор и парсер для немецкого языка, который "компилирует" немецкий текст в латексные картинки для анализа языка. это работает очень хорошо и действител…
15 июл '14 в 13:10
2
ответа
Сделайте таблицу, содержащую токены, видимой для обоих.mly и.mll
Я хотел бы определить keyword_table который сопоставляет некоторые строки с некоторыми токенами, и я хотел бы сделать эту таблицу видимой для обоих parser.mly а также lexer.mll, Кажется, что таблица должна быть определена в parser.mly, %{ open Utili…
31 янв '14 в 21:44
1
ответ
Повторение совпадений с регулярным выражением в ocamllex
Я пытаюсь написать лексер с ocamllex для какого-то специального родного языка (который немного изменен для моих целей). Некоторые слова должны соответствовать их первому символу, который удваивается. Но я не могу выразить это повторение первого симв…
12 июн '14 в 16:05
2
ответа
Конфликт при разборе набора выражений
Я хотел бы разобрать набор выражений: R[3]C, R[2]C, R[3]C-R[2]C... Есть конфликт, который я не могу решить... Вот часть lexer.mll: rule token = parse | 'R' { R } | 'C' { C } | "RC" { RC } | ['0'-'9']+ as lxm { INTEGER (int_of_string lxm) } | '+' { P…
23 июл '13 в 21:54
2
ответа
Внешние определения регулярных выражений ocamllex
Я реализовал обычную комбинацию lexer/parser/pretty-printer для чтения / печати типа в моем коде. Я нахожу избыточность среди лексера и симпатичного принтера, когда речь идет о регулярных выражениях в виде простых строк, обычно используемых для симв…
03 авг '12 в 12:04
2
ответа
Почему в сканере OCaml регулярное выражение для отрицательных целых чисел не работает?
У меня есть следующий код ocamllex: let flt = ['-' '+']?['0'-'9']+ ['.'] ['0'-'9']+ rule token = parse [' ' '\t' '\r' '\n'] { token lexbuf } (* Whitespace *) | ['0'-'9']+ as lxm { INTEGER(int_of_string lxm) } | flt as lxm { FLOAT(float_of_string lxm…
08 авг '14 в 21:15
1
ответ
Ошибка ocamlmktop: оба определяют модуль с именем Parser; оба определяют модуль с именем Lexer;
Я зеленый человек на ML, сейчас изучаю ocaml всего несколько часов, чтобы построить мой компилятор на нем. Лексер и парсер генерируются без проблем. Но проблема возникает, когда код компилятора создается с помощью ocamlmktop.Сообщение об ошибке нрав…
03 янв '19 в 15:15
1
ответ
Lexing и включить директиву с ocamllex
Я делаю компилятор для C-подобного языка, который должен поддерживать директиву #include (только в начале файла) Простой, но не элегантный подход заключается в создании подпрограммы, которая находит каждое вхождение директивы и заменяет соответствую…
26 апр '16 в 10:39
1
ответ
Вернуть несколько токенов в ocamllex
Есть ли способ вернуть несколько токенов в OCamlLex? Я пытаюсь написать лексер и парсер для языка на основе отступов, и я бы хотел, чтобы мой лексер возвращал несколько DEDENT токены, когда он замечает, что уровень отступа меньше, чем был раньше. Эт…
09 авг '10 в 06:42
1
ответ
OCamllex соответствует началу строки?
Я возился с написанием игрушечного языка программирования на OCaml с помощью ocamllex, и пытался сделать язык чувствительным к изменениям отступов в стиле python, но у меня возникла проблема с соответствием начала строки правилам регулярного выражен…
15 мар '11 в 16:17
1
ответ
Значение токена зависит от контекста
У меня есть странный строковый синтаксис, где значение разделителя зависит от контекста. В следующем примере ввода: ( (foo) (bar) ) В результате получается список из двух строк ["foo"; "bar"], Внешняя пара скобок входит в режим списка. Затем следующ…
29 окт '12 в 17:10
2
ответа
Использование ocamllex/ocamlyacc для разбора части грамматики
Я использовал регулярные выражения, чтобы просмотреть кучу файлов Verilog и вытащить определенные утверждения. В настоящее время регулярные выражения подходят для этого, однако я начинаю приближаться к тому моменту, когда понадобится настоящий синта…
21 авг '12 в 19:56
2
ответа
Интерпретатор OCaml: оцените функцию внутри функции
Я пытаюсь написать переводчик в OCaml и у меня проблема здесь. В моей программе я хочу вызвать такую функцию, например: print (get_line 4) // print: print to stdout, get_line: get a specific line in a file Как я могу это сделать? Я думаю, что проб…
19 мар '14 в 10:06
1
ответ
Распечатать токенизацию строки
В настоящее время я работаю над языком программирования в качестве хобби. Было бы значительно легче отлаживать ошибки лексизма, если бы ocamllex мог распечатать токены, которые ему соответствуют, когда он их находит. Иногда я просто добавляю операто…
16 май '15 в 02:20
0
ответов
Как сопоставить только часть выражения со строкой в ocamllex
У меня есть простая программа ocamllex, где раздел правил выглядит примерно так: let digits= ['0'-'9'] let variables= 'X'|'Z' rule addinlist = parse |['\n'] {addinlist lexbuf;} | "Inc" '(' variables+ '(' digits+ ')' ')' as ine { !inputstringarray.(!…
13 фев '14 в 10:06
2
ответа
Как я могу преобразовать StringMap в список в OCaml?
Я очень новичок в OCaml и пытаюсь преобразовать StringMap в список в OCaml. Карта была сгенерирована из списка ранее. let map = List.fold_left(<SOME CODE HERE, WHICH I AM OMITTING> ) StringMap.empty in StringMap.fold(fun w c newlist -> (c,w…
18 июл '14 в 22:25
1
ответ
Печать списка RLE в OCaml
Если я вызываю свою программу кодирования по длине прогона с кодированием [1;1;2], я получаю int encode list = [Multiple (1, 2); Singles 1] Как бы получить скобку () для одиночных игр, чтобы она была похожа на [Multiple (1, 2); Одиночки (1)]?
14 окт '15 в 03:24