anchor.diff:      }
     }
   
  +  /// forInitializerStatement:
  +  ///   localVariableDeclaration |
  +  ///   expression? ';'
  +  /// ;
     Token parseVariablesDeclarationOrExpressionOpt(Token token) {
       final String value = token.stringValue;
       if (identical(value, ';')) {
  
positive.code:     return semicolon.next;
    }
  
    Token parseBlock(Token token) {
      Token begin = token;
      listener.beginBlock(begin);
  
negative.code:     return token;
    }
  
    /// This method parses the portion of the forLoopParts that starts with the
    /// keyword 'in'. For the sake of recovery, we accept a colon in place of the
    /// keyword.
    ///
    /// forLoopParts:
    ///   forInitializerStatement expression? ';' expressionList? |
    ///   declaredIdentifier 'in' expression |
    ///   identifier 'in' expression
    /// ;
    Token parseForInRest(
        Token awaitToken, Token forKeyword, Token leftParenthesis, Token token) {
      assert(optional('in', token) || optional(':', token));
  