anchor.diff:      debugEvent("WhileStatement");
   
       var body = pop() as Statement;
  -    var condition = pop() as ParenthesizedExpression;
  +    var condition = pop() as _ParenthesizedCondition;
       push(ast.whileStatement(whileKeyword, condition.leftParenthesis,
           condition.expression, condition.rightParenthesis, body));
     }
  
positive.code:   @override
    void endIfControlFlow(Token token) {
      var thenElement = pop() as CollectionElement;
      var condition = pop() as ParenthesizedExpression;
      var ifToken = pop() as Token;
      pushIfControlFlowInfo(ifToken, condition, thenElement, null, null);
    }
  
negative.code:     var elseElement = pop() as CollectionElement;
      var elseToken = pop() as Token;
      var thenElement = pop() as CollectionElement;
      var condition = pop() as _ParenthesizedCondition;
      var ifToken = pop() as Token;
      pushIfControlFlowInfo(
          ifToken, condition, thenElement, elseToken, elseElement);
  