def accept(cls, expr): return util.contain(expr, ['whenList', 'thenList', 'elseExpr'])
def accept(cls, expr): return util.contain(expr, ['selectList'])
def accept(cls, expr): return util.contain(expr, ['scale', 'isExact', 'value', 'typeName', 'prec']) or \ (util.contain(expr, ['value', 'typeName']) and isinstance(expr['value'], dict)) or \ (util.contain(expr, ['typeName']) and str(expr['typeName']).lower() == 'null')
def value(self): if util.contain(self._expr, ['scale', 'isExact', 'value', 'typeName', 'prec']): return self._expr.get('value') return self._expr['value']['value']
def accept(cls, expr): return util.contain(expr, ['operator', 'operands'])
def accept(cls, expr): return util.contain(expr, ['typeName']) and isinstance(expr['typeName'], dict)
def accept(cls, expr): return util.contain(expr, ['names']) and expr.get('key') == 'from'