docs: private Expression readCaseWhenExpression() {
  
          Expression l = null;
  
          read();
          readThis(Tokens.OPENBRACKET);
  
          l = XreadBooleanValueExpression();
  
          readThis(Tokens.COMMA);
  
          Expression thenelse = XreadRowValueExpression();
  
          readThis(Tokens.COMMA);
  
          thenelse = new ExpressionOp(OpTypes.ALTERNATIVE, thenelse,
                                      XreadValueExpression());
          l = new ExpressionOp(OpTypes.CASEWHEN, l, thenelse);
  
          readThis(Tokens.CLOSEBRACKET);
  
          return l;
      }