expression : kw_case whenlist kw_else expression kw_end
                  | kw_case whenlist kw_end

def p_case(self,t):
    """expression : kw_case whenlist kw_else expression kw_end
                  | kw_case whenlist kw_end
    """
    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