anchor.diff:    /// ```
     Token parseClass(Token token, Token begin, Token classKeyword) {
       Token start = token;
  -    token = parseClassHeader(token, begin, classKeyword);
  +    token = parseClassHeaderOpt(token, begin, classKeyword);
       if (!optional('{', token.next)) {
         // Recovery
         token = parseClassHeaderRecovery(start, begin, classKeyword);
  
positive.code:     // Reparse to determine which clauses have already been parsed
      // but intercept the events so they are not sent to the primary listener.
      listener = recoveryListener;
      token = parseClassHeader(token, begin, classKeyword);
      bool hasExtends = recoveryListener.extendsKeyword != null;
      bool hasImplements = recoveryListener.implementsKeyword != null;
      Token withKeyword = recoveryListener.withKeyword;
  
negative.code:     return token;
    }
  
    Token parseClassHeaderOpt(Token token, Token begin, Token classKeyword) {
      token = parseClassExtendsOpt(token);
      token = parseClassImplementsOpt(token);
      Token nativeToken;
  