aboutsummaryrefslogtreecommitdiff
path: root/parsing
diff options
context:
space:
mode:
authorherbelin2003-04-27 18:32:34 +0000
committerherbelin2003-04-27 18:32:34 +0000
commit7ce9a2c43420d694a901c152d95b6645c76d34cd (patch)
tree16dd4bd276ffa21f7ee30bf10a944f8b4974de0b /parsing
parent8412d45181edd1d0627df454fa370d858d3fd623 (diff)
Affichage des Fix contenant des Let dans leur context (ce que la tactique Fix permet)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@3959 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'parsing')
-rw-r--r--parsing/termast.ml4
1 files changed, 4 insertions, 0 deletions
diff --git a/parsing/termast.ml b/parsing/termast.ml
index 299c061c9c..e9892758bd 100644
--- a/parsing/termast.ml
+++ b/parsing/termast.ml
@@ -256,12 +256,16 @@ let rec ast_of_raw = function
| RFix (nv,n) ->
let rec split_lambda binds = function
| (0, t) -> (binds,ast_of_raw t)
+ | (n, RLetIn (_,na,b,c)) ->
+ let bind = ope("LETBINDER",[ast_of_raw b;ast_of_name na]) in
+ split_lambda (bind::binds) (n,c)
| (n, RLambda (_,na,t,b)) ->
let bind = ope("BINDER",[ast_of_raw t;ast_of_name na]) in
split_lambda (bind::binds) (n-1,b)
| _ -> anomaly "ast_of_rawconst: ill-formed fixpoint body" in
let rec split_product = function
| (0, t) -> ast_of_raw t
+ | (n, RLetIn (_,na,_,c)) -> split_product (n,c)
| (n, RProd (_,na,t,b)) -> split_product (n-1,b)
| _ -> anomaly "ast_of_rawconst: ill-formed fixpoint type" in
let listdecl =