From bf4a0ae5142e7838c322b6009ff5cdcbaf2dfd42 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Thu, 9 Dec 2021 20:07:40 +0000 Subject: Add PrintLoops for bourdoncle code --- src/bourdoncle/PrintLoops.ml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/bourdoncle/PrintLoops.ml (limited to 'src/bourdoncle') diff --git a/src/bourdoncle/PrintLoops.ml b/src/bourdoncle/PrintLoops.ml new file mode 100644 index 0000000..f70f075 --- /dev/null +++ b/src/bourdoncle/PrintLoops.ml @@ -0,0 +1,22 @@ +open Camlcoq + +let indent i = String.make (2 * i) ' ' + +let rec print_bourdoncle i pp = + function + | Bourdoncle.I n -> + Printf.fprintf pp "%sI %d\n" (indent i) (P.to_int n) + | Bourdoncle.L (h, b) -> + Printf.fprintf pp "%sL %d\n" (indent i) (P.to_int h); + List.iter (fun a -> Printf.fprintf pp "%a" (print_bourdoncle (i+1)) a) b + +let print_if optdest loop = + match !optdest with + | None -> () + | Some f -> + let oc = open_out f in + print_bourdoncle 0 oc loop; + close_out oc + +let destination_loops : string option ref = ref None +let print_loops = print_if destination_loops -- cgit