aboutsummaryrefslogtreecommitdiffhomepage
path: root/interp
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-12-29 17:15:52 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-12-29 17:15:52 +0000
commitb18a6d179903546cbf5745e601ab221f06e30078 (patch)
treec9ed543e785c2bcfad768669812778a9d3aea33e /interp
parentf34f0420899594847b6e7633a4488f034a4300f6 (diff)
- Added support for subterm matching in SearchAbout.
- Backtrack on precise unfolding of "iff" in "tauto": it has effects on the naming of hypotheses (especially when doing "case H" with H of type "{x|P<->Q}" since not unfolding will eventually introduce a name "i" while unfolding will eventually introduce a name "a" (deep sigh). - Miscellaneous (error when a plugin is missing, doc hnf, standardization of names manipulating type constr_pattern, ...). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@11725 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'interp')
-rw-r--r--interp/constrintern.ml5
-rw-r--r--interp/constrintern.mli5
-rw-r--r--interp/topconstr.ml2
-rw-r--r--interp/topconstr.mli2
4 files changed, 10 insertions, 4 deletions
diff --git a/interp/constrintern.ml b/interp/constrintern.ml
index a8dad2216..357ce4377 100644
--- a/interp/constrintern.ml
+++ b/interp/constrintern.ml
@@ -1277,8 +1277,9 @@ let interp_constr_judgment_evars evdref env c =
type ltac_sign = identifier list * unbound_ltac_var_map
-let interp_constrpattern sigma env c =
- pattern_of_rawconstr (intern_gen false sigma env ~allow_patvar:true c)
+let intern_constr_pattern sigma env ?(as_type=false) ?(ltacvars=([],[])) c =
+ let c = intern_gen as_type ~allow_patvar:true ~ltacvars sigma env c in
+ pattern_of_rawconstr c
let interp_aconstr impls (vars,varslist) a =
let env = Global.env () in
diff --git a/interp/constrintern.mli b/interp/constrintern.mli
index a646b6314..6410c9b2e 100644
--- a/interp/constrintern.mli
+++ b/interp/constrintern.mli
@@ -113,8 +113,9 @@ val interp_constr_judgment : evar_map -> env -> constr_expr -> unsafe_judgment
(* Interprets constr patterns *)
-val interp_constrpattern :
- evar_map -> env -> constr_expr -> patvar list * constr_pattern
+val intern_constr_pattern :
+ evar_map -> env -> ?as_type:bool -> ?ltacvars:ltac_sign ->
+ constr_pattern_expr -> patvar list * constr_pattern
val interp_reference : ltac_sign -> reference -> rawconstr
diff --git a/interp/topconstr.ml b/interp/topconstr.ml
index 2cbe53981..6bee22f6c 100644
--- a/interp/topconstr.ml
+++ b/interp/topconstr.ml
@@ -675,6 +675,8 @@ and recursion_order_expr =
| CWfRec of constr_expr
| CMeasureRec of constr_expr
+type constr_pattern_expr = constr_expr
+
(***********************)
(* For binders parsing *)
diff --git a/interp/topconstr.mli b/interp/topconstr.mli
index 2d293eacb..cecea239c 100644
--- a/interp/topconstr.mli
+++ b/interp/topconstr.mli
@@ -172,6 +172,8 @@ type typeclass_constraint = name located * binding_kind * constr_expr
and typeclass_context = typeclass_constraint list
+type constr_pattern_expr = constr_expr
+
(**********************************************************************)
(* Utilities on constr_expr *)