给定一个.c文件和一个标识文件中定义的函数的函数名,我们如何自动提取其参数的类型(以其逐字字符串形式)?例如,C函数看起来像
int foo(double x, double* y){...}
我需要输出一个文件,比如说types
,有两行
double
double*
我认为LLVM应该是一种矫枉过正。也许使用简单的Unix命令,例如' awk'可以做这个工作吗?
答案 0 :(得分:1)
试试这个:
ctags -x xpd.c | sed -n '/function/{s/.*(//; s/).*//; /^$/d;
s/\*\([^ ]\)/* \1/; s/ *[^ ]*, */\n/g; s/ *[^ ]*$//; p; }'
这会从我的C代码中提取类型,但我不能说它适用于所有C - YMMV。
关于sed的一些注释:
double x, double *y
*y
分隔为* y
x, -> \n
y