anchor.diff:     *
      * <pre>
      * bitwiseAndExpression ::=
  -   *     equalityExpression ('&' equalityExpression)*
  -   *   | 'super' ('&' equalityExpression)+
  +   *     shiftExpression ('&' shiftExpression)*
  +   *   | 'super' ('&' shiftExpression)+
      * </pre>
      *
      * @return the bitwise and expression that was parsed
  
positive.code:       expression = new IsExpression.full(expression, isOperator, notOperator, parseTypeName());
      } else if (_currentToken.type.isRelationalOperator) {
        Token operator = andAdvance;
        expression = new BinaryExpression.full(expression, operator, parseShiftExpression());
      }
      return expression;
    }
  
negative.code:    *
     * <pre>
     * logicalAndExpression ::=
     *     equalityExpression ('&&' equalityExpression)*
     * </pre>
     *
     * @return the logical and expression that was parsed
     */
    Expression parseLogicalAndExpression() {
      Expression expression = parseEqualityExpression();
      while (matches5(TokenType.AMPERSAND_AMPERSAND)) {
        Token operator = andAdvance;
        expression = new BinaryExpression.full(expression, operator, parseEqualityExpression());
      }
      return expression;
    }
  