如何在运行时C++表达式类型

How to figure C++ expression type on runtime?

本文关键字:表达式 类型 C++ 运行时      更新时间:2023-10-16

我需要编写一个C++代码覆盖程序,该程序接受另一个C++程序(在文件中给出),并在其每个语句中增强或添加对增加计数器的函数的调用。但是,我需要为每种类型的表达式使用不同的计数器(即我需要计算每种类型有多少个表达式)。为此,我需要计算每个C++表达式的类型。IMO 我需要使用解析器 API 来解析每一行以获取其类型。您看到更好的解决方案了吗?否则,在哪里可以找到解析 API?

谢谢

"解析器"API 不会给你类型信息。 它充其量只能让您访问 AST。

您需要一个完整的C++前端,它可以解析C++代码,执行名称和类型解析,并且可以从字面上计算每个表达式的类型。 最重要的是,您需要插入所需的检测,然后吐出可编译的源代码。

我们的DMS软件再造工具包及其C++前端具有执行此操作所需的所有功能。

DMS已被用于为C++(和许多其他语言)构建测试覆盖率和分析器工具;您甚至可以下载并尝试一个以查看它们是什么样子的。 您可能会发现这篇关于使用 DMS 构建测试覆盖率工具的论文很有趣,作为您想要做的事情的基线。 您的变体需要类型推断,但除此之外并没有太大区别。

相关文章: