/// This is an abstract class. ///
/// NOTE: subclasses must override {@link #Next(Token)}. /// It's also OK to instead override {@link #Next()}, but /// that method is now deprecated in favor of {@link #Next(Token)}. ///
/// NOTE: subclasses overriding {@link #Next(Token)} must /// call {@link Token#Clear()}. ///