1(***********************************************************************)
2(*                                                                     *)
3(*                          HEVEA                                      *)
4(*                                                                     *)
5(*  Luc Maranget, projet PARA, INRIA Rocquencourt                      *)
6(*                                                                     *)
7(*  Copyright 1998 Institut National de Recherche en Informatique et   *)
8(*  Automatique.  Distributed only by permission.                      *)
9(*                                                                     *)
10(***********************************************************************)
11
12exception Failed
13
14type saved
15val checkpoint : unit -> saved
16val hot_start : saved -> unit
17val pretty_macro : Lexstate.pat -> Lexstate.action -> unit
18val pretty_table : unit -> unit
19val set_saved_macros : unit -> unit
20val get_saved_macro : string -> bool
21
22val register_init : string -> (unit -> unit) -> unit
23val exec_init : string -> unit
24
25val open_group : unit -> unit
26val close_group : unit -> unit
27val get_level : unit -> int
28
29val exists : string -> bool
30val find : string -> Lexstate.pat * Lexstate.action
31val pretty_command : string -> unit
32val def : string -> Lexstate.pat -> Lexstate.action -> unit
33val global_def : string -> Lexstate.pat -> Lexstate.action -> unit
34(* Undefine a command *)
35val global_undef : string -> unit
36
37(******************)
38(* For inside use *)
39(******************)
40
41(* raises Failed if already defined *)
42val def_init : string -> (Lexing.lexbuf -> unit) -> unit
43(* raises Failed if not defined *)
44val find_fail : string -> Lexstate.pat * Lexstate.action
45
46(*
47  replace name new,
48     Send back the Some (old definition for name) or None
49
50  - if new is Some (def)
51        then def replaces the old definition, or a definition is created
52  - if new is None, then undefine the last local binding for name.
53*)
54val replace : string -> (Lexstate.pat * Lexstate.action) option ->
55  (Lexstate.pat * Lexstate.action) option
56
57(* Add tokens at the end of subst macros, created with zero args
58   if non-existing *)
59val addto : string -> string list -> unit
60
61
62val invisible : string -> bool
63
64