anchor.diff:      if (matches(Keyword.SUPER) && matches4(peek(), TokenType.AMPERSAND)) {
         expression = new SuperExpression.full(andAdvance);
       } else {
  -      expression = parseEqualityExpression();
  +      expression = parseShiftExpression();
       }
       while (matches5(TokenType.AMPERSAND)) {
         Token operator = andAdvance;
  -      expression = new BinaryExpression.full(expression, operator, parseEqualityExpression());
  +      expression = new BinaryExpression.full(expression, operator, parseShiftExpression());
       }
       return expression;
     }
  
positive.code:     if (matches(Keyword.SUPER) && _currentToken.next.type.isRelationalOperator) {
        Expression expression = new SuperExpression.full(andAdvance);
        Token operator = andAdvance;
        expression = new BinaryExpression.full(expression, operator, parseShiftExpression());
        return expression;
      }
      Expression expression = parseShiftExpression();
      if (matches(Keyword.AS)) {
        Token asOperator = andAdvance;
        expression = new AsExpression.full(expression, asOperator, parseTypeName());
  
negative.code:       expression = new IsExpression.full(expression, isOperator, notOperator, parseTypeName());
      } else if (_currentToken.type.isRelationalOperator) {
        Token operator = andAdvance;
        expression = new BinaryExpression.full(expression, operator, parseBitwiseOrExpression());
      }
      return expression;
    }
  