3

我希望 Doxygen 记录用类 C 语言 (PARI/GP) 编写的代码,但语法略有不同。我相信 Doxygen 可以记录那些不存在的实体。当编程语言不支持 Doxygen 时,这似乎是完成这项工作的最简单方法。我想要这样的东西:

/*!
 \fn foo(param,{option})
 \brief some brief description here
 \param[in](param) mandatory parameter description
 \param[in](option) optional parameter description
*/
/*! \cond DOXYGEN_SHOULD_SKIP_THIS */
foo(param, {option}) =
{
    ...
};
addhelp(foo, "help message for `foo` function");
/*! \endcond */

不幸的是,Doxygen 生成警告“未声明或定义记录的符号 'foo'”,并且没有foo在输出 HTML 中列出。有没有办法强制 Doxygen 只使用文档块而不是代码来生成正确的 HTML?

4

1 回答 1

4

有多种选择

  1. 您可以编写一个输入过滤器,将您的代码翻译成看起来很像 C 的东西,以便 doxygen 解析它(另请参见FILTER_PATTERNSEXTENSION_MAPPING)。

  2. 您可以使用函数原型创建一个虚拟 C 文件并记录它们。如果您使用问题中提到的方法,您可以将文档放入 C 文件或您的编程语言中。

  3. 如果您的语言支持 C 预处理器,您可以使用 doxygen 的 C 预处理器对 doxygen 隐藏文件的某些部分,即

    #if DOXYGEN_ONLY
    /**
     \brief some brief description here
     \param[in](param) mandatory parameter description
     \param[in](option) optional parameter description
    */
    void foo(param,option);
    #endif
    foo(param, {option}) { ... };
    

    然后在配置文件中定义以下内容:

    PREDEFINED = DOXYGEN_ONLY
    
于 2014-05-04T07:41:00.823 回答