moogle_TPL
let exec_action dbd (req: Http_types.request) outchan =
+ let dbd = dbd () in
let term_str = req#param "expression" in
try
if req#path = "/elim" &&
end
in
let module Disambiguate' = Disambiguate.Make(Chat) in
- let ast = Grammar.Entry.parse CicNotationParser.term (Stream.of_string term_str) in
+ let ast =
+ CicNotationParser.parse_term (Ulexing.from_utf8_string term_str) in
let (id_to_uris, metasenv, term) =
match
Disambiguate'.disambiguate_term ~dbd ~context ~metasenv
if expression = "" then
send_results (`Results []) req outchan
else begin
- let results = Whelp.locate ~dbd expression in
+ let results = Whelp.locate ~dbd:(dbd ()) expression in
let results = List.map UriManager.string_of_uri results in
send_results (`Results results) req outchan
end
bad_request (sprintf "Parameter '%s' is missing" attr_name) outchan
| CicNotationParser.Parse_error msg ->
send_results (`Error (MooglePp.pp_error "Parse error" msg)) req outchan
+ | Stdpp.Exc_located (floc, Stream.Error msg) ->
+ send_results (`Error (MooglePp.pp_error "Parse error" msg)) req outchan
+ | Stdpp.Exc_located (floc, exn) ->
+ let msg = Printexc.to_string exn in
+ send_results (`Error (MooglePp.pp_error "Unknown error" msg)) req outchan
| Unbound_identifier id ->
send_results (`Error (MooglePp.pp_error "Unbound identifier" id)) req
outchan
printf "done!\n"; flush stdout
let read_notation () =
- let _ = assert false in ()
- (*
- CicNotation.load_notation (Helm_registry.get "search_engine.notations");
- CicNotation.load_notation (Helm_registry.get "search_engine.interpretations")
- *)
+ ignore (CicNotation2.load_notation ~include_paths:[]
+ (Helm_registry.get "search_engine.notations"));
+ ignore (CicNotation2.load_notation ~include_paths:[]
+ (Helm_registry.get "search_engine.interpretations"))
let _ =
printf "%s started and listening on port %d\n" daemon_name port;
printf "HTML directory is %s\n" pages_dir;
flush stdout;
Unix.putenv "http_proxy" "";
- let dbd =
+ let dbd () =
HMysql.quick_connect
~host:(Helm_registry.get "db.host")
~database:(Helm_registry.get "db.database")
in
restore_environment ();
read_notation ();
- Http_daemon.start' ~port (callback dbd);
+ let d_spec = Http_daemon.daemon_spec ~port ~callback:(callback dbd) ~auto_close:true () in
+ Http_daemon.main d_spec;
printf "%s is terminating, bye!\n" daemon_name