From c1f628b7fde13df56bc7e71f1619f4427ed157dc Mon Sep 17 00:00:00 2001 From: Son Ho Date: Mon, 22 Nov 2021 09:57:23 +0100 Subject: Start working on printing for avalues --- src/Print.ml | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) (limited to 'src/Print.ml') diff --git a/src/Print.ml b/src/Print.ml index 1ad2f5cb..47350324 100644 --- a/src/Print.ml +++ b/src/Print.ml @@ -211,15 +211,8 @@ module Values = struct let symbolic_proj_comp_to_string (fmt : rtype_formatter) (sp : symbolic_proj_comp) : string = - let regions = - RegionId.Set.fold - (fun id ids -> region_id_to_string id :: ids) - sp.rset_ended [] - in - let regions = String.concat "," (List.rev regions) in - "proj_comp {" ^ regions ^ "} (" - ^ symbolic_value_to_string fmt sp.svalue - ^ ")" + let regions = RegionId.set_to_string sp.rset_ended in + "proj_comp " ^ regions ^ " (" ^ symbolic_value_to_string fmt sp.svalue ^ ")" let rec typed_value_to_string (fmt : value_formatter) (v : typed_value) : string = @@ -268,12 +261,23 @@ module Values = struct string = match lc with | SharedLoan (loans, v) -> - let loans = - BorrowId.Set.fold - (fun lid loans -> BorrowId.to_string lid :: loans) - loans [] - in - let loans = String.concat ", " (List.rev loans) in + let loans = BorrowId.set_to_string loans in "@shared_loan({" ^ loans ^ "}, " ^ typed_value_to_string fmt v ^ ")" | MutLoan bid -> "⌊mut@" ^ BorrowId.to_string bid ^ "⌋" + + let rec abstract_shared_borrows_to_string (fmt : value_formatter) + (abs : abstract_shared_borrows) : string = + match abs with + | AsbSet bs -> BorrowId.set_to_string bs + | AsbProjReborrows (sv, rty) -> + "{" + ^ symbolic_value_id_to_string sv.sv_id + ^ " : " + ^ ty_to_string (value_to_rtype_formatter fmt) sv.sv_ty + ^ " <: " + ^ ty_to_string (value_to_rtype_formatter fmt) rty + | AsbUnion (asb1, asb2) -> + abstract_shared_borrows_to_string fmt asb1 + ^ " U " + ^ abstract_shared_borrows_to_string fmt asb2 end -- cgit v1.2.3