-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathParser2.sig
30 lines (22 loc) · 985 Bytes
/
Parser2.sig
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
signature Parser2 =
sig
datatype 'a ml = Empty
| Link of 'a * 'a ml ref
type 'a memo = (((int * int) list * (int * int)) *
('a * Substring.substring) list) ml ref
type 'a cachet = (string * (int * 'a memo)) ml ref
type context = (int * int) list
type input = {lc: context,sb: Substring.substring}
type 'a parser = input -> ('a * Substring.substring) list
val substr : input -> Substring.substring
val toinput : string -> input
val check_and_upd_lctxt : int -> 'a parser -> 'a parser
val memop : 'a memo -> 'a parser -> 'a parser
val parse_a : string -> substring parser
val parse_one : (string -> bool) -> substring parser
val parse_while : string -> (string -> bool) -> substring parser
val parse_a_ilws : string -> substring parser
val parse_one_ilws : (string -> bool) -> substring parser
val parse_while_ilws : string -> (string -> bool) -> substring parser
val content : substring -> string
end