summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Sewell2014-11-17 00:40:59 +0000
committerPeter Sewell2014-11-17 00:40:59 +0000
commit6232572854a07be048390337069681368292461e (patch)
tree08bfbb5f005858cda7feb1ce6102471b14bef4ff /src
parent9adeda6b46cc84c88f11923958db2f03c1fc9fae (diff)
wib
Diffstat (limited to 'src')
-rw-r--r--src/lem_interp/printing_functions.ml19
-rw-r--r--src/lem_interp/printing_functions.mli6
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