diff options
| author | herbelin | 2008-10-22 11:21:45 +0000 |
|---|---|---|
| committer | herbelin | 2008-10-22 11:21:45 +0000 |
| commit | e03d1840a8e6eec927e7fbe006d59ab21b8d818f (patch) | |
| tree | c5d200bf638cb7dd4c1ccda04b282275984568fe /interp/syntax_def.ml | |
| parent | e6b509aa8c8f74d52e1bc69c3a4bf2a6fe8e3d01 (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.ml | 11 |
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 |
