When asserts are disabled, code within the assert isn't run. Having
expect_token within an assert means that the state of the Parser is
mutated when asserts are run, but not when they aren't.
There's already a wrapper procedure for this pattern, which I have
reused here.