Мы пишем компилятор в OCaml для нашего собственного домена. Пока у нас есть рабочий сканер, парсер и аш.OCaml: Как протестировать сканер и парсер?
Каков наилучший способ проверить сканер/парсер на этом этапе? Я знаю, что можно передать последовательность токенов в анализатор/сканер и посмотреть, будет ли он принят/отклонен сканером/парсером. (например, echo "FLOAT ID" | menhir --interpret --interpret-show-cst parser.mly
).
Но есть ли способ передать реальную программу, написанную на нашем родном языке, сканеру/парсеру и посмотреть, будет ли он принят?
Я должен добавить, что я очень новичок в OCaml, и я очень мало знаю о компиляторах.
Вы не можете использовать Lexing.from_channel или Lexing.from_string? _val from_string: string -> lexbuf Создайте буфер лексера, который читается из данной строки. Чтение начинается с первого символа в строке. Условие окончания ввода генерируется, когда конец строки достигнут. – Lhooq
Можете ли вы привести пример? – fomkatya