gpt4 book ai didi

c++ - 语义分析后拦截编译

转载 作者:太空宇宙 更新时间:2023-11-04 13:15:34 25 4
gpt4 key购买 nike

我正在寻找一种方法来拦截编译过程(C++ 程序,在 Visual Studio 中,但我也对其他工具感兴趣)。

我愿意

(1) 得到某种树状结构的语义分析结果

(2) 自动插入一些新语句

(3) 还给编译器继续工作。

我会用它来检查和验证我的多线程程序是如何工作的,方法是在每个语句之前插入一些代码来 (a) 表示已到达代码行 (b) 等待来自外部程序的信号(例如事件) (c) 执行实际语句。

因为我想在每个语句之前插入这段代码,所以我需要一个自动方法。然而,使用正则表达式或一些类似的简单技术不会考虑语言的所有规则,例如if 语句可以包含没有 { 和 } 指示代码块开始和结束的单个语句 - 在这种情况下,在 if 语句之前插入代码将完全改变源代码的原始含义。区分函数和结构也可能很困难。

所以,请向我推荐一些工具/技术来做到这一点。

最佳答案

据我所知,Microsoft 编译器不支持进行此类转换。可能用Clang编译器比较好,可以引用这个有意思的article了解如何更改树。

关于c++ - 语义分析后拦截编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37545279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com