diff options
author | ppedrot <ppedrot@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2012-05-11 15:28:49 +0000 |
---|---|---|
committer | ppedrot <ppedrot@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2012-05-11 15:28:49 +0000 |
commit | cffe0bf6b541c6322e89ef6827d3e7d9f299bbe4 (patch) | |
tree | a84fe194f15a086ad691e877181872d21a61d27b | |
parent | 5ea279dbd47d9ef1b87351e4df469aba3310f3f0 (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.mli | 2 | ||||
-rw-r--r-- | lib/serialize.ml | 8 | ||||
-rw-r--r-- | toplevel/ide_slave.ml | 3 |
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 () = |