aboutsummaryrefslogtreecommitdiff
path: root/parsing/ppextend.mli
diff options
context:
space:
mode:
authorMaxime Dénès2018-06-01 13:49:34 +0200
committerMaxime Dénès2018-06-01 13:49:34 +0200
commit3a36761a27487e8917e1b59b59abacc2a7e65b95 (patch)
treef1cd9d412c40933ff3e87f720dbd8e7cba7f9bbf /parsing/ppextend.mli
parentac0bb15616550d00f5e6e7d6239e3b7ff2632975 (diff)
parent63b530234e0b19323a50c52434a7439518565c81 (diff)
Merge PR #7570: [api] Move `Constrexpr` to the `interp` module.
Diffstat (limited to 'parsing/ppextend.mli')
-rw-r--r--parsing/ppextend.mli52
1 files changed, 52 insertions, 0 deletions
diff --git a/parsing/ppextend.mli b/parsing/ppextend.mli
new file mode 100644
index 0000000000..9f61e121a4
--- /dev/null
+++ b/parsing/ppextend.mli
@@ -0,0 +1,52 @@
+(************************************************************************)
+(* * 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 Constrexpr
+open Notation_gram
+
+(** {6 Pretty-print. } *)
+
+type ppbox =
+ | PpHB of int
+ | PpHOVB of int
+ | PpHVB of int
+ | PpVB of int
+
+type ppcut =
+ | PpBrk of int * int
+ | PpFnl
+
+val ppcmd_of_box : ppbox -> Pp.t -> Pp.t
+
+val ppcmd_of_cut : ppcut -> Pp.t
+
+(** {6 Printing rules for notations} *)
+
+(** Declare and look for the printing rule for symbolic notations *)
+type unparsing =
+ | UnpMetaVar of int * parenRelation
+ | UnpBinderMetaVar of int * parenRelation
+ | UnpListMetaVar of int * parenRelation * unparsing list
+ | UnpBinderListMetaVar of int * bool * unparsing list
+ | UnpTerminal of string
+ | UnpBox of ppbox * unparsing Loc.located list
+ | UnpCut of ppcut
+
+type unparsing_rule = unparsing list * precedence
+type extra_unparsing_rules = (string * string) list
+
+val declare_notation_rule : notation -> extra:extra_unparsing_rules -> unparsing_rule -> notation_grammar -> unit
+val find_notation_printing_rule : notation -> unparsing_rule
+val find_notation_extra_printing_rules : notation -> extra_unparsing_rules
+val find_notation_parsing_rules : notation -> notation_grammar
+val add_notation_extra_printing_rule : notation -> string -> string -> unit
+
+(** Returns notations with defined parsing/printing rules *)
+val get_defined_notations : unit -> notation list