Я хочу создать компилятор, используя Ocamllex/Ocamlyacc, и я хочу создать основную программу, объединяющую оба моих OcamlParser и OcamlLexer. Дело в том, что я знаю, как это сделать, используя ввод в командной строке, например следующий код:
let _ =
try
let lexbuf = Lexing.from_channel stdin in
while true do
let result = Parser.main Lexer.token lexbuf in
print_int result; print_newline(); flush stdout
done
with Lexer.Eof ->
exit 0
Но как мне поступить, если я хочу использовать файл в качестве входных данных; Я пробовал что-то вроде этого:
let file ="add.txt"
let _ =
let ic = open_in file in
try
let lexbuf = Lexing.from_channel file in
while true do
let result = Parser.main Lexer.token lexbuf in
print_int result; print_newline(); flush stdout
done
with Lexer.Eof ->
exit 0
Но на самом деле это не работает.