no more using shift, use #next_token! instead