anchor.diff:      } else {
         int count = 1;
         token = parseIdentifier(token, IdentifierContext.literalSymbol);
  -      while (identical(token.stringValue, '.')) {
  +      while (optional('.', token)) {
           count++;
           token = parseIdentifier(
               token.next, IdentifierContext.literalSymbolContinuation);
  
positive.code:     return token;
    }
  
    Token parseLiteralBool(Token token) {
      listener.handleLiteralBool(token);
      return token.next;
    }
  
    Token parseLiteralNull(Token token) {
      listener.handleLiteralNull(token);
      return token.next;
    }
  
negative.code:     return semicolon.next;
    }
  
    /// block:
    ///   '{' statement* '}'
    /// ;
    Token parseBlock(Token token) {
      Token begin = token;
      listener.beginBlock(begin);
  