| 92 | |
| 93 | @dataclass |
| 94 | class IfStmt(Stmt): |
| 95 | if_: lx.Token |
| 96 | condition: list[lx.Token] |
| 97 | body: Stmt |
| 98 | else_: lx.Token | None |
| 99 | else_body: Stmt | None |
| 100 | |
| 101 | def print(self, out:CWriter) -> None: |
| 102 | out.emit(self.if_) |
| 103 | for tkn in self.condition: |
| 104 | out.emit(tkn) |
| 105 | self.body.print(out) |
| 106 | if self.else_ is not None: |
| 107 | out.emit(self.else_) |
| 108 | self.body.print(out) |
| 109 | if self.else_body is not None: |
| 110 | self.else_body.print(out) |
| 111 | |
| 112 | def accept(self, visitor: Visitor) -> None: |
| 113 | visitor(self) |
| 114 | self.body.accept(visitor) |
| 115 | if self.else_body is not None: |
| 116 | self.else_body.accept(visitor) |
| 117 | |
| 118 | def tokens(self) -> Iterator[lx.Token]: |
| 119 | yield self.if_ |
| 120 | yield from self.condition |
| 121 | yield from self.body.tokens() |
| 122 | if self.else_ is not None: |
| 123 | yield self.else_ |
| 124 | if self.else_body is not None: |
| 125 | yield from self.else_body.tokens() |
| 126 | |
| 127 | |
| 128 | @dataclass |
no outgoing calls
no test coverage detected
searching dependent graphs…