@@ -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