aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar ppedrot <ppedrot@85f007b7-540e-0410-9357-904b9bb8a0f7>2012-05-11 15:28:49 +0000
committerGravatar ppedrot <ppedrot@85f007b7-540e-0410-9357-904b9bb8a0f7>2012-05-11 15:28:49 +0000
commitcffe0bf6b541c6322e89ef6827d3e7d9f299bbe4 (patch)
treea84fe194f15a086ad691e877181872d21a61d27b
parent5ea279dbd47d9ef1b87351e4df469aba3310f3f0 (diff)
Slightly modified the coqtop interface by adding an identifier in
goals. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@15303 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--lib/interface.mli2
-rw-r--r--lib/serialize.ml8
-rw-r--r--toplevel/ide_slave.ml3
3 files changed, 9 insertions, 4 deletions
diff --git a/lib/interface.mli b/lib/interface.mli
index a72e5b7b0..52b5dbb7c 100644
--- a/lib/interface.mli
+++ b/lib/interface.mli
@@ -15,6 +15,8 @@ type verbose = bool
(** The type of coqtop goals *)
type goal = {
+ goal_id : string;
+ (** Unique goal identifier *)
goal_hyp : string list;
(** List of hypotheses *)
goal_ccl : string;
diff --git a/lib/serialize.ml b/lib/serialize.ml
index 3b4386131..a793e800e 100644
--- a/lib/serialize.ml
+++ b/lib/serialize.ml
@@ -311,13 +311,15 @@ let to_evar = function
let of_goal g =
let hyp = of_list of_string g.goal_hyp in
let ccl = of_string g.goal_ccl in
- Element ("goal", [], [hyp; ccl])
+ let id = of_string g.goal_id in
+ Element ("goal", [], [id; hyp; ccl])
let to_goal = function
-| Element ("goal", [], [hyp; ccl]) ->
+| Element ("goal", [], [id; hyp; ccl]) ->
let hyp = to_list to_string hyp in
let ccl = to_string ccl in
- { goal_hyp = hyp; goal_ccl = ccl }
+ let id = to_string id in
+ { goal_hyp = hyp; goal_ccl = ccl; goal_id = id; }
| _ -> raise Marshal_error
let of_goals g =
diff --git a/toplevel/ide_slave.ml b/toplevel/ide_slave.ml
index 4846f0153..b4a217824 100644
--- a/toplevel/ide_slave.ml
+++ b/toplevel/ide_slave.ml
@@ -172,6 +172,7 @@ let concl_next_tac sigma concl =
let process_goal sigma g =
let env = Goal.V82.env sigma g in
+ let id = Goal.uid g in
let ccl =
let norm_constr = Reductionops.nf_evar sigma (Goal.V82.concl sigma g) in
string_of_ppcmds (pr_goal_concl_style_env env norm_constr) in
@@ -181,7 +182,7 @@ let process_goal sigma g =
(* (string_of_ppcmds (pr_var_decl h_env d), hyp_next_tac sigma h_env d)::acc in *)
let hyps =
List.rev (Environ.fold_named_context process_hyp env ~init: []) in
- { Interface.goal_hyp = hyps; Interface.goal_ccl = ccl }
+ { Interface.goal_hyp = hyps; Interface.goal_ccl = ccl; Interface.goal_id = id; }
(* hyps,(ccl,concl_next_tac sigma g)) *)
let goals () =