docs: private Expression readNullIfExpression() {
  
          // turn into a CASEWHEN
          read();
          readThis(Tokens.OPENBRACKET);
  
          Expression c = XreadValueExpression();
  
          readThis(Tokens.COMMA);
  
          Expression thenelse =
              new ExpressionOp(OpTypes.ALTERNATIVE,
                               new ExpressionValue((Object) null, (Type) null),
                               c);
  
          c = new ExpressionLogical(c, XreadValueExpression());
          c = new ExpressionOp(OpTypes.CASEWHEN, c, thenelse);
  
          readThis(Tokens.CLOSEBRACKET);
  
          return c;
      }