如何从OCaml代码中提取类型定义

如何从OCaml代码中提取类型定义,ocaml,Ocaml,有没有办法从一堆OCaml文件中提取所有类型定义?我总是可以将它们剪切并粘贴到一个单独的编辑器选项卡中,在那里可以很容易地以一种尽可能适合屏幕上信息的方式注视它们。然而,这是一件琐事,我更愿意让它自动化 为了精确起见,Emacs和tuareg模式已经向我展示了所有函数的类型,但我还希望能够收集到一份关于每种类型的详细资料。对于模块来说,显然有mli文件,但是对于其他所有东西来说,将它们收集到一个地方以快速获得一堆代码的概述是很烦人的。很难理解您的要求。如果我把每个人的建议集中到一个地方,也许会有

有没有办法从一堆OCaml文件中提取所有类型定义?我总是可以将它们剪切并粘贴到一个单独的编辑器选项卡中,在那里可以很容易地以一种尽可能适合屏幕上信息的方式注视它们。然而,这是一件琐事,我更愿意让它自动化


为了精确起见,Emacs和tuareg模式已经向我展示了所有函数的类型,但我还希望能够收集到一份关于每种类型的详细资料。对于模块来说,显然有mli文件,但是对于其他所有东西来说,将它们收集到一个地方以快速获得一堆代码的概述是很烦人的。

很难理解您的要求。如果我把每个人的建议集中到一个地方,也许会有帮助

正如nlucaroni所指出的,你不能说你有一个模块的解决方案,但你想要的是一个适用于其他一切的解决方案。没有别的了。所有OCaml代码都是模块的一部分

你说mli文件没问题。如果模块没有mli文件,您可以使用
ocamlc-i
为其生成mli文件,正如camlspotter所说


如果这不起作用,请给出一些OCaml代码的示例,以及您希望看到的提取定义。

这种语言本身没有解析器吗?顺便说一句,我会避免在一个SO线程中询问工具——这就像乞求一个封闭的主题。是的,当然我可以获取解析器的源代码并自己编写。然而,我还有其他事情要做,我希望有一种方法可以做到这一点,而且已经有人实现了。@Erik:我不是在问“什么是最好的工具/ide/…”,这往往会被关闭。然而,对于人们认为的离题内容,我通常是一个糟糕的判断,所以我不在乎。使用ocamlc-I生成mli或使用ocamldoc我认为你需要给出一个例子,说明你期望我们理解你的意思。事实证明,我在上面的评论有点仓促。我想用ocamlc-I来完成,并通过一个简单的shell脚本传递输出。