1
我有一個帶有函數名稱的文件FILE1。perl:僅打印函數定義名稱
FILE1(幾個功能命名過):
ChainCtrlBuildChain
FILE2包含:
pChain = ChainCtrlBuildChain(pChainCtrl, pChainCtrl->ChainTable[i].col[j], pDefs);
...
if (eRetVal != kNoError)
{
ModTrace((ModT*) pChainCtrl, "ChainCtrlBuildChain: ERROR, chain init failure [chain: %4.4s inst: %d] [err: %d]\n",
...
VideoChainT* ChainCtrlBuildChain(ChainCtrlT* pChainCtrl, char* pChainName, ChainDefT* pDef)
{
...
}
我想只顯示函數定義和排除函數聲明。
輸出所需
VideoChainT* ChainCtrlBuildChain(ChainCtrlT* pChainCtrl, char* pChainName, ChainDefT* pDef)
CODE
#search for function in the file
use strict;
use warnings;
my $function_file = 'functions.txt';
my $src_file = 'ChainController.c';
open(my $ff,'<',$function_file) or die "Cant open $function_file: $!\n";
open(my $sf,'<',$src_file) or die "Cant open $src_file: $!\n";
my @array = <$ff>;
my @array2 = <$sf>;
close($ff);
close($sf);
foreach my $func (@array){
chomp $func;
foreach my $src_line (@array2){
if ($src_line =~ /$func\(/){
print $src_line;
}
}
}
雖然後函數名檢查(
但它表明這兩個函數聲明和函數定義。
關於如何在函數名稱相同的行上插入;
的任何想法,因爲只有函數聲明在同一行中有;
。
是的,你是對的,我會嘗試使用parser.but這也適用於我的測試case.Thanks –