【问题标题】:Doxygen for a multi-language API用于多语言 API 的 Doxygen
【发布时间】:2012-07-11 10:02:52
【问题描述】:

我的公司为工程程序开发了一个 API。它是用 C++ 开发的,但我们为以下语言创建了包装器:

  • 一种类似于 VB 的专有语言
  • MATLAB
  • 和 Python。

目前,文档是由一堆脚本生成的,并且要保持 100% 使用它开始变得很耗时。我想知道是否有办法让 doxygen/sphinx 或其他程序一次性生成 C/C++、VB 和 MATLAB 的文档。 Python 部分由 SWIG 完成。目前的输出是这样的:

  • 函数名称
  • VB:
  • Function NameOfFunction(ByVal a As Long , ByRef b() As Long, ByVal c As Long) As Long
  • MATLAB:
  • 值 = NameOfFunction(a,b(),c)
  • C/C++:
  • 值 *NameOfFunction(objtype1 *a, objecttype2 *b[], int c)
  • +描述
  • +示例

【问题讨论】:

  • 没有可以为 doxygen 编辑的配置脚本吗?
  • 是的,但我怎样才能完成我想要的。我看了看,但找不到看起来像我想要的东西。

标签: c++ matlab vb6 doxygen python-sphinx


【解决方案1】:

doxygen 支持多种语言,

要在多个项目或文件夹和语言上使用它,您只需将 doxygen 指向要在配置中检查的每个文件夹。

我最喜欢的编程语言是 X。我还能使用 doxygen 吗?

不,不是这样; doxygen 需要了解它所读取内容的结构。如果您不介意花一些时间在上面,有几种选择:

是否支持语言 X?

如果 X 的语法接近于 C 或 C++,那么它可能不会太接近 很难调整 src/scanner.l 以便支持该语言。这 对于 doxygen 直接支持的所有其他语言(即 Java、IDL、C#、PHP)。如果 X 的语法与 您可以编写一个输入过滤器,将 X 转换为类似的东西 足以让 C/C++ doxygen 理解(这种方法用于 VB、Object Pascal 和 Javascript,请参阅 http://www.doxygen.nl/download.html#helpers)。如果 语法完全不同,可以为 X 编写一个解析器,并且 编写一个生成类似语法树的后端 src/scanner.l(也可以通过 src/tagreader.cpp 读取标签文件)。

但是,由于您使用的是 VB 之类的专有语言,如果您只是将文件扩展名更改为 .vb 的扩展名,它可能会选择这种语言

这里是如何与matlab一起使用它

已经支持python和c++

看看 FAQ 页面

【讨论】:

    【解决方案2】:

    我想知道是否有办法让 doxygen/sphinx 或其他程序一次性生成 c/c++、VB 和 matlab 的文档。

    Zeus 编辑器有一个doxygen feature,允许您为 Zeus 工作区中的所有项目创建 doxygen 文档。

    【讨论】:

    • 谢谢,但我发现很难让所有开发人员都开始使用其他 IDE。
    • 我很难相信仅使用特定的编辑器就能神奇地使 doxygen 支持任意文件。
    • 回应 Ben Voigt:没有魔法。我描述的功能无非是任何添加到 Zeus 工作区的文件都会被发送到 doxygen 进行处理。 doxygen 处理该文件的能力取决于 doxygen,但 Zeus 会确保它被处理。就是这样,不多不少。
    【解决方案3】:

    Doxygen 网站有一个页面,其中包含指向各种语言的 3rd 方帮助程序的链接,您可以调整:

    http://www.doxygen.nl/helpers.html

    那里提到了 VB 和 MatLab 过滤器。

    【讨论】:

      猜你喜欢
      • 2014-08-16
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多