diff options
| author | Maxime Dénès | 2018-06-01 13:49:34 +0200 |
|---|---|---|
| committer | Maxime Dénès | 2018-06-01 13:49:34 +0200 |
| commit | 3a36761a27487e8917e1b59b59abacc2a7e65b95 (patch) | |
| tree | f1cd9d412c40933ff3e87f720dbd8e7cba7f9bbf /parsing/notation_gram.ml | |
| parent | ac0bb15616550d00f5e6e7d6239e3b7ff2632975 (diff) | |
| parent | 63b530234e0b19323a50c52434a7439518565c81 (diff) | |
Merge PR #7570: [api] Move `Constrexpr` to the `interp` module.
Diffstat (limited to 'parsing/notation_gram.ml')
| -rw-r--r-- | parsing/notation_gram.ml | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/parsing/notation_gram.ml b/parsing/notation_gram.ml new file mode 100644 index 0000000000..346350641f --- /dev/null +++ b/parsing/notation_gram.ml @@ -0,0 +1,42 @@ +(************************************************************************) +(* * The Coq Proof Assistant / The Coq Development Team *) +(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *) +(* <O___,, * (see CREDITS file for the list of authors) *) +(* \VV/ **************************************************************) +(* // * This file is distributed under the terms of the *) +(* * GNU Lesser General Public License Version 2.1 *) +(* * (see LICENSE file for the text of the license) *) +(************************************************************************) + +open Names +open Extend + +(** Dealing with precedences *) + +type precedence = int +type parenRelation = L | E | Any | Prec of precedence +type tolerability = precedence * parenRelation + +type level = precedence * tolerability list * constr_entry_key list + +type grammar_constr_prod_item = + | GramConstrTerminal of Tok.t + | GramConstrNonTerminal of Extend.constr_prod_entry_key * Id.t option + | GramConstrListMark of int * bool * int + (* tells action rule to make a list of the n previous parsed items; + concat with last parsed list when true; additionally release + the p last items as if they were parsed autonomously *) + +(** Grammar rules for a notation *) + +type one_notation_grammar = { + notgram_level : level; + notgram_assoc : Extend.gram_assoc option; + notgram_notation : Constrexpr.notation; + notgram_prods : grammar_constr_prod_item list list; +} + +type notation_grammar = { + notgram_onlyprinting : bool; + notgram_rules : one_notation_grammar list +} |
