lkml.org 
[lkml]   [2021]   [May]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [RFC v3] scripts: kernel-doc: reduce repeated regex expressions into variables
From
Date
On 1/5/21 9:13 pm, Matthew Wilcox wrote:
> On Thu, Apr 29, 2021 at 12:07:29PM +0530, Aditya Srivastava wrote:
>> + my $name = qr{[a-zA-Z0-9_~:]+};
>> + my $prototype_end1 = qr{[^\(]*};
>> + my $prototype_end2 = qr{[^\{]*};
>> + my $prototype_end = qr{\(($prototype_end1|$prototype_end2)\)};
>
> Would this be better written as:
>
> my $prototype_end = qr{\([^\(\{]*\)}
>

Hi Matthew
I have actually tried this earlier, but it does not work as expected,
probably because of greedy matching. I have produced the list of
warning differences before and after over the files, when using this
regex:
https://github.com/AdityaSrivast/kernel-tasks/blob/master/random/kernel-doc/diff_on_alt_protend


> And now that I look at the whole thing, doesn't this fail to parse
> a function declared as:
>
> int f(void (*g)(long));
>
> (that is, f takes a single argument, which is a pointer to a function
> which takes a long argument and returns void)
>

I think this will match against:
$prototype =~ m/^($type1)\s+($name)\s*$prototype_end/

Thanks
Aditya


\
 
 \ /
  Last update: 2021-05-14 18:18    [W:0.069 / U:1.724 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site