123456789101112131415161718192021222324252627282930313233343536373839404142434445(* Toplevel printers for Json_pointer.t, Jsont.json, and Jsont.Error.t
Usage in toplevel:
#require "json-pointer.top";;
Printers are automatically installed when the library is loaded.
*)letpointer_printerppf(p:Json_pointer.t)=Format.fprintfppf"%S"(Json_pointer.to_stringp)letjson_printer=Jsont.pp_jsonleterror_printer=Jsont.Error.pp(* Automatic printer installation *)letprinters=["Json_pointer_top.pointer_printer";"Json_pointer_top.json_printer";"Json_pointer_top.error_printer";](* Suppress stderr during printer installation to avoid noise in MDX tests *)letnull_formatter=Format.make_formatter(fun___->())(fun()->())leteval_string_quietstr=tryletlexbuf=Lexing.from_stringstrinletphrase=!Toploop.parse_toplevel_phraselexbufinToploop.execute_phrasefalsenull_formatterphrasewith_->falseletrecdo_install_printers=function|[]->true|printer::rest->letcmd=Printf.sprintf"#install_printer %s;;"printerineval_string_quietcmd&&do_install_printersrestletinstall()=(* Silently ignore failures - this handles non-toplevel contexts like MDX *)ignore(do_install_printersprinters)(* Only auto-install when OCAML_TOPLEVEL_NAME is set, indicating a real toplevel *)let()=ifSys.getenv_opt"OCAML_TOPLEVEL_NAME"<>Nonetheninstall()