如何用Doxygen记录Visual Basic

ant*_*nio 5 vb.net vb6 documentation vba doxygen

我试图在Windows中为Visual Basic使用一些Doxygen筛选器。

我从基于gawk的Vsevolod Kukol过滤器开始。没有太多的方向。因此,我开始使用他自己的注释VB代码VB6Module.bas,并通过他的vbfilter.awk发出:

gawk -f vbfilter.awk VB6Module.bas  
Run Code Online (Sandbox Code Playgroud)

这将在stdin上输出类似C的代码。因此,我使用以下命令将其重定向到文件:

gawk -f vbfilter.awk VB6Module.bas>awkout.txt
Run Code Online (Sandbox Code Playgroud)

我创建了这个Doxygen test.cfg文件:

PROJECT_NAME      = "Test"
OUTPUT_DIRECTORY  = test
GENERATE_LATEX    = NO
GENERATE_MAN      = NO
GENERATE_RTF      = NO
CASE_SENSE_NAMES  = NO
INPUT             = awkout.txt
QUIET             = NO
JAVADOC_AUTOBRIEF = NO
SEARCHENGINE      = NO
Run Code Online (Sandbox Code Playgroud)

为了产生我签发的文件:

doxygen test.cfg 
Run Code Online (Sandbox Code Playgroud)

Doxygen抱怨说“ \ file语句中作为第二个参数提供的名称'VB6Module.bas'不是输入文件。” 我@file VB6Module.bas从删除了评论awkout.txt。警告停止了,但是在两种情况下,生成的文档只是带有项目名称的一页。

我还在Python vbfilter.py中尝试了Basti Grembowietz的替代过滤器。再次没有文档,再次产生错误并且没有任何有用的输出。

ant*_*nio 2

经过反复试验我解决了这个问题。

我无法将.bas文件转换为可以将其作为输入传递给 Doxygen 的格式。不管怎样,按照@doxygen 用户的建议,我能够创建一个 Doxygen 配置文件,以便它可以.bas正确解释文件注释。

给定文件VB6Module.bas(由 Doxygen-VB-Filter 作者 Vsevolod Kukol 编写),并使用适用于 Visual Basic 的 Doxygen 风格进行注释,我编写了 Doxygen 配置文件 ,test.cfg如下所示:

PROJECT_NAME      = "Test"
OUTPUT_DIRECTORY  = test
GENERATE_LATEX    = NO
GENERATE_MAN      = NO
GENERATE_RTF      = NO
CASE_SENSE_NAMES  = NO
INPUT             = readme.md VB6Module.bas
QUIET             = YES
JAVADOC_AUTOBRIEF = NO
SEARCHENGINE      = NO
FILTER_PATTERNS   = "*.bas=vbfilter.bat"
Run Code Online (Sandbox Code Playgroud)

在哪里:

  • readme.md是任何可用作主文档页面的 Markdown 文件。
  • vbfilter.bat包含:

    @echo off gawk.exe -f vbfilter.awk "%1%"

  • 假设过滤器作者的vbfilter.awk与要记录的输入文件位于同一文件夹中,显然 gawk应该位于路径中。

跑步:

doxygen test.cfg 
Run Code Online (Sandbox Code Playgroud)

一切都很顺利,除了两个明显无害的警告:

gawk: vbfilter.awk:528: warning: escape sequence `\[' treated as plain `[' 
gawk: vbfilter.awk:528: warning: escape sequence `\]' treated as plain `]' 
Run Code Online (Sandbox Code Playgroud)

现在test\html\index.html包含由“.bas”和 Markdown 文件提取的正确文档。