anchor.diff:  
     _OperatorName(this.operatorKeyword, this.name);
   }
  +
  +/// Data structure placed on the stack to represent a non-empty sequence
  +/// of modifiers.
  +class _Modifiers {
  +  Token abstractKeyword;
  +  Token externalKeyword;
  +  Token finalConstOrVarKeyword;
  +  Token staticKeyword;
  +
  +  _Modifiers(List<Token> modifierTokens) {
  +    // No need to check the order and uniqueness of the modifiers, or that
  +    // disallowed modifiers are not used; the parser should do that.
  +    // TODO(paulberry,ahe): implement the necessary logic in the parser.
  +    for (var token in modifierTokens) {
  +      var s = token.value;
  +      if (identical('abstract', s)) {
  +        abstractKeyword = token;
  +      } else if (identical('const', s)) {
  +        finalConstOrVarKeyword = token;
  +      } else if (identical('external', s)) {
  +        externalKeyword = token;
  +      } else if (identical('final', s)) {
  +        finalConstOrVarKeyword = token;
  +      } else if (identical('static', s)) {
  +        staticKeyword = token;
  +      } else if (identical('var', s)) {
  +        finalConstOrVarKeyword = token;
  +      } else {
  +        internalError('Unhandled modifier: $s');
  +      }
  +    }
  +  }
  +}
  
positive.code:     TypeParameterList typeParameters = pop(); // TODO(paulberry)
      var name = pop();
      TypeAnnotation returnType = pop(); // TODO(paulberry)
      Token modifierKeyword = null; // TODO(paulberry)
      Token externalKeyword = null;
      Token constKeyword = null;
      Token factoryKeyword = null;
      List<Token> modifiers = pop();
      for (Token modifier in modifiers) {
        String value = modifier.stringValue;
        if (identical('external', value)) {
          // TODO(scheglov): Check the order and uniqueness.
          externalKeyword = modifier;
        } else if (identical('const', value)) {
          // TODO(scheglov): Check the order and uniqueness.
          constKeyword = modifier;
        } else if (identical('factory', value)) {
          // TODO(scheglov): Check the order and uniqueness.
          factoryKeyword = modifier;
        } else {
          // TODO(scheglov): Report error.
          internalError("Invalid modifier ($value). Report an error.");
        }
      }
  
      List<Annotation> metadata = pop();
      // TODO(paulberry): capture doc comments.  See dartbug.com/28851.
      Comment comment = null;
  
negative.code:         comment: comment,
          metadata: metadata,
          covariantKeyword: toAnalyzerToken(covariantKeyword),
          staticKeyword: toAnalyzerToken(modifiers?.staticKeyword),
          fieldList: variableList,
          semicolon: toAnalyzerToken(endToken)));
    }
  