lexer: `get_token` is now protected