diff options
author | Emilio Jesus Gallego Arias <e+git@x80.org> | 2018-05-20 22:23:02 +0200 |
---|---|---|
committer | Emilio Jesus Gallego Arias <e+git@x80.org> | 2018-05-27 15:18:08 +0200 |
commit | 311e87f261b5e7f1dca61ac19d9b7b695b411ce0 (patch) | |
tree | ba75b995a5b9a58b76d016f46adc934dfe9e29ba /vernac/egramml.mli | |
parent | b2f746e41abf53fc481f90804ba4d70edd73fc86 (diff) |
[api] [parsing] Move Egram* to `vernac/`
The extension mechanism is specific to metasyntax and vernacinterp,
thus it makes sense to place them next to each other.
We also fix the META entry for the `grammar` camlp5 plugin.
Diffstat (limited to 'vernac/egramml.mli')
-rw-r--r-- | vernac/egramml.mli | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/vernac/egramml.mli b/vernac/egramml.mli new file mode 100644 index 000000000..31aa1a989 --- /dev/null +++ b/vernac/egramml.mli @@ -0,0 +1,33 @@ +(************************************************************************) +(* * 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 Vernacexpr + +(** Mapping of grammar productions to camlp5 actions. *) + +(** This is the part specific to vernac extensions. + For the Coq-level Notation and Tactic Notation, see Egramcoq. *) + +type 's grammar_prod_item = + | GramTerminal of string + | GramNonTerminal : ('a Genarg.raw_abstract_argument_type option * + ('s, 'a) Extend.symbol) Loc.located -> 's grammar_prod_item + +val extend_vernac_command_grammar : + Vernacexpr.extend_name -> vernac_expr Pcoq.Gram.entry option -> + vernac_expr grammar_prod_item list -> unit + +val get_extend_vernac_rule : Vernacexpr.extend_name -> vernac_expr grammar_prod_item list + +(** Utility function reused in Egramcoq : *) + +val make_rule : + (Loc.t -> Genarg.raw_generic_argument list -> 'a) -> + 'a grammar_prod_item list -> 'a Extend.production_rule |