equal
deleted
inserted
replaced
24 val minus: string parser |
24 val minus: string parser |
25 val term_var: string parser |
25 val term_var: string parser |
26 val type_ident: string parser |
26 val type_ident: string parser |
27 val type_var: string parser |
27 val type_var: string parser |
28 val number: string parser |
28 val number: string parser |
|
29 val float_number: string parser |
29 val string: string parser |
30 val string: string parser |
30 val alt_string: string parser |
31 val alt_string: string parser |
31 val verbatim: string parser |
32 val verbatim: string parser |
32 val sync: string parser |
33 val sync: string parser |
33 val eof: string parser |
34 val eof: string parser |
44 val opt_keyword: string -> bool parser |
45 val opt_keyword: string -> bool parser |
45 val begin: string parser |
46 val begin: string parser |
46 val opt_begin: bool parser |
47 val opt_begin: bool parser |
47 val nat: int parser |
48 val nat: int parser |
48 val int: int parser |
49 val int: int parser |
|
50 val real: real parser |
49 val enum: string -> 'a parser -> 'a list parser |
51 val enum: string -> 'a parser -> 'a list parser |
50 val enum1: string -> 'a parser -> 'a list parser |
52 val enum1: string -> 'a parser -> 'a list parser |
51 val and_list: 'a parser -> 'a list parser |
53 val and_list: 'a parser -> 'a list parser |
52 val and_list1: 'a parser -> 'a list parser |
54 val and_list1: 'a parser -> 'a list parser |
53 val enum': string -> 'a context_parser -> 'a list context_parser |
55 val enum': string -> 'a context_parser -> 'a list context_parser |
166 val sym_ident = kind Token.SymIdent; |
168 val sym_ident = kind Token.SymIdent; |
167 val term_var = kind Token.Var; |
169 val term_var = kind Token.Var; |
168 val type_ident = kind Token.TypeIdent; |
170 val type_ident = kind Token.TypeIdent; |
169 val type_var = kind Token.TypeVar; |
171 val type_var = kind Token.TypeVar; |
170 val number = kind Token.Nat; |
172 val number = kind Token.Nat; |
|
173 val float_number = kind Token.Float; |
171 val string = kind Token.String; |
174 val string = kind Token.String; |
172 val alt_string = kind Token.AltString; |
175 val alt_string = kind Token.AltString; |
173 val verbatim = kind Token.Verbatim; |
176 val verbatim = kind Token.Verbatim; |
174 val sync = kind Token.Sync; |
177 val sync = kind Token.Sync; |
175 val eof = kind Token.EOF; |
178 val eof = kind Token.EOF; |
190 val underscore = sym_ident :-- (fn "_" => Scan.succeed () | _ => Scan.fail) >> #1; |
193 val underscore = sym_ident :-- (fn "_" => Scan.succeed () | _ => Scan.fail) >> #1; |
191 fun maybe scan = underscore >> K NONE || scan >> SOME; |
194 fun maybe scan = underscore >> K NONE || scan >> SOME; |
192 |
195 |
193 val nat = number >> (#1 o Library.read_int o Symbol.explode); |
196 val nat = number >> (#1 o Library.read_int o Symbol.explode); |
194 val int = Scan.optional (minus >> K ~1) 1 -- nat >> op *; |
197 val int = Scan.optional (minus >> K ~1) 1 -- nat >> op *; |
|
198 val real = float_number >> (the o Real.fromString); |
195 |
199 |
196 val tag_name = group "tag name" (short_ident || string); |
200 val tag_name = group "tag name" (short_ident || string); |
197 val tags = Scan.repeat ($$$ "%" |-- !!! tag_name); |
201 val tags = Scan.repeat ($$$ "%" |-- !!! tag_name); |
198 |
202 |
199 val opt_unit = Scan.optional ($$$ "(" -- $$$ ")" >> (K ())) (); |
203 val opt_unit = Scan.optional ($$$ "(" -- $$$ ")" >> (K ())) (); |