C++头文件解析

问题描述 投票:0回答:1

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

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

c++ parsing header structure
1个回答
4
投票

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

  • 爱迪生设计集团前端
  • Clang 的 C++ 解析器
  • DMS 软件再造工具包及其 C++14 前端
  • GCC(通过 Melt)

其中大部分不会“解析”宏;他们想使用预处理器 expand 它们。所以宏和 PP 条件从解析树中消失了。 DMS 可以进行“有限的”预处理,并收集/保留在结构良好的地方和它们经常出现的各种地方找到的预处理器指令和宏。

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

© www.soinside.com 2019 - 2024. All rights reserved.