diff options
| author | herbelin | 2006-12-03 22:48:37 +0000 |
|---|---|---|
| committer | herbelin | 2006-12-03 22:48:37 +0000 |
| commit | f4f2c6d3221caa561a42468f0f9d46c3b80e1807 (patch) | |
| tree | 8b012faa6d7eab18f8823ed13799ff551aceeb12 /interp/topconstr.ml | |
| parent | 6aae3bd0da8edc2ec5adcff7d44155e0a59597c6 (diff) | |
Remplacement de la dépendance de G_vernac en G_constr (source
d'incohérences dans les dépendances en l'absence de g_constr.mli) par
une dépendance en Topconstr
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@9409 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'interp/topconstr.ml')
| -rw-r--r-- | interp/topconstr.ml | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/interp/topconstr.ml b/interp/topconstr.ml index bd36002eba..da3f73149f 100644 --- a/interp/topconstr.ml +++ b/interp/topconstr.ml @@ -736,6 +736,24 @@ let mkLambdaC (idl,a,b) = CLambdaN (dummy_loc,[idl,a],b) let mkLetInC (id,a,b) = CLetIn (dummy_loc,id,a,b) let mkProdC (idl,a,b) = CProdN (dummy_loc,[idl,a],b) +let rec mkCProdN loc bll c = + match bll with + | LocalRawAssum ((loc1,_)::_ as idl,t) :: bll -> + CProdN (loc,[idl,t],mkCProdN (join_loc loc1 loc) bll c) + | LocalRawDef ((loc1,_) as id,b) :: bll -> + CLetIn (loc,id,b,mkCProdN (join_loc loc1 loc) bll c) + | [] -> c + | LocalRawAssum ([],_) :: bll -> mkCProdN loc bll c + +let rec mkCLambdaN loc bll c = + match bll with + | LocalRawAssum ((loc1,_)::_ as idl,t) :: bll -> + CLambdaN (loc,[idl,t],mkCLambdaN (join_loc loc1 loc) bll c) + | LocalRawDef ((loc1,_) as id,b) :: bll -> + CLetIn (loc,id,b,mkCLambdaN (join_loc loc1 loc) bll c) + | [] -> c + | LocalRawAssum ([],_) :: bll -> mkCLambdaN loc bll c + let rec abstract_constr_expr c = function | [] -> c | LocalRawDef (x,b)::bl -> mkLetInC(x,b,abstract_constr_expr c bl) |
