Doxygen:如何仅使用其文档块而不是代码来记录非C函数?

时间:2014-05-03 09:32:50

标签: doxygen pari

我希望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'未被宣布或定义"并且不会在输出HTML中列出foo。有没有办法强制Doxygen只使用文档块而不是代码来生成正确的HTML?

1 个答案:

答案 0 :(得分:3)

有各种选择

  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