Define the Expression Types

In order to determine how to process the tokens, I am providing type
information. So, for instance, as you parse a SELECT command, you can
expect to see the literal SELECT followed by a tree of projection items.
I should be able to build a state machine for tracking where I am in the
tree and formatting accordingly.