anchor.diff:     *
      * <pre>
      * bitwiseAndExpression ::=
  -   *     shiftExpression ('&' shiftExpression)*
  -   *   | 'super' ('&' shiftExpression)+
  +   *     equalityExpression ('&' equalityExpression)*
  +   *   | 'super' ('&' equalityExpression)+
      * </pre>
      *
      * @return the bitwise and expression that was parsed
  
positive.code:     if (matches(Keyword.SUPER) && matches4(peek(), TokenType.AMPERSAND)) {
        expression = new SuperExpression.full(andAdvance);
      } else {
        expression = parseShiftExpression();
      }
      while (matches5(TokenType.AMPERSAND)) {
        Token operator = andAdvance;
        expression = new BinaryExpression.full(expression, operator, parseShiftExpression());
      }
      return expression;
    }
  
negative.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;
    }
  