diff options
| author | ppedrot | 2011-11-06 00:15:44 +0000 |
|---|---|---|
| committer | ppedrot | 2011-11-06 00:15:44 +0000 |
| commit | 4e1de854561f20e2069df271ed6f240fc521e680 (patch) | |
| tree | 27c33f69d8f4391bf30a843c574cce507a3ee918 /ide | |
| parent | 208730e526df9471781e70a3b57d5dd211159ba6 (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.ml | 8 |
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)) |
