如何提取循环体?

时间:2016-03-07 16:01:44

标签: c++ regex string grep

有多个C ++文件。我需要从这些文件中提取for循环体。

有没有一种简单的方法可以使用grep来做到这一点。考虑没有嵌套的for循环。

1 个答案:

答案 0 :(得分:5)

如果不解析整个文件,答案就是否定。

for循环由context-free grammar组成,因此无法与正则表达式匹配。

更复杂的方法是使用grep搜索for循环的开头(for后跟可选空格后跟lpar)然后手动查找结束卷曲。

不幸的是,解析C ++是Turing Complete,所以除非有一些可爱的标志传递给你的编译器,否则你就被软管了。