Thread (17 messages) 17 messages, 4 authors, 2021-05-17

Re: [RFC v3] scripts: kernel-doc: reduce repeated regex expressions into variables

From: Aditya Srivastava <hidden>
Date: 2021-05-14 16:17:39
Also in: linux-kernel-mentees, lkml

On 1/5/21 9:13 pm, Matthew Wilcox wrote:
On Thu, Apr 29, 2021 at 12:07:29PM +0530, Aditya Srivastava wrote:
quoted
+    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

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help