什么';这是在C+中生成代码模型的最简单方法+;? 我在寻找C++中生成代码模型的最简单方法。我的基本意思是: 输入是一个带有C++代码(.cp)或其内容的文件; 输出可以是具有所有函数/方法名称的调用树,也可以是从C++文件中调用的所有方法的列表。重要提示是,我需要传递给这些函数的所有参数的列表(对于文件中的每个事件)

什么';这是在C+中生成代码模型的最简单方法+;? 我在寻找C++中生成代码模型的最简单方法。我的基本意思是: 输入是一个带有C++代码(.cp)或其内容的文件; 输出可以是具有所有函数/方法名称的调用树,也可以是从C++文件中调用的所有方法的列表。重要提示是,我需要传递给这些函数的所有参数的列表(对于文件中的每个事件),c++,parsing,model,C++,Parsing,Model,我听说clang library可以做这样的事情,但有人知道从哪里开始吗?提前谢谢 我建议您看看哪一个是创建基于clang的工具的clang API LibTooling允许您通过创建可重写的前端操作直接操作AST(请看这里:) 通过浏览AST,您可以轻松生成正在搜索的信息。请注意,如果代码包含宏,则可能还需要预处理操作。使用clang的-ast dump选项帮助您了解ast结构。祝你好运。试试强氧。即使没有描述性注释,它也会产生有用的输出,正确地记录您编写或维护的任何代码以帮助“下一个家伙”理

我听说clang library可以做这样的事情,但有人知道从哪里开始吗?提前谢谢

我建议您看看哪一个是创建基于clang的工具的clang API

LibTooling允许您通过创建可重写的前端操作直接操作AST(请看这里:)


通过浏览AST,您可以轻松生成正在搜索的信息。请注意,如果代码包含宏,则可能还需要预处理操作。使用clang的
-ast dump
选项帮助您了解ast结构。祝你好运。

试试强氧。即使没有描述性注释,它也会产生有用的输出,正确地记录您编写或维护的任何代码以帮助“下一个家伙”理解它也是一种很好的做法。doxygen可能是另一种可行的选择,但您需要熟悉它的输出(更面向文档,更少可定制),否则,您需要自行处理其输出和/或修改doxygen的代码,但当我阅读问题时,OP似乎需要文档,而不是AST。“列出所有被称为“所有参数列表”的方法。@suryadeva,你能澄清一下你是想把程序记录在案还是想输入到对象建模工具中吗。如果是后者,大多数工具将允许您对现有代码进行反向工程。如果“传递给这些函数的所有参数的列表(对于文件中的每个事件)”意味着要分析函数体,那么doxygen无法做到这一点,因此他将需要clang。否则,这取决于操作