Implement the parser's expect() function

Also start implementing parser tests.
I've heard conflicting opinions about this. But I agree that it makes the tests more readable, and since we already have a fully functioning lexer, it would be a waste not to use it :)