1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
(* ========================================================================= *)
(* Some miscellaneous OCaml system hacking before we get started. *)
(* *)
(* (c) Copyright, John Harrison 1998-2007 *)
(* ========================================================================= *)
Gc.set { (Gc.get()) with Gc.stack_limit = 16777216 };;
(* ------------------------------------------------------------------------- *)
(* Make sure user interrupts generate an exception, not kill the process. *)
(* ------------------------------------------------------------------------- *)
Sys.catch_break true;;
(* ------------------------------------------------------------------------- *)
(* Set up a quotation expander for the `...` quotes. *)
(* ------------------------------------------------------------------------- *)
let quotexpander s =
if String.sub s 0 1 = ":" then
"parse_type \""^
(String.escaped (String.sub s 1 (String.length s - 1)))^"\""
else "parse_term \""^(String.escaped s)^"\"";;
Quotation.add "tot" (Quotation.ExStr (fun x -> quotexpander));;
(* ------------------------------------------------------------------------- *)
(* Modify the lexical analysis of uppercase identifiers. *)
(* ------------------------------------------------------------------------- *)
set_jrh_lexer;;
(* ------------------------------------------------------------------------- *)
(* Load in the bignum library and set up printing in the toplevel. *)
(* ------------------------------------------------------------------------- *)
#load "nums.cma";;
include Num;;
let print_num n =
Format.open_hbox();
Format.print_string(string_of_num n);
Format.close_box();;
#install_printer print_num;;
|