code: def p_case(self,t):
      
      if len(t)==4: t[0] = CaseX(t[2],None)
      elif len(t)==6: t[0] = CaseX(t[2],t[4])
      else: raise NotImplementedError('unk_len',len(t)) # pragma: no cover
docs: expression : kw_case whenlist kw_else expression kw_end
                    | kw_case whenlist kw_end