6 |
6 |
7 signature OUTER_PARSE = |
7 signature OUTER_PARSE = |
8 sig |
8 sig |
9 type token = OuterLex.token |
9 type token = OuterLex.token |
10 type 'a parser = token list -> 'a * token list |
10 type 'a parser = token list -> 'a * token list |
|
11 type 'a context_parser = Context.generic * token list -> 'a * (Context.generic * token list) |
11 val group: string -> (token list -> 'a) -> token list -> 'a |
12 val group: string -> (token list -> 'a) -> token list -> 'a |
12 val !!! : (token list -> 'a) -> token list -> 'a |
13 val !!! : (token list -> 'a) -> token list -> 'a |
13 val !!!! : (token list -> 'a) -> token list -> 'a |
14 val !!!! : (token list -> 'a) -> token list -> 'a |
14 val triple1: ('a * 'b) * 'c -> 'a * 'b * 'c |
15 val triple1: ('a * 'b) * 'c -> 'a * 'b * 'c |
15 val triple2: 'a * ('b * 'c) -> 'a * 'b * 'c |
16 val triple2: 'a * ('b * 'c) -> 'a * 'b * 'c |
48 val int: int parser |
49 val int: int parser |
49 val enum: string -> 'a parser -> 'a list parser |
50 val enum: string -> 'a parser -> 'a list parser |
50 val enum1: string -> 'a parser -> 'a list parser |
51 val enum1: string -> 'a parser -> 'a list parser |
51 val and_list: 'a parser -> 'a list parser |
52 val and_list: 'a parser -> 'a list parser |
52 val and_list1: 'a parser -> 'a list parser |
53 val and_list1: 'a parser -> 'a list parser |
53 val enum': string -> ('a * token list -> 'b * ('a * token list)) -> |
54 val enum': string -> 'a context_parser -> 'a list context_parser |
54 'a * token list -> 'b list * ('a * token list) |
55 val enum1': string -> 'a context_parser -> 'a list context_parser |
55 val enum1': string -> ('a * token list -> 'b * ('a * token list)) -> |
56 val and_list': 'a context_parser -> 'a list context_parser |
56 'a * token list -> 'b list * ('a * token list) |
57 val and_list1': 'a context_parser -> 'a list context_parser |
57 val and_list': ('a * token list -> 'b * ('a * token list)) -> |
|
58 'a * token list -> 'b list * ('a * token list) |
|
59 val and_list1': ('a * token list -> 'b * ('a * token list)) -> |
|
60 'a * token list -> 'b list * ('a * token list) |
|
61 val list: 'a parser -> 'a list parser |
58 val list: 'a parser -> 'a list parser |
62 val list1: 'a parser -> 'a list parser |
59 val list1: 'a parser -> 'a list parser |
63 val name: bstring parser |
60 val name: bstring parser |
64 val binding: binding parser |
61 val binding: binding parser |
65 val xname: xstring parser |
62 val xname: xstring parser |
104 |
101 |
105 structure T = OuterLex; |
102 structure T = OuterLex; |
106 type token = T.token; |
103 type token = T.token; |
107 |
104 |
108 type 'a parser = token list -> 'a * token list; |
105 type 'a parser = token list -> 'a * token list; |
|
106 type 'a context_parser = Context.generic * token list -> 'a * (Context.generic * token list); |
109 |
107 |
110 |
108 |
111 (** error handling **) |
109 (** error handling **) |
112 |
110 |
113 (* group atomic parsers (no cuts!) *) |
111 (* group atomic parsers (no cuts!) *) |