Whats the diff between marking a token as 'SKIP' and marking it as 'protected'. Eg- Whats the diff between the 2 rules - WS : ('\t' | '\r' | ' ') {_ttype=Token.SKIP;} ; protected WS : ('\t' | '\r' | ' ') ; PRASHANT