anchor.diff:      listener.endClassBody(count, begin, token);
       return token;
     }
  -
  -  bool isGetOrSet(Token token) {
  -    final String value = token.stringValue;
  -    return (identical(value, 'get')) || (identical(value, 'set'));
  -  }
  -
  -  bool isModifierOrFactory(Token next) =>
  -      optional('factory', next) || isModifier(next);
   
     bool isUnaryMinus(Token token) =>
         token.kind == IDENTIFIER_TOKEN &&
  
positive.code:     return expect(';', token);
    }
  
    /// Provides a partial order on modifiers.
    ///
    /// The order is based on the order modifiers must appear in according to the
    /// grammar. For example, `external` must come before `static`.
    ///
    /// In addition, if two modifiers have the same order, they can't both be
    /// used together, for example, `final` and `var` can't be used together.
    ///
    /// If [token] isn't a modifier, 127 is returned.
    int modifierOrder(Token token) {
      final String value = token.stringValue;
      if (identical('external', value)) return 0;
      if (identical('static', value) || identical('covariant', value)) {
        return 1;
      }
      if (identical('final', value) ||
          identical('var', value) ||
          identical('const', value)) {
        return 2;
      }
      if (identical('abstract', value)) return 3;
      return 127;
    }
  
    Token parseNativeClause(Token token) {
      Token nativeToken = token = token.next;
      assert(optional('native', nativeToken));
  
negative.code:     return token;
    }
  
    bool notEofOrValue(String value, Token token) {
      return !identical(token.kind, EOF_TOKEN) &&
          !identical(value, token.stringValue);
  