Add InvalidTokenException.
Replace NodeType enum with class, use array literal syntax instead of arrayWithObject(s).