let dom,mk_expr = $2 in
Anonymous, (dom, function interp -> mk_expr interp)
}
+ | PROD ID DOT
+ { CicTextualParser0.binders := (Some (Name $2))::!CicTextualParser0.binders;
+ let newmeta = new_meta () in
+ let new_canonical_context = [] in
+ let irl =
+ identity_relocation_list_for_metavariable new_canonical_context
+ in
+ CicTextualParser0.metasenv :=
+ [newmeta, new_canonical_context, Sort Type ;
+ newmeta+1, new_canonical_context, Meta (newmeta,irl)
+ ] @ !CicTextualParser0.metasenv ;
+ Cic.Name $2, ([], function _ -> Meta (newmeta+1,irl))
+ }
;
lambdahead:
- LAMBDA ID COLON expr DOT
- { CicTextualParser0.binders := (Some (Name $2))::!CicTextualParser0.binders ;
- let dom,mk_expr = $4 in
- Cic.Name $2, (dom, function interp -> mk_expr interp)
- }
+ LAMBDA ID COLON expr DOT
+ { CicTextualParser0.binders := (Some (Name $2))::!CicTextualParser0.binders;
+ let dom,mk_expr = $4 in
+ Cic.Name $2, (dom, function interp -> mk_expr interp)
+ }
+ | LAMBDA ID DOT
+ { CicTextualParser0.binders := (Some (Name $2))::!CicTextualParser0.binders;
+ let newmeta = new_meta () in
+ let new_canonical_context = [] in
+ let irl =
+ identity_relocation_list_for_metavariable new_canonical_context
+ in
+ CicTextualParser0.metasenv :=
+ [newmeta, new_canonical_context, Sort Type ;
+ newmeta+1, new_canonical_context, Meta (newmeta,irl)
+ ] @ !CicTextualParser0.metasenv ;
+ Cic.Name $2, ([], function _ -> Meta (newmeta+1,irl))
+ }
;
letinhead:
LAMBDA ID LETIN expr DOT