(self, node: _MacroCall)
| 400 | return node |
| 401 | |
| 402 | def parse_signature(self, node: _MacroCall) -> None: |
| 403 | args = node.args = [] |
| 404 | defaults = node.defaults = [] |
| 405 | self.stream.expect("lparen") |
| 406 | while self.stream.current.type != "rparen": |
| 407 | if args: |
| 408 | self.stream.expect("comma") |
| 409 | arg = self.parse_assign_target(name_only=True) |
| 410 | arg.set_ctx("param") |
| 411 | if self.stream.skip_if("assign"): |
| 412 | defaults.append(self.parse_expression()) |
| 413 | elif defaults: |
| 414 | self.fail("non-default argument follows default argument") |
| 415 | args.append(arg) |
| 416 | self.stream.expect("rparen") |
| 417 | |
| 418 | def parse_call_block(self) -> nodes.CallBlock: |
| 419 | node = nodes.CallBlock(lineno=next(self.stream).lineno) |
no test coverage detected