Module Egramml

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 * ( 's, _, 'a ) Pcoq.Symbol.t) Loc.located -> 's grammar_prod_item
val declare_vernac_command_grammar : allow_override:bool -> Vernacexpr.extend_name -> Vernacexpr.vernac_expr Pcoq.Entry.t option -> Vernacexpr.vernac_expr grammar_prod_item list -> unit
val extend_vernac_command_grammar : undoable:bool -> Vernacexpr.extend_name -> unit
val grammar_extend : ?plugin_uid:(string * string) -> 'a Pcoq.Entry.t -> 'a Pcoq.extend_statement -> unit
val proj_symbol : ( 'a, 'b, 'c ) Extend.ty_user_symbol -> ( 'a, 'b, 'c ) Genarg.genarg_type

Utility function reused in Egramcoq :

val make_rule : ( Loc.t -> Genarg.raw_generic_argument list -> 'a ) -> 'a grammar_prod_item list -> 'a Pcoq.Production.t