| 615 | |
| 616 | |
| 617 | class _ControlBlock(_Node): |
| 618 | def __init__(self, statement: str, line: int, body: _Node) -> None: |
| 619 | self.statement = statement |
| 620 | self.line = line |
| 621 | self.body = body |
| 622 | |
| 623 | def each_child(self) -> Iterable[_Node]: |
| 624 | return (self.body,) |
| 625 | |
| 626 | def generate(self, writer: "_CodeWriter") -> None: |
| 627 | writer.write_line("%s:" % self.statement, self.line) |
| 628 | with writer.indent(): |
| 629 | self.body.generate(writer) |
| 630 | # Just in case the body was empty |
| 631 | writer.write_line("pass", self.line) |
| 632 | |
| 633 | |
| 634 | class _IntermediateControlBlock(_Node): |