我得到了一包带有静态源代码的c ++文件(已经开发,不需要对它们做任何事情)。
有一个程序/ lib /方法来获取每个函数的params数量列表以及其中一个文件?
我的意思是,获得如下结果:
#File a.cpp
##a() -> 3 paramss
##foo() -> 0 params (void)
#File b.cpp
##test() -> 1 param
....
还有一个更好的问题。
还有办法处理它的退货数量吗?
#File a.cpp
##a() -> 3 params, 1 return
##foo() -> 0 params (void), 2 returns
例如,如果“foo”在条件为真时返回,而另一个如果为假则返回
提前致谢。
我会计算“,”的数量,并从1开始。这应该给你一个函数参数数量的准确计数。然后我会检查函数名称之前是否存在“void”,如果没有,那么你可以打赌有一个返回值。
ifstream infile;
infile.open(...);
int i, ret, args;
String s;
ret = args = 0;
s = infile.getline();
for( i=0; s[i] != '('; i++ ) {
if( s[i] == 'v' && s[i+1] == 'o' && s[i+2] == 'i' && s[i+3] == 'd' ) {
ret = 1;
break;
}
}
for( i=0; s[i] != '('; i++ ) {}
for( i; s[i] != ')'; i++ ) {
if( args == 0 && s[i] != ' ' ) {
args++;
}
if( s[i] == ',' ) {
args++;
}
}
所有这些都超过顶部,但也许这可能是你的一杯茶,Elsa可以解析c ++并为您提供解析文件的抽象语法树。可能还有一些其他免费工具可以做同样的事情