Skip to content

Commit 7b631a3

Browse files
Refactor: extract method parse_parameter_name()
1 parent 33b038c commit 7b631a3

1 file changed

Lines changed: 19 additions & 15 deletions

File tree

Tools/clinic/clinic.py

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4927,6 +4927,24 @@ def state_parameter(self, line: str) -> None:
49274927
case param:
49284928
self.parse_parameter(param)
49294929

4930+
def parse_parameter_name(self, line: str) -> tuple[str, str, str]:
4931+
c_name = None
4932+
# Handle custom parameter names.
4933+
name, have_as_token, trailing = line.partition(' as ')
4934+
if have_as_token:
4935+
name = name.strip()
4936+
if ' ' not in name:
4937+
fields = trailing.strip().split(' ')
4938+
if not fields:
4939+
fail("Invalid 'as' clause!")
4940+
c_name = fields[0]
4941+
if c_name.endswith(':'):
4942+
name += ':'
4943+
c_name = c_name[:-1]
4944+
fields[0] = name
4945+
line = ' '.join(fields)
4946+
return c_name, name, line
4947+
49304948
def parse_parameter(self, line: str) -> None:
49314949
assert self.function is not None
49324950

@@ -4943,21 +4961,7 @@ def parse_parameter(self, line: str) -> None:
49434961
case st:
49444962
fail(f"Function {self.function.name} has an unsupported group configuration. (Unexpected state {st}.a)")
49454963

4946-
# handle "as" for parameters too
4947-
c_name = None
4948-
name, have_as_token, trailing = line.partition(' as ')
4949-
if have_as_token:
4950-
name = name.strip()
4951-
if ' ' not in name:
4952-
fields = trailing.strip().split(' ')
4953-
if not fields:
4954-
fail("Invalid 'as' clause!")
4955-
c_name = fields[0]
4956-
if c_name.endswith(':'):
4957-
name += ':'
4958-
c_name = c_name[:-1]
4959-
fields[0] = name
4960-
line = ' '.join(fields)
4964+
c_name, name, line = self.parse_parameter_name(line)
49614965

49624966
default: str | None
49634967
base, equals, default = line.rpartition('=')

0 commit comments

Comments
 (0)