如何扩展Doxygen以支持Lua?或者:如何编写Doxygen过滤器?

我正在处理一个代码库,其中一半是Lua,另一半是C++。我们使用Doxygen来记录我们的C++代码。现在,我们也想使用Doxygen来记录Lua部分,但是Doxygen缺乏对Lua的支持。

有一个项目(https://github.com/alecchen/doxygen-lua),它为Doxygen添加了部分Lua支持。它是用Perl编写的,我了解它的功能。它实现了一个过滤器,将Lua源文件转换为Doxygen可以解析的格式。然而,Doxygen似乎没有识别所有函数等。

因此,我的问题是:Doxygen希望从过滤器中接收什么格式的信息?

点赞
用户784672
用户784672

严格来说,你的过滤器应该生成符合 doxygen 支持的语言的语法有效的输出(你可以使用 EXTENSION_MAPPING 将你的语言的文件扩展名映射到一个受支持的语言)。

由于 doxygen 的解析器相当宽松(它是一个词法扫描器,不是一个真正的解析器),如果你不完全遵循语言的语法规则,它可能也能工作,但这将是一个试错的过程,以找出哪些偏差是允许的,并且这可能会在将来的 doxygen 版本上进行升级时出现错误。

2012-05-24 18:32:19