【问题标题】:how to make doxygen to document only exportted tcl functions from a package如何使 doxygen 仅记录包中导出的 tcl 函数
【发布时间】:2012-12-19 22:15:05
【问题描述】:

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

【问题讨论】:

    标签: tcl doxygen


    【解决方案1】:

    在 tcl 成为受支持的语言之前,我以前使用 doxygen 生成 Tcl 文档。有一个用于处理输入文件的配置选项。

    FILTER_PATTERNS = *.tcl=bin\tcl_converter.bat
    

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

    1. 读取输入文件(它将作为 [lindex $argv 0] 传递)到 行数组
    2. 循环查找导出命令的所有行
    3. 遍历所有查找 procs 的行并匹配上面列出的导出命令
    4. 将所有当前过程及其前导码保存在一个字符串中 - 写入输出 如果它与导出的命令匹配,则文件在末尾​​li>

    一个合适的解析器可以使这个万无一失,但可能是矫枉过正。您可以只查找命名空间的开头和 proc 的开头并设置状态机。启动命名空间后,只需将每一行附加到字符串并使用 info complete $accumulated_ns_string 进行测试。同样,一旦您看到 proc 命令,就开始将行累积到不同的字符串中,并在每行之后继续检查 info complete $accumulated_proc_string。一旦评估为真,您可以打印或不打印并重置字符串。

    使用 info complete 将大大简化生活 - 所有的诡计都将跟踪命名空间并根据完全限定的导出名称评估完全限定的 proc 名称以确定是否将其打印到输出文件。有一些代码发生在命名空间之外或动态生成的导出代码的病态案例,但这种方法在我之前的工作中与我们投入的所有内容相比效果很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-09
      • 2011-09-14
      • 2011-08-03
      • 1970-01-01
      • 2011-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多