anchor.diff:      assert(optional(';', semicolon));
       debugEvent("DoWhileStatement");
   
  -    var condition = pop() as ParenthesizedExpressionImpl;
  +    var condition = pop() as _ParenthesizedCondition;
       var body = pop() as StatementImpl;
       push(
         DoStatementImpl(
  
positive.code:     var elseElement = pop() as CollectionElement;
      var elseToken = pop() as Token;
      var thenElement = pop() as CollectionElement;
      var condition = pop() as ParenthesizedExpression;
      var ifToken = pop() as Token;
      pushIfControlFlowInfo(
          ifToken, condition, thenElement, elseToken, elseElement);
  
negative.code:   @override
    void endIfControlFlow(Token token) {
      var thenElement = pop() as CollectionElement;
      var condition = pop() as _ParenthesizedCondition;
      var ifToken = pop() as Token;
      pushIfControlFlowInfo(ifToken, condition, thenElement, null, null);
    }
  