Module Xmlprotocol

* Applicative part of the interface of CoqIde calls to Coq

type 'a call
type unknown_call =
| Unknown : 'a call -> unknown_call
val add : Interface.add_sty -> Interface.add_rty call
val edit_at : Interface.edit_at_sty -> Interface.edit_at_rty call
val query : Interface.query_sty -> Interface.query_rty call
val goals : Interface.goals_sty -> Interface.goals_rty call
val hints : Interface.hints_sty -> Interface.hints_rty call
val status : Interface.status_sty -> Interface.status_rty call
val mkcases : Interface.mkcases_sty -> Interface.mkcases_rty call
val evars : Interface.evars_sty -> Interface.evars_rty call
val get_options : Interface.get_options_sty -> Interface.get_options_rty call
val set_options : Interface.set_options_sty -> Interface.set_options_rty call
val quit : Interface.quit_sty -> Interface.quit_rty call
val init : Interface.init_sty -> Interface.init_rty call
val stop_worker : Interface.stop_worker_sty -> Interface.stop_worker_rty call
val wait : Interface.wait_sty -> Interface.wait_rty call
val interp : Interface.interp_sty -> Interface.interp_rty call
val print_ast : Interface.print_ast_sty -> Interface.print_ast_rty call
val annotate : Interface.annotate_sty -> Interface.annotate_rty call
val proof_diff : Interface.proof_diff_sty -> Interface.proof_diff_rty call
val db_cmd : Interface.db_cmd_sty -> Interface.db_cmd_rty call
val abstract_eval_call : Interface.handler -> 'a call -> 'a Interface.value
val protocol_version : string
type msg_format =
| Richpp of int
| Ppcmds

By default, we still output messages in Richpp so we are compatible with 8.6, however, 8.7 aware clients will want to set this to Ppcmds

val of_call : 'a call -> Xml_datatype.xml
val to_call : Xml_datatype.xml -> unknown_call
val of_answer : msg_format -> 'a call -> 'a Interface.value -> Xml_datatype.xml
val to_answer : 'a call -> Xml_datatype.xml -> 'a Interface.value
val document : (Xml_datatype.xml -> string) -> unit
val pr_call : 'a call -> string
val pr_value : 'a Interface.value -> string
val pr_full_value : 'a call -> 'a Interface.value -> string
type msg_type =
| Feedback
| LtacDebugInfo
| Other

Classification of messages handled by different mechanisms

val msg_kind : Xml_datatype.xml -> msg_type
val of_feedback : msg_format -> Feedback.feedback -> Xml_datatype.xml

* Serialization of feedback

val to_feedback : Xml_datatype.xml -> Feedback.feedback
val of_ltac_debug_answer : tag:string -> Pp.t -> Xml_datatype.xml

* Serialization of debugger output

val to_ltac_debug_answer : Xml_datatype.xml -> string * Pp.t