aboutsummaryrefslogtreecommitdiffhomepage
path: root/intf
diff options
context:
space:
mode:
authorGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2017-07-24 20:04:46 +0200
committerGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2017-08-29 05:18:49 +0200
commitf442efebd8354b233827e4991a80d27082c772e1 (patch)
treedfdc1a38defaa4f2e7ca413aaca883f5c2b728fa /intf
parent7b1ff0c70a3ba9cd3cfa5aa6723f8f8a2b6e5396 (diff)
A little reorganization of notations + a fix to #5608.
- Formerly, notations such as "{ A } + { B }" were typically split into "{ _ }" and "_ + _". We keep the split only for parsing, which is where it is really needed, but not anymore for interpretation, nor printing. - As a consequence, one notation string can give rise to several grammar entries, but still only one printing entry. - As another consequence, "{ A } + { B }" and "A + { B }" must be reserved to be used, which is after all the natural expectation, even if the sublevels are constrained. - We also now keep the information "is ident", "is binder" in the "key" characterizing the level of a notation.
Diffstat (limited to 'intf')
-rw-r--r--intf/notation_term.ml5
1 files changed, 3 insertions, 2 deletions
diff --git a/intf/notation_term.ml b/intf/notation_term.ml
index cee96040b..084a1042c 100644
--- a/intf/notation_term.ml
+++ b/intf/notation_term.ml
@@ -88,11 +88,12 @@ type grammar_constr_prod_item =
concat with last parsed list when true; additionally release
the p last items as if they were parsed autonomously *)
-type notation_grammar = {
+type one_notation_grammar = {
notgram_level : int;
notgram_assoc : Extend.gram_assoc option;
notgram_notation : Constrexpr.notation;
notgram_prods : grammar_constr_prod_item list list;
notgram_typs : notation_var_internalization_type list;
- notgram_onlyprinting : bool;
}
+
+type notation_grammar = (* onlyprinting *) bool * one_notation_grammar list