Filter 氧气过滤器格式?

Filter 氧气过滤器格式?,filter,doxygen,Filter,Doxygen,与我的团队一起创建我们需要记录的软件。我已经找到了doxygen,这似乎是一个很好的程序。尽管我们的编程语言不受支持(RAPID) 昨天我问了一个问题。阿尔伯特很善良,为我们提供了一条正确方向的线索。过滤器应该是代替预处理器的正确方法 但是我没有提供RAPID代码的语法,可以在这里找到: 我在doxygen网站上找到了关于创建过滤器的帮助指南。我还发现了一个由Bert Jordan为perl创建的示例过滤器: 一些问题: 过滤器是正确的选择,还是需要预处理器 过滤器到底在做什么 Doxyge

与我的团队一起创建我们需要记录的软件。我已经找到了doxygen,这似乎是一个很好的程序。尽管我们的编程语言不受支持(RAPID)

昨天我问了一个问题。阿尔伯特很善良,为我们提供了一条正确方向的线索。过滤器应该是代替预处理器的正确方法

但是我没有提供RAPID代码的语法,可以在这里找到:

我在doxygen网站上找到了关于创建过滤器的帮助指南。我还发现了一个由Bert Jordan为perl创建的示例过滤器:

一些问题:

  • 过滤器是正确的选择,还是需要预处理器
  • 过滤器到底在做什么
  • Doxygen有一个词法扫描程序,过滤器必须使用什么样的格式才能将快速代码转换为支持的语言
  • 我希望,我现在已经给出了一个明确的描述:)

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

    在doxygen网站的下面有一些关于其他语言过滤器的例子

    我在我的一个项目中为Bash使用了一个doxygen过滤器(这里没有列出)。这个过滤器非常简单,可能是一个很好的例子。此过滤器可在上找到

    本质上,它只是一个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
    
    通过helpers页面还有一个python示例


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

    关于第3点和第4点:过滤器应该扫描输入文件,作为过滤器的参数,将其转换为Doxygen可以理解的语言,并将所有内容写入标准输出。Doxygen将从过滤器的“标准输出”中选择结果。嗨@albert,再次感谢您的回答。似乎找不到关于如何实际编程过滤器的任何指南或信息,您知道一些源代码吗?我也不知道过滤器格式的源代码。过滤器的输出应该是doxygen.thx本机理解的源文件(在stdout上),但是必须有一些关于如何添加过滤器的文档?“过滤器的输出应该是一个源文件(在标准输出上)”?关于添加过滤器的有限文档在Doxyfile中(在手册的配置章节,第23章中。Doxyfile和manual或多或少是相同的,因为它们是从同一个源生成的)。“筛选器的输出应为源文件(在标准输出上)”,这意味着筛选器应将原始文件转换为“新”格式,并将其转储到标准输出(因此筛选器在其自己的内存空间中创建一个新文件,并应将其转储到标准输出。最简单的筛选器是将其输入转储到标准输出的“cat”)谢谢你是我今天的英雄!但是我在helpers页面上找不到任何代码示例,我是否忽略了什么?请看我的补充,过滤器只会接收一个快速文件,并输出一个将其扭曲为类似C的文件的文件。过滤器可以用你喜欢的任何语言编写。好的,谢谢你的澄清,现在我明白了(我想哈哈)。但它只是一个单独的程序。当您运行doxygen时,是否可以从doxygen调用筛选程序,或者只是将其作为单独的程序运行。doxygen文件中的
    filter\u PATTERNS
    标记使doxygen在doxygen遇到该扩展名时调用该程序/脚本。最后,我想我理解了它,以及如何解决该问题。只是为了验证我是否理解它:我必须创建一个程序(过滤器),当doxygen开始运行时,它将调用该程序。可以通过更改doxyfile的设置来调用它。其次,过滤器功能是将语言语法(RAPID)转换为c代码语法,这样doxygen的laxilal扫描器就可以解释它,并用UML图表创建html页面。这是正确的吗?