anchor.diff:      analyzer.Token equals = toAnalyzerToken(equalsToken);
       TypeParameterList typeParameters = pop();
       SimpleIdentifier name = pop();
  -    Token abstractKeyword = _popOptionalSingleModifier();
  +    _Modifiers modifiers = pop();
  +    Token abstractKeyword = modifiers?.abstractKeyword;
       List<Annotation> metadata = pop();
       // TODO(paulberry): capture doc comments.  See dartbug.com/28851.
       Comment comment = null;
  
positive.code:     TypeName returnType = pop();
  
      {
        List<Token> modifiers = pop();
        if (modifiers.isNotEmpty) {
          // TODO(scheglov): Report error.
          internalError('Unexpected modifier. Report an error.');
        }
  
negative.code:     } else {
        name = nameOrFunctionTypedParameter;
        TypeName type = pop();
        _Modifiers modifiers = pop();
        Token keyword = modifiers?.finalConstOrVarKeyword;
        pop(); // TODO(paulberry): Metadata.
        if (thisKeyword == null) {
          node = ast.simpleFormalParameter2(
  