Rather than parsing a symbol and checking its name, look for an
identifier during parsing.
I've also handled the 0 immediate during parsing, though we could
let that go through the normal immediate parsing if we need to support
expressions that evaluate to 0. We don't have tests for that currently.
I don't think you need the braces in this statement because Valid was declared outside of the switch scope?