(self)
| 129 | |
| 130 | @memoize |
| 131 | def rules(self) -> Optional[RuleList]: |
| 132 | # rules: rule rules | rule |
| 133 | mark = self._mark() |
| 134 | if ( |
| 135 | (rule := self.rule()) |
| 136 | and |
| 137 | (rules := self.rules()) |
| 138 | ): |
| 139 | return [rule] + rules |
| 140 | self._reset(mark) |
| 141 | if ( |
| 142 | (rule := self.rule()) |
| 143 | ): |
| 144 | return [rule] |
| 145 | self._reset(mark) |
| 146 | return None |
| 147 | |
| 148 | @memoize |
| 149 | def rule(self) -> Optional[Rule]: |