summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
Diffstat (limited to 'driver')
-rw-r--r--driver/Driver.ml9
1 files changed, 9 insertions, 0 deletions
diff --git a/driver/Driver.ml b/driver/Driver.ml
index 1ca915c..0523feb 100644
--- a/driver/Driver.ml
+++ b/driver/Driver.ml
@@ -35,10 +35,19 @@ let safe_remove file =
(* Printing of error messages *)
+(* Locally named idents are encoded as in Cminorgen.
+ This function should live somewhere more central. *)
+let ident_name id =
+ match id with
+ | BinPos.Coq_xO n -> Camlcoq.extern_atom n
+ | BinPos.Coq_xI n -> Printf.sprintf "$%ld" (Camlcoq.camlint_of_positive n)
+ | BinPos.Coq_xH -> "$0"
+
let print_error oc msg =
let print_one_error = function
| Errors.MSG s -> output_string oc (Camlcoq.camlstring_of_coqstring s)
| Errors.CTX i -> output_string oc (Camlcoq.extern_atom i)
+ | Errors.CTXL i -> output_string oc (ident_name i)
in
List.iter print_one_error msg;
output_char oc '\n'