From 90e5407fcfc59dce5ea592aeae6195183a2b4ad2 Mon Sep 17 00:00:00 2001 From: herbelin Date: Sun, 30 Mar 2008 21:42:58 +0000 Subject: Ajout d'abbréviations/notations paramétriques Example: "Notation reflexive R := (forall x, R x x)." git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10730 85f007b7-540e-0410-9357-904b9bb8a0f7 --- interp/constrextern.ml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'interp/constrextern.ml') diff --git a/interp/constrextern.ml b/interp/constrextern.ml index 11cd87763f..0e30e5db58 100644 --- a/interp/constrextern.ml +++ b/interp/constrextern.ml @@ -853,7 +853,12 @@ and extern_symbol (tmp_scope,scopes as allscopes) vars t = function subst in insert_delimiters (make_notation loc ntn l) key) | SynDefRule kn -> - CRef (Qualid (loc, shortest_qualid_of_syndef vars kn)) in + let l = + List.map (fun (c,(scopt,scl)) -> + extern true (scopt,scl@scopes) vars c, None) + subst in + let a = CRef (Qualid (loc, shortest_qualid_of_syndef vars kn)) in + if l = [] then a else CApp (loc,(None,a),l) in if args = [] then e else (* TODO: compute scopt for the extra args, in case, head is a ref *) -- cgit v1.2.3