--- src/gufoStartComp.ml.orig 2020-03-29 00:19:15.000000000 +0800 +++ src/gufoStartComp.ml 2025-10-18 13:26:23.000000000 +0800 @@ -29,7 +29,7 @@ let parse_shell content = debug_info (debug_title1 "Start converting file to a gufo program."); try( - let lexbuf = create_lexbuf (Sedlexing.Utf8.from_stream (Stream.of_string content)) in + let lexbuf = create_lexbuf (Sedlexing.Utf8.from_string content) in let prog = sedlex_with_menhir Gufo_lexer.read Gufo_parser.shell lexbuf in match prog with @@ -45,11 +45,14 @@ raise e let parse_file filename = - try( - let inx = open_in filename in - let lexbuf = create_lexbuf ~file:filename (Sedlexing.Utf8.from_channel inx) in - let prog = sedlex_with_menhir Gufo_lexer.read Gufo_parser.prog lexbuf in - close_in inx; - prog - ) - with _ -> None + let inx = open_in filename in + try + let size = in_channel_length inx in + let content = really_input_string inx size in + close_in inx; + let lexbuf = create_lexbuf ~file:filename (Sedlexing.Utf8.from_string content) in + let prog = sedlex_with_menhir Gufo_lexer.read Gufo_parser.prog lexbuf in + prog + with e -> + close_in_noerr inx; + raise e