C++头文件解析

标签 c++ parsing header structure

我需要解析头文件。 我的目标是从头文件中搜索特定的结构体并提取结构体变量的值和偏移量。

任何人都可以建议通过省略注释来解析头文件的最佳方法以及如何从头中解析宏吗?

最佳答案

解析 C++ 很困难。您可能想要使用现有的解析器。我知道 4 个可能有用的:

  • Edison Design Group 前端
  • Clang 的 C++ 解析器
  • DMS 软件重组工具包及其 C++14 前端
  • GCC(通过 Melt)

其中大多数不会“解析”宏;他们想使用预处理器扩展它们。因此宏和 PP 条件从解析树中消失。 DMS 可以进行“有限”预处理,并收集/保留在结构良好的位置以及它们经常出现的各种位置中找到的预处理器指令和宏。

解析头文件确实很困难;它们往往会加载来自许多以前版本的软件的条件语句和垃圾,以及来自特定供应商的习惯用法。 (微软的标题中有一些非常奇怪的东西)。除非您正在谈论解析您的头文件,否则请确保检查您选择的工具是否可以处理您实际正在处理的 C++ 方言。

关于C++头文件解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28825628/

相关文章:

xml - LINQ 到 XML : parsing XML file which one of nodes presents type of another node

linux bash - 以自定义格式解析日期

css - 将页脚固定在页面底部,并在顶部固定导航

c++ - 有sha256的头文件吗?

android - 如何传递对象数组列表来填充每个部分标题文本及其内容?

c++ - 错误: expected ':' before 'BagInterface' & In Member function

c++ - move 前复制保证

C++ 命名空间和多重定义的变量

c++ - 在 TableView 中单击一行时显示在行中编辑字段

python - 正则表达式返回两个特殊字符之间的所有字符