Doxygen 过滤器格式?

Doxygen filter format?

我们与我的团队一起创建需要记录的软件。我发现 doxygen 似乎是一个很好的程序来做到这一点。虽然不支持我们的编程语言(RAPID)。

昨天我问了一个关于这个的问题。阿尔伯特非常友好地提供了正确方向的线索。过滤器应该是代替预处理器的正确方法。

但是我没有提供可以在这里找到的 RAPID 代码的语法: http://futurecnc.code.arc.cmu.edu/wp/wp-content/uploads/2011/12/RAPID-Reference-Manual-Instructions.pdf

我从 doxygen 网站找到了关于创建过滤器的帮助指南。我还找到了 Bert Jordan 为 perl 创建的示例过滤器:
http://www.doxygen.nl/helpers.html

一些问题:

  1. 过滤器是正确的方法,还是需要预处理器?
  2. 过滤器到底在做什么?
  3. Doxygen 有一个词法扫描器,过滤器必须使用什么样的格式才能将快速代码转换为支持的语言?

我希望,我现在已经给出了清楚的描述:)

编辑:我正在搜索有关如何创建实际过滤器的信息。 有人知道这个的好来源吗?

the helpers section 下的 doxygen 站点上有一些关于其他语言的过滤器的示例。

我为我的一个项目 Bash 使用了 doxygen 过滤器(此处未列出)。过滤器非常简单,可能是一个很好的例子。此过滤器在 Anvils github.

可用

本质上它只是一个 ~130 行的 sed 脚本,将 bash 转换为 doxygen 可以解析的准 C。您可以为 RAPID 编写自己的 sed 脚本。

你应该将它添加到你的 Doxyfile 中:

# Tell doxygen to handle files with sh extension as C files
EXTENSION_MAPPING = sh=C

# Tell doxygen to run sh files through the below sed script
FILTER_PATTERNS        = *.sh=MY_PATH/doxygen-bash.sed

还有一个 python 示例来自帮助页面 here

要理解的主要部分是过滤器可以是你喜欢写的任何东西。 Python、sed、shell 等。Doxygen 只是调用您的过滤器,通过它运行代码,您的过滤器应该输出 Doxygen 可以解析的语言。