diff options
| author | Peter Sewell | 2014-11-17 00:40:59 +0000 |
|---|---|---|
| committer | Peter Sewell | 2014-11-17 00:40:59 +0000 |
| commit | 6232572854a07be048390337069681368292461e (patch) | |
| tree | 08bfbb5f005858cda7feb1ce6102471b14bef4ff /src | |
| parent | 9adeda6b46cc84c88f11923958db2f03c1fc9fae (diff) | |
wib
Diffstat (limited to 'src')
| -rw-r--r-- | src/lem_interp/printing_functions.ml | 19 | ||||
| -rw-r--r-- | src/lem_interp/printing_functions.mli | 6 |
2 files changed, 22 insertions, 3 deletions
diff --git a/src/lem_interp/printing_functions.ml b/src/lem_interp/printing_functions.ml index 99b1f974..89587c8d 100644 --- a/src/lem_interp/printing_functions.ml +++ b/src/lem_interp/printing_functions.ml @@ -220,11 +220,22 @@ let rec format_events = function ;; (* ANSI/VT100 colors *) +type ppmode = + | Interp_latex + | Interp_ascii + | Interp_html +let ppmode = ref Interp_ascii +let set_interp_ppmode ppm = ppmode := ppm + let disable_color = ref false let color bright code s = if !disable_color then s else sprintf "\x1b[%s3%dm%s\x1b[m" (if bright then "1;" else "") code s -let red = color true 1 +let red s = + match !ppmode with + | Interp_html -> "<fontcolor='red'>"^ s ^"</font>" + | Interp_latex -> "\\myred{" ^ s ^"}" + | Interp_ascii -> color true 1 s let green = color false 2 let yellow = color true 3 let blue = color true 4 @@ -267,10 +278,12 @@ let rec instr_parms_to_string ps = match ps with | [] -> "" | [p] -> instr_parm_to_string p - | p::ps -> instr_parm_to_string p ^ ", " ^ instr_parms_to_string ps + | p::ps -> instr_parm_to_string p ^ " " ^ instr_parms_to_string ps + +let pad n s = if String.length s < n then s ^ String.make (n-String.length s) ' ' else s let instruction_to_string (name, parms, base_effects) = - (String.lowercase name) ^ " " ^ instr_parms_to_string parms + (pad 5 (String.lowercase name)) ^ " " ^ instr_parms_to_string parms let print_backtrace_compact printer stack = List.iter (fun (e,(env,mem)) -> print_exp printer env e) (compact_stack stack) let print_continuation printer stack = let (e,(env,mem)) = top_frame_exp_state stack in print_exp printer env e diff --git a/src/lem_interp/printing_functions.mli b/src/lem_interp/printing_functions.mli index 8a0aaa7c..ebb21152 100644 --- a/src/lem_interp/printing_functions.mli +++ b/src/lem_interp/printing_functions.mli @@ -20,6 +20,12 @@ val dependencies_to_string : reg_name list -> string val exp_to_string : Interp.lenv -> tannot exp -> string (* Functions to set the color of parts of the output *) +type ppmode = + | Interp_latex + | Interp_ascii + | Interp_html +val set_interp_ppmode : ppmode -> unit + val red : string -> string val blue : string -> string val green : string -> string |
