> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf > Of Mauro Carvalho Chehab > Sent: Thursday, January 29, 2026 9:08 AM > To: Jonathan Corbet <[email protected]>; Linux Doc Mailing List <linux- > [email protected]> > Cc: Mauro Carvalho Chehab <[email protected]>; > [email protected]; [email protected]; linux- > [email protected]; [email protected]; > [email protected]; Mauro Carvalho Chehab <[email protected]>; > Randy Dunlap <[email protected]> > Subject: [Intel-wired-lan] [PATCH v3 17/30] docs: kdoc_re: don't > recompile NextMatch regex every time > > Store delimiters and its regex-compiled version as const vars. > > Signed-off-by: Mauro Carvalho Chehab <[email protected]> > --- > tools/lib/python/kdoc/kdoc_re.py | 35 ++++++++++++++++++++----------- > - > 1 file changed, 22 insertions(+), 13 deletions(-) > > diff --git a/tools/lib/python/kdoc/kdoc_re.py > b/tools/lib/python/kdoc/kdoc_re.py > index 3f405addcc58..7b7ddc50ac36 100644 > --- a/tools/lib/python/kdoc/kdoc_re.py > +++ b/tools/lib/python/kdoc/kdoc_re.py > @@ -99,6 +99,13 @@ class KernRe: > self.last_match = self.regex.search(string) > return self.last_match > > + def finditer(self, string): > + """ > + Alias to re.finditer. > + """ > + > + return self.regex.finditer(string) > + > def findall(self, string): > """ > Alias to re.findall. > @@ -134,6 +141,16 @@ class KernRe: > > return self.last_match.groups() > > +#: Nested delimited pairs (brackets and parenthesis) DELIMITER_PAIRS > = > +{ > + '{': '}', > + '(': ')', > + '[': ']', > +} > + > +#: compiled delimiters > +RE_DELIM = KernRe(r'[\{\}\[\]\(\)]') > + > > class NestedMatch: > """ > @@ -183,14 +200,6 @@ class NestedMatch: > # > # FOO(arg1, arg2, arg3) > > - DELIMITER_PAIRS = { > - '{': '}', > - '(': ')', > - '[': ']', > - } > - > - RE_DELIM = re.compile(r'[\{\}\[\]\(\)]') > - > def _search(self, regex, line): > """ > Finds paired blocks for a regex that ends with a delimiter. > @@ -220,13 +229,13 @@ class NestedMatch: > escape = False > > d = line[offset - 1] > - if d not in self.DELIMITER_PAIRS: > + if d not in DELIMITER_PAIRS: > continue > > - end = self.DELIMITER_PAIRS[d] > + end = DELIMITER_PAIRS[d] > stack.append(end) > > - for match in self.RE_DELIM.finditer(line[offset:]): > + for match in RE_DELIM.finditer(line[offset:]): > pos = match.start() + offset > > d = line[pos] > @@ -247,8 +256,8 @@ class NestedMatch: > string_char = d > continue > > - if d in self.DELIMITER_PAIRS: > - end = self.DELIMITER_PAIRS[d] > + if d in DELIMITER_PAIRS: > + end = DELIMITER_PAIRS[d] > > stack.append(end) > continue > -- > 2.52.0
Reviewed-by: Aleksandr Loktionov <[email protected]>
