Added extension point for the lexer

Making this protected means the Lexer can be extended (e.g. when you want to add multiple tokens for one value).