是否有允许过滤源文件中的注释的 OCaml 工具,类似于gcc -E
?
理想情况下,我正在寻找可以删除除评论之外的所有内容的东西,但反过来也很有用。
例如,如果有一种方法可以使用camlp4/campl5/ppx 来获取OCaml 注释(包括用单个星号定义的非OCamldoc 注释),我想知道。我在 Camlp4 的 AST 中寻找注释节点并没有取得多大成功(尽管我知道它必须存在,因为甚至存在与 Camlp4 修改它们的位置有关的错误)。
这是一个示例:在以下文件中:
(*** three asterisks *)
let f () =
Format.printf "end"
let () =
(* one asterisk (* nested comment *) *)
Printf.printf "hello world\n";
(** two asterisks *)
f();
()
我想理想地获得:
(*** three asterisks *)
(* one asterisk (* nested comment *) *)
(** two asterisks *)
它们之间的空格和是否存在(* *)
大多无关紧要,但它应该保留各种评论。我的直接目的是能够将其过滤到拼写检查器中,但清理评论(即有一个只删除评论的过滤器)也很有用:我可以清理评论,然后使用它diff
来获取已删除的内容。