首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何基于模块签名为OCaml生成文档?

如何基于模块签名为OCaml生成文档?
EN

Stack Overflow用户
提问于 2013-05-07 09:56:00
回答 1查看 224关注 0票数 3

我有这样的a.ml

代码语言:javascript
复制
module type ASig = 
  sig 
    val do_something : unit -> int;;
  end ;;

module A:ASig = 
  struct 
    let do_something () = 1;;
    let do_secrectly () = 2;;
  end;;

因此,对于我的模块A,接口应该仅为do_something()**.**

但是,如果我使用ocamldoc -html a.ml,虽然模块sig声明了接口,但是doc仍然公开模块A中的所有函数,如下所示:

代码语言:javascript
复制
module A: sig .. end
val do_something : unit -> int
val do_secrectly : unit -> int

如何使用ocamldoc 使所有文档都基于 module sig**?**

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-07 12:33:48

不幸的是,在当前ocamldoc的实现中,这是不可能的:它考虑了约束,但在纯粹的语法级别上,它只能在显式形式的sig ... end中使用它们,而不是引用现有的标识符(因为分析是在解析的语法树上进行的,而不是在类型化的树上进行的)。

你可以:

  • 在那里使用.mli和文档(如果您只提供.mli,则只记录其中的内容)
  • 或者使用标记(**/**)告诉ocamldoc在您希望保持私有的函数之前丢弃模块的其余部分、模块类型等等。
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16416169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档