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

From: Joe Perches
Date: Thu Apr 29 2021 - 22:03:15 EST


On Thu, 2021-04-29 at 17:39 -0600, Jonathan Corbet wrote:
> Aditya Srivastava <yashsri421@xxxxxxxxx> writes:
>
> > There are some regex expressions in the kernel-doc script, which are used
> > repeatedly in the script.
> >
> > Reduce such expressions into variables, which can be used everywhere.
> >
> > A quick manual check found that no errors and warnings were added/removed
> > in this process.
> >
> > Suggested-by: Jonathan Corbet <corbet@xxxxxxx>
> > Signed-off-by: Aditya Srivastava <yashsri421@xxxxxxxxx>
> > ---
> > Changes in v3:
> > - Remove variables for separate qualifiers in "sub dump_struct"
> > - Make a common variable for all the qualifiers
> > - Make $attribute global variable to use it at "sub check_sections" as well
> >
> > Changes in v2:
> > - Rename $pointer_function to $function_pointer
> > - Combine elsif-block expressions at "sub dump_function" into lesser regex expressions
> > - Combine $prototype_end1,$prototype_end2 expressions into a common $prototype_end
> >
> >  scripts/kernel-doc | 71 ++++++++++++++++++++++------------------------
> >  1 file changed, 34 insertions(+), 37 deletions(-)
>
> So this looks good but ... it adds a warning to the build:
>
> /stuff/k/git/kernel/Documentation/driver-api/media/v4l2-controls:823: ./include/media/v4l2-ctrls.h:964: WARNING: Invalid C declaration: Expected identifier in nested name. [error at 6]
>   const * v4l2_ctrl_get_menu (u32 id)
>   ------^
>
> So it looks like something isn't being parsed quite identically?

Perhaps a few of the regexes from checkpatch could be used or
maybe a linux specific perl module produced.