如何使doxygen仅记录从包中导出的tcl函数

时间:2012-12-19 22:15:05

标签: tcl doxygen

是否有一种简单的方法可以使doxygen仅记录从包中导出的tcl函数。配置文件中的命令可能是?

1 个答案:

答案 0 :(得分:0)

我之前使用doxygen进行Tcl doc生成,之后tcl是一种受支持的语言。有一个用于处理输入文件的配置选项。

FILTER_PATTERNS = *.tcl=bin\tcl_converter.bat

其中bin \ tcl_converter.bat只是一个启动自定义处理器的批处理脚本。我们用它来最小化地将tcl语法改为doxygen在添加tcl支持之前理解的东西。但是,您可以在此处使用它来删除所有未导出的方法。编写处理器以删除所有未导出的过程将非常简单。类似的东西:

  1. 读取输入文件(它将作为[lindex $ argv 0]传递)到 行数
  2. 遍历所有寻找导出命令的行
  3. 遍历查找proc的所有行并匹配上面列出的导出命令
  4. 将所有当前过程及其前导码保存在字符串中 - 写入输出 文件最后是否与导出的命令匹配
  5. 一个合适的解析器可以使这个万无一失,但可能是矫枉过正。您可以只查找命名空间的开头和proc的开头并设置状态机。启动命名空间后,只需将每一行追加到字符串中并使用 info complete $ accumulation_ns_string 进行测试。类似地,一旦看到 proc 命令,就开始将这些行累积到另一个字符串中,并在每行之后用 info complete $ accumulation_proc_string 继续检查。一旦变为真,您可以打印或不打印并重置字符串。

    使用信息完整将大大简化生活 - 所有技巧都将用于跟踪命名空间并根据完全限定的导出名称评估完全限定的proc名称,以确定是否将其打印到输出文件。在命名空间之外或者动态生成的导出中存在一些代码的病态案例,但是这种方法在我之前的工作中对我们投入的所有内容都运行良好。