diff --git a/src/core/pretty.ml b/src/core/pretty.ml index e71ead90f2e1430beae2056d7462a3168043a531..87dcebe13fb5dbfe62d49ef484e3dc2cfd1bf187 100644 --- a/src/core/pretty.ml +++ b/src/core/pretty.ml @@ -163,72 +163,44 @@ let print_ls fmt ls = let print_pr fmt pr = Ident.print_decoded fmt (id_unique pprinter pr.pr_name) -let print_library_path fmt lp = +let print_qualified decode fmt id = +(* if Debug.test_noflag debug_print_qualifs then raise Not_found; *) + let dot fmt () = + pp_print_char fmt '.'; pp_print_cut fmt () in let str fmt s = if String.contains s ' ' || String.contains s '.' then begin pp_print_char fmt '"'; pp_print_string fmt s; pp_print_char fmt '"' - end else pp_print_string fmt s in - let dot fmt () = - pp_print_char fmt '.'; pp_print_cut fmt () in - if lp <> [] then begin - print_list dot str fmt lp; dot fmt () - end - -let print_qualified_name fmt qn = - let dot fmt () = - pp_print_char fmt '.'; pp_print_cut fmt () in - if qn <> [] then begin - dot fmt (); print_list dot pp_print_string fmt qn - end - -let print_decoded_name fmt qn = - match List.rev qn with - | sn::qn -> - print_qualified_name fmt (List.rev qn); - pp_print_char fmt '.'; pp_print_cut fmt (); - Ident.print_decoded fmt sn - | [] -> () + end else pp_print_string fmt s; + dot fmt () in + let lp, tn, qn = Theory.restore_path id (* raises Not_found *) in + let qn = match lp with + | "why3"::_ -> if qn = [] then [tn] (* theory *) else qn + | _ -> print_list Pp.nothing str fmt lp; tn::qn in + if decode then match List.rev qn with + | [sn] -> + Ident.print_decoded fmt sn + | sn::qn -> + print_list dot pp_print_string fmt (List.rev qn); dot fmt (); + Ident.print_decoded fmt sn + | [] -> () + else + print_list dot pp_print_string fmt qn let print_th_qualified fmt th = -(* if Debug.test_flag debug_print_qualifs then begin *) - try - let lp,tn,_ = Theory.restore_path th.th_name in - fprintf fmt "%a%s" print_library_path lp tn - with Not_found -> print_th fmt th -(* end else print_th fmt th *) + try print_qualified false fmt th.th_name with Not_found -> print_th fmt th let print_ts_qualified fmt ts = if ts_equal ts ts_func then pp_print_string fmt "(->)" else -(* if Debug.test_flag debug_print_qualifs then begin *) - try - let lp,tn,qn = Theory.restore_path ts.ts_name in - fprintf fmt "%a%s%a" print_library_path lp tn print_qualified_name qn - with Not_found -> print_ts fmt ts -(* end else print_ts fmt ts *) + try print_qualified false fmt ts.ts_name with Not_found -> print_ts fmt ts let print_cs_qualified fmt ls = -(* if Debug.test_flag debug_print_qualifs then begin *) - try - let lp,tn,qn = Theory.restore_path ls.ls_name in - fprintf fmt "%a%s%a" print_library_path lp tn print_qualified_name qn - with Not_found -> print_cs fmt ls -(* end else print_cs fmt ls *) + try print_qualified false fmt ls.ls_name with Not_found -> print_cs fmt ls let print_ls_qualified fmt ls = -(* if Debug.test_flag debug_print_qualifs then begin *) - try - let lp,tn,qn = Theory.restore_path ls.ls_name in - fprintf fmt "%a%s%a" print_library_path lp tn print_decoded_name qn - with Not_found -> print_ls fmt ls -(* end else print_ls fmt ls *) + try print_qualified true fmt ls.ls_name with Not_found -> print_ls fmt ls let print_pr_qualified fmt pr = -(* if Debug.test_flag debug_print_qualifs then begin *) - try - let lp,tn,qn = Theory.restore_path pr.pr_name in - fprintf fmt "%a%s%a" print_library_path lp tn print_decoded_name qn - with Not_found -> print_pr fmt pr -(* end else print_pr fmt pr *) + try print_qualified true fmt pr.pr_name with Not_found -> print_pr fmt pr (** Types *)