(* File to include to get some Coq facilities under the ocaml toplevel. This file is loaded by include *) #use "top_printers.ml";; #install_printer (* identifier *) prid;; #install_printer (* section_path *) prsp;; #install_printer (* constr *) print_pure_constr;; (* parsing of terms *) let parse_com = Pcoq.parse_string Pcoq.Constr.constr;; let parse_tac = Pcoq.parse_string Pcoq.Tactic.tactic;; let parse_vernac = Pcoq.parse_string Pcoq.Vernac_.vernac;; (* For compatibility reasons *) let parse_ast = parse_com;; (* build a term of type rawconstr without type-checking or resolution of implicit syntax *) let e s = Astterm.interp_rawconstr Evd.empty (Global.env()) (parse_ast s);; (* For compatibility *) let raw_constr_of_string = e;; (* build a term of type constr with type-checking and resolution of implicit syntax *) let constr_of_string s = Astterm.interp_constr Evd.empty (Global.env()) (parse_ast s);; (* get the body of a constant *) open Declarations;; let constbody_of_string s = let b = Global.lookup_constant (path_of_string s) in Util.out_some b.const_body;; (* Get the current goal *) let getgoal x = top_goal_of_pftreestate (Pfedit.get_pftreestate x);; let get_nth_goal n = nth_goal_of_pftreestate n (Pfedit.get_pftreestate ());; let current_goal () = get_nth_goal 1;; let pf_e gl s = Astterm.interp_constr (project gl) (pf_env gl) (parse_ast s);; open Toplevel let go = loop