Don't ask for another token if the source has no more
Throw exception if we get a token when there are none
Throw an exception when there are unparsed tokens left