| 673 | return SimpleStmt(tokens) |
| 674 | |
| 675 | def if_stmt(self, if_: lx.Token) -> IfStmt: |
| 676 | lparen = self.require(lx.LPAREN) |
| 677 | condition = [lparen] + self.consume_to(lx.RPAREN) |
| 678 | body = self.block() |
| 679 | else_body: Stmt | None = None |
| 680 | else_: lx.Token | None = None |
| 681 | if else_ := self.expect(lx.ELSE): |
| 682 | if inner := self.expect(lx.IF): |
| 683 | else_body = self.if_stmt(inner) |
| 684 | else: |
| 685 | else_body = self.block() |
| 686 | return IfStmt(if_, condition, body, else_, else_body) |
| 687 | |
| 688 | def macro_if(self, cond: lx.Token) -> MacroIfStmt: |
| 689 | else_ = None |