Add parsing logic for class declarations

(This also introduces the EOF token)
I'd suggest always returning EOF here, changing the return type to `Token` and special-casing EOF in `getResult().next()`.