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
しかし、実際には機能していません。