File: lexstate.mli

package info (click to toggle)
hevea 2.38-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,824 kB
  • sloc: ml: 19,525; sh: 505; makefile: 311; ansic: 132
file content (169 lines) | stat: -rw-r--r-- 5,221 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
(***********************************************************************)
(*                                                                     *)
(*                          HEVEA                                      *)
(*                                                                     *)
(*  Luc Maranget, projet PARA, INRIA Rocquencourt                      *)
(*                                                                     *)
(*  Copyright 1998 Institut National de Recherche en Informatique et   *)
(*  Automatique.  Distributed only by permission.                      *)
(*                                                                     *)
(***********************************************************************)

type action =
  | Subst of string list
  | Toks of string list
  | CamlCode of (Lexing.lexbuf -> unit)

val pretty_body : out_channel -> string list -> unit
val body_to_string : string list -> string
val pretty_action : action -> unit
val is_empty_list : string list -> bool

type pat = string list * string list
val pretty_pat : pat -> unit
val is_subst : action -> bool
val latex_pat: string list -> int -> pat
val zero_pat : pat
val one_pat : pat

type subst
type 'a arg = {arg : 'a ; subst : subst }
val mkarg : 'a -> subst -> 'a arg
val string_to_arg : 'a -> 'a arg

val top_subst : subst
val get_subst : unit -> subst

exception Error of string
exception SubstTop
type jax = JaxOut | JaxInline | JaxDisplay
  
type alltt = Not | Inside | Macro
val effective : alltt -> bool

val raw_chars : bool ref
val display : bool ref
val spaced_display : bool ref
val in_math : bool ref
val jaxauto : bool ref
val injaxauto : jax ref
val alltt : alltt ref
val whitepre: bool ref
val optarg : bool ref
val styleloaded : bool ref
val activebrace : bool ref
val html : bool ref
val text : bool ref
val alltt_loaded : bool ref
val is_plain : char -> bool
val set_plain : char -> unit
val unset_plain : char -> unit
val plain_back : bool -> char -> unit

val withinLispComment : bool ref
val afterLispCommentNewlines : int ref

type case = Upper | Lower | Neutral

val case : case ref

type closenv
val top_level : unit -> bool
val is_top : subst -> bool

val prerr_args : unit -> unit
val full_pretty_subst : subst -> unit

val pretty_lexbuf : Lexing.lexbuf -> unit


val scan_arg : (string list arg -> 'a) -> int -> 'a
val scan_body : (action -> 'a) -> action -> subst -> 'a

val stack_lexbuf : Lexing.lexbuf MyStack.t
val previous_lexbuf : unit -> Lexing.lexbuf
val record_lexbuf : Lexing.lexbuf -> subst -> unit
val top_lexstate : unit -> bool

(* Saving and restoring lexstates on a stack *)
val protect_save_string : (Lexing.lexbuf -> string) -> Lexing.lexbuf -> string
val save_lexstate : unit -> unit
val restore_lexstate : unit -> unit
val start_lexstate : unit -> unit
val start_lexstate_subst : subst -> unit

(* Total checkpoint of lexstate *)
type saved_lexstate
val check_lexstate : unit -> saved_lexstate
val hot_lexstate : saved_lexstate -> unit

val flushing : bool ref
val stack_in_math : bool MyStack.t
val stack_display : bool MyStack.t
val stack_alltt : alltt MyStack.t

val start_normal: subst -> unit
val end_normal : unit -> unit

(* Super/Sub-script parsing *)
  type sup_sub = {
    limits : Misc.limits option;
    space : bool; (* Some space has been eaten *)
    sup : string arg;
    sub : string arg;
  } 

val unoption : string arg option -> string arg
val save_sup_sub : Lexing.lexbuf -> sup_sub
val save_sup : Lexing.lexbuf -> string arg option
val save_sub : Lexing.lexbuf -> string arg option

(* Give next char in entry,
   may raise Not_found, if no next char is available *)
val full_peek_char : Lexing.lexbuf -> char

(* Argument parsing *)

type ok = | No of string | Yes of string list
val from_ok : ok arg -> string list arg

val save_arg : Lexing.lexbuf -> string arg
val save_body : Lexing.lexbuf -> string list arg
val save_filename : Lexing.lexbuf -> string arg
val save_verbatim : Lexing.lexbuf -> string arg 
val save_opt : string -> Lexing.lexbuf -> string list arg
val save_opts : string list -> Lexing.lexbuf -> ok arg list
val save_arg_with_delim : string -> Lexing.lexbuf -> string arg
val save_xy_arg : Lexing.lexbuf -> string arg
val save_cite_arg : Lexing.lexbuf -> (string list) arg


val pretty_ok : ok -> string
val skip_opt : Lexing.lexbuf -> unit
val skip_csname : Lexing.lexbuf -> unit

val make_stack : string -> pat -> Lexing.lexbuf -> subst



val scan_this
 : (Lexing.lexbuf -> 'a ) -> string -> 'a
val scan_this_list : (Lexing.lexbuf -> 'a ) -> string list -> 'a
val scan_this_arg : (Lexing.lexbuf -> 'a ) -> string arg -> 'a
val scan_this_arg_list : (Lexing.lexbuf -> 'a ) -> string list arg -> 'a
val scan_this_may_cont :
    (Lexing.lexbuf -> 'a ) -> Lexing.lexbuf -> subst ->  string arg -> 'a
val scan_this_list_may_cont :
    (Lexing.lexbuf -> 'a ) -> Lexing.lexbuf -> subst ->  string list arg -> 'a

val real_input_file :
    int -> (Lexing.lexbuf -> unit) -> string -> in_channel -> unit
val input_file : int -> (Lexing.lexbuf -> unit) -> string -> unit

val register_cell : string -> bool ref -> unit
val unregister_cell : string -> unit
type saved

val checkpoint : unit -> saved
val hot_start : saved -> unit