ML-Lex中的文件输入

时间:2018-03-28 14:43:43

标签: sml lex smlnj ml-lex

如何在运行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

  

1 个答案:

答案 0 :(得分:2)

在发布的代码中没有看到问题,我猜你是在循环中打开多个文件,而且没有关闭它们,

user1

在下面的文字记录中,对的调用与1024一起使用,因为它打开然后按顺序关闭每个输入流,但随后对 foo 的调用失败并显示错误,因为它达到了平台定义的打开文件描述符数量限制。

user2