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)