如何在运行ml-lex filename.lex
然后使用makeLexer
功能后从文件中获取输入?
我正在尝试:val lexer = makeLexer(fn n => valOf(inputLine(openIn("test.txt"))));
[我已完成open TextIO;
,以便我可以使用openIn
。]
但是,运行lexer();
后,这会给我一个错误:
未捕获的异常Io [Io:在“test.txt”上打开失败,打开的文件过多]
提出:基础/实施/ IO / text-io-fn.sml:783.25-783.71
答案 0 :(得分:2)
在发布的代码中没有看到问题,我猜你是在循环中打开多个文件,而且没有关闭它们,
user1
在下面的文字记录中,对栏的调用与1024一起使用,因为它打开然后按顺序关闭每个输入流,但随后对 foo 的调用失败并显示错误,因为它达到了平台定义的打开文件描述符数量限制。
user2