aboutsummaryrefslogtreecommitdiff
path: root/interp/syntax_def.ml
diff options
context:
space:
mode:
authorherbelin2008-10-22 11:21:45 +0000
committerherbelin2008-10-22 11:21:45 +0000
commite03d1840a8e6eec927e7fbe006d59ab21b8d818f (patch)
treec5d200bf638cb7dd4c1ccda04b282275984568fe /interp/syntax_def.ml
parente6b509aa8c8f74d52e1bc69c3a4bf2a6fe8e3d01 (diff)
Affichage des notations récursives:
- Prise en compte des notations applicatives - Remplacement du codage des arguments liste des notations récursives sous forme de terme par une représentation directe (permet notamment de résoudre un problème de stack overflow de la fonction d'affichage) + Correction bug affichage Lemma dans ppvernac.ml + Divers util.ml git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@11489 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'interp/syntax_def.ml')
-rw-r--r--interp/syntax_def.ml11
1 files changed, 9 insertions, 2 deletions
diff --git a/interp/syntax_def.ml b/interp/syntax_def.ml
index 4c2b7eaef8..8f303ea61a 100644
--- a/interp/syntax_def.ml
+++ b/interp/syntax_def.ml
@@ -70,11 +70,18 @@ let (in_syntax_constant, out_syntax_constant) =
classify_function = classify_syntax_constant;
export_function = export_syntax_constant }
+type syndef_interpretation = (identifier * subscopes) list * aconstr
+
+(* Coercions to the general format of notation that also supports
+ variables bound to list of expressions *)
+let in_pat (ids,ac) = ((ids,[]),ac)
+let out_pat ((ids,idsl),ac) = assert (idsl=[]); (ids,ac)
+
let declare_syntactic_definition local id onlyparse pat =
- let _ = add_leaf id (in_syntax_constant (local,pat,onlyparse)) in ()
+ let _ = add_leaf id (in_syntax_constant (local,in_pat pat,onlyparse)) in ()
let search_syntactic_definition loc kn =
- KNmap.find kn !syntax_table
+ out_pat (KNmap.find kn !syntax_table)
let locate_global_with_alias (loc,qid) =
match Nametab.extended_locate qid with