(builder: IRBuilder, stmt: IfStmt)
| 592 | |
| 593 | |
| 594 | def transform_if_stmt(builder: IRBuilder, stmt: IfStmt) -> None: |
| 595 | if_body, next = BasicBlock(), BasicBlock() |
| 596 | else_body = BasicBlock() if stmt.else_body else next |
| 597 | |
| 598 | # If statements are normalized |
| 599 | assert len(stmt.expr) == 1 |
| 600 | |
| 601 | process_conditional(builder, stmt.expr[0], if_body, else_body) |
| 602 | builder.activate_block(if_body) |
| 603 | builder.accept(stmt.body[0]) |
| 604 | builder.goto(next) |
| 605 | if stmt.else_body: |
| 606 | builder.activate_block(else_body) |
| 607 | builder.accept(stmt.else_body) |
| 608 | builder.goto(next) |
| 609 | builder.activate_block(next) |
| 610 | |
| 611 | |
| 612 | def transform_while_stmt(builder: IRBuilder, s: WhileStmt) -> None: |
no test coverage detected
searching dependent graphs…