list: <matchrule:$arg{rule}> /$arg{sep}/ list[%arg] { $return = [ $item[1], @{$item[3]} ] } | <matchrule:$arg{rule}> { $return = [ $item[1]] } function: 'func' name '(' list[rule=>'param',sep=>';'] ')' param: list[rule=>'name',sep=>','] ':' typename name: /\w+/ typename: name