let get_lval_opt main_ui kf_stmt_opt localizable =
  match localizable with
    | Pretty_source.PLval (Some _kf, (Kstmt _stmt), lv) ->
        let lv_txt = Pretty_utils.sfprintf "%a" Cil.d_lval lv in
        Some (lv_txt, lv)
    | _ ->
       ( match kf_stmt_opt with
         None -> None
       | Some (kf, stmt) ->
              match (ask_for_lval main_ui kf stmt) with
                None -> None
              | Some (lv_txt, lv) -> Some (lv_txt, lv))