aboutsummaryrefslogtreecommitdiff
path: root/ide
diff options
context:
space:
mode:
authorppedrot2011-11-06 00:15:44 +0000
committerppedrot2011-11-06 00:15:44 +0000
commit4e1de854561f20e2069df271ed6f240fc521e680 (patch)
tree27c33f69d8f4391bf30a843c574cce507a3ee918 /ide
parent208730e526df9471781e70a3b57d5dd211159ba6 (diff)
Also sprach CoqIDE (in XML)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@14637 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'ide')
-rw-r--r--ide/coq.ml8
1 files changed, 6 insertions, 2 deletions
diff --git a/ide/coq.ml b/ide/coq.ml
index f635ad4073..93eac0962e 100644
--- a/ide/coq.ml
+++ b/ide/coq.ml
@@ -199,10 +199,14 @@ let kill_coqtop coqtop =
(** Cf [Ide_intf] for more details *)
+let p = Xml_parser.make ()
+let () = Xml_parser.check_eof p false
+
let eval_call coqtop (c:'a Ide_intf.call) =
- Marshal.to_channel coqtop.cin c [];
+ Xml_utils.print_xml coqtop.cin (Ide_intf.of_call c);
flush coqtop.cin;
- (Marshal.from_channel: in_channel -> 'a Ide_intf.value) coqtop.cout
+ let xml = Xml_parser.parse p (Xml_parser.SChannel coqtop.cout) in
+ (Ide_intf.to_answer xml : 'a Ide_intf.value)
let interp coqtop ?(raw=false) ?(verbose=true) s =
eval_call coqtop (Ide_intf.interp (raw,verbose,s))