def METHOD_NAME(expr):
    try:
        if expr.is_potentially_variable():
            return expression(expr)
    except AttributeError:
        pass
    try:
        if is_constant(expr):
            return expr
    except:
        return expr
    return data_expression(expr)