如何提取循环体?

sam*_*max 0 c++ regex string grep

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

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

eri*_*rip 5

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

for循环由无上下文语法组成,因此不能与正则表达式匹配.

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

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