1
eErrorT ChainCtrlInitChains(ChainCtrlT* pChainCtrl,
    char* name,
    int instance)
{
    ....
}
eErrorT ChainCtrlInit(ChainCtrlT* pChainCtrl, void* pOwner)
{
    ....
}

マイコード

open(my $FILE, "< a.c") or die $!;
my @arr = <$FILE>;
foreach(@arr){  
   if ($_ =~ /^ \S+ \s+ \S+ \s* \( (.+?) \) /xsmg) {
      my $arg = $1;
      my @arr = map /(\w+)$/, split /\W*?,\W*/, $arg;
      print my @temp = map "$_\n", @arr
            unless $_ =~ /;\s*$/;
     }
} 

基本的に、関数定義から関数引数を抽出しています。

ただし、この場合、2 番目の関数 (ChainCtrlInit) の引数のみを抽出でき、1 番目の関数 (ChainCtrlinitchains) の引数は抽出できません。

望ましい出力

pChainCtrl
name
instance

pChainCtrl
pOwner

私が得ている出力

pChainCtrl
pOwner
4

3 に答える 3