anchor.diff:      assert(optional('?', token));
       Token question = token;
       listener.beginConditionalExpression();
  -    token = parseExpressionWithoutCascade(token.next);
  +    token = parseExpressionWithoutCascade(token);
       Token colon = token;
  -    token = expect(':', token);
  +    expect(':', token);
       listener.handleConditionalExpressionColon();
       token = parseExpressionWithoutCascade(token);
       listener.endConditionalExpression(question, colon);
  
positive.code:     Token throwToken = token;
      token = allowCascades
          ? parseExpression(token.next)
          : parseExpressionWithoutCascade(token.next);
      listener.handleThrowExpression(throwToken, token);
      return token;
    }
  
negative.code:   /// ;
    /// ```
    Token parseInitializer(Token token) {
      // TODO(brianwilkerson) Return the last consumed token.
      Token next = token.next;
      listener.beginInitializer(next);
      if (optional('assert', next)) {
        token = parseAssert(token.next, Assert.Initializer);
      } else {
        token = parseExpression(token.next);
      }
      listener.endInitializer(token);
      return token;
    }
  
    Token ensureParseLiteralString(Token token) {
      Token next = token.next;
      if (!identical(next.kind, STRING_TOKEN)) {
        Message message = fasta.templateExpectedString.withArguments(next);
        Token newToken =
            new SyntheticStringToken(TokenType.STRING, '""', token.charOffset, 0);
        token = rewriteAndRecover(token.next, message, newToken);
      } else {
        token = next;
      }
      return parseLiteralString(token);
    }
  