anchor.diff:      return token.next;
     }
   
  +  /// switchBlock:
  +  ///   '{' switchCase* defaultCase? '}'
  +  /// ;
     Token parseSwitchBlock(Token token) {
       Token begin = token;
       listener.beginSwitchBlock(begin);
  
positive.code:     return token;
    }
  
    Token parseBreakStatement(Token token) {
      assert(optional('break', token));
      Token breakKeyword = token;
  
negative.code:     return token;
    }
  
    /// assertStatement:
    ///   assertion ';'
    /// ;
    Token parseAssertStatement(Token token) {
      assert(optional('assert', token));
      token = parseAssert(token, Assert.Statement);
      return ensureSemicolon(token).next;
    }
  
    /// continueStatement:
    ///   'continue' identifier? ';'
    /// ;
    Token parseContinueStatement(Token token) {
      assert(optional('continue', token));
      Token continueKeyword = token;
  