summaryrefslogtreecommitdiff
path: root/interp/syntax_def.ml
diff options
context:
space:
mode:
authorGravatar Samuel Mimram <smimram@debian.org>2006-01-19 22:34:29 +0000
committerGravatar Samuel Mimram <smimram@debian.org>2006-01-19 22:34:29 +0000
commit0c0eeea26aafd36301d4b5592225e34153ff955f (patch)
tree1d839759bc9efc76ab3a0e09a5b52aa3039fffc7 /interp/syntax_def.ml
parent46af7a39c66bc711fb32a5ce4fed4ab4f218d6af (diff)
parent018ee3b0c2be79eb81b1f65c3f3fa142d24129c8 (diff)
Merge commit 'upstream/8.0pl3'
Diffstat (limited to 'interp/syntax_def.ml')
-rw-r--r--interp/syntax_def.ml11
1 files changed, 8 insertions, 3 deletions
diff --git a/interp/syntax_def.ml b/interp/syntax_def.ml
index ef887d88..ceda2b47 100644
--- a/interp/syntax_def.ml
+++ b/interp/syntax_def.ml
@@ -6,7 +6,7 @@
(* * GNU Lesser General Public License Version 2.1 *)
(************************************************************************)
-(* $Id: syntax_def.ml,v 1.6.2.1 2004/07/16 19:30:23 herbelin Exp $ *)
+(* $Id: syntax_def.ml,v 1.6.2.2 2006/01/03 20:33:31 herbelin Exp $ *)
open Util
open Pp
@@ -39,10 +39,15 @@ let load_syntax_constant i ((sp,kn),(local,c,onlyparse)) =
add_syntax_constant kn c;
Nametab.push_syntactic_definition (Nametab.Until i) sp kn;
if not onlyparse then
+ (* Declare it to be used as (long) name *)
Symbols.declare_uninterpretation (Symbols.SynDefRule kn) ([],c)
-let open_syntax_constant i ((sp,kn),c) =
- Nametab.push_syntactic_definition (Nametab.Exactly i) sp kn
+let open_syntax_constant i ((sp,kn),(_,c,onlyparse)) =
+ Nametab.push_syntactic_definition (Nametab.Exactly i) sp kn;
+ if not onlyparse then
+ (* Redeclare it to be used as (short) name in case an other (distfix)
+ notation was declared inbetween *)
+ Symbols.declare_uninterpretation (Symbols.SynDefRule kn) ([],c)
let cache_syntax_constant d =
load_syntax_constant 1 d