Allows for interleaved case and rule definitions in the same macro.

Allows for:
```javascript
macro m {
    rule { $x } => { $x + 5 }
    case { _ } => { return #{ 10 } }
}
```