3 // The logic for parsing Kleene operators in macros has a special case to disambiguate `?`.
4 // Specifically, `$(pat)?` is the ZeroOrOne operator whereas `$(pat)?+` or `$(pat)?*` are the
5 // ZeroOrMore and OneOrMore operators using `?` as a separator. These tests are intended to
6 // exercise that logic in the macro parser.
8 // Moreover, we also throw in some tests for using a separator with `?`, which is meaningless but
9 // included for consistency with `+` and `*`.
11 // This test focuses on non-error cases and making sure the correct number of repetitions happen.
16 ($($a:ident)? ; $num:expr) => { {
30 // accept 0 or 1 repetitions