2012-12-20 50 views
2

我能以某种方式生成具有相同代码的2种不同语言的文档吗?问题是我有一个C API,它也暴露在一个类似于VB的专有语言中。使用相同的代码生成2种语言的文档

那么在C暴露的功能是一样的东西:

int Function (*PointerToObject) 

虽然在VB中它会是这样的:

int Function (ByVal long PointerToObject) 

之前,这个同样的问题我已经打开another thread,但由当时我对Doxygen一无所知。最近几天我一直在阅读文档,显然它可以为VB创建文档,但是我必须有实际的VB代码才能工作,而我不需要。我唯一拥有的是原始的C和在C中的swig输出。

我想到的是一些工具(doxygen,sphinx,...),它使我能够创建某种多语言从单一来源文件(无效doxygen的,但解释的想法):

/*! \fn int Function(*PointerToObject) 
* \brief A simple function. 
* \Cparam[in] PointerToObject A pointer to the object being used. 
* \VBparam[in] ByVal long PointerToObject  A pointer to the object being used. 
* \return An integer. 
*/ 

这将是巨大的,如果我能以某种方式整合它来痛饮,因为它是痛饮标识正确VB的类型,但我想我也许会问太多。

这有点复杂,如果我不够清楚请留下评论我会尽力解释一下。

回答

0

我还不能肯定这是多么有用将是因为我没有做你正在寻找正是对(它是一个有点杂牌的),但在类似的情况下,我得出的结论是我们最好的打赌是为了让doxygen生成一个绒毛对象来记录。

在我们的情况下,我们拥有这不会在MUD的其余部分被写在LPC语言的存在。我们可以解析在其原生的C代码几百驾驶员出版外部功能的LDMud作为一个单独的文档运行和include与我们的主要文档的文档。在我们的例子中,我们有相当深入的明文文件,包括我们应该考虑这些功能是定义,所以我们使用这个文件,而不是生成与虚拟函数定义的对象,并解析明文文件到doxygen的功能头的意见样式。这显然没有为我们提供包括代码或代码与文档的意见的优点,但它确实让我们产生多种形式的文件,在导游推着,从其他文档等使这些功能的参考。

我没有直接熟悉C,所以我不知道是否有从该信息或者不执行你需要的功能的程序化广告和虚拟生成任何声明自省支持。如果您不具备少量功能,我怀疑您只需手工编写虚拟声明即可。如果您有大量这些函数,那么可能值得您花时间使用doxygen将原始代码解析为XML文档,并从XML中生成虚拟对象。 Doxygen的XML可能是一个很难处理的问题,但如果你真正需要的是声明和参数(相对)简单。作为最后一项,如果您的文档可以真正被认为是内部和外部文档,您可能还想使用两个或更多配置文件来生成保存到不同位置的不同文档集,并将它们分别发布到您的内部/外部观众。它将使每个细节的适当数量减到令人沮丧的地步。沿着这些方向,您还可以找到有用的INTERNAL_DOCS选项和@internal/@endinternal命令。

相关问题