equal
deleted
inserted
replaced
12 val group: string -> (token list -> 'a) -> token list -> 'a |
12 val group: string -> (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 !!!! : (token list -> 'a) -> token list -> 'a |
15 val $$$ : string -> token list -> string * token list |
15 val $$$ : string -> token list -> string * token list |
16 val semicolon: token list -> string * token list |
16 val semicolon: token list -> string * token list |
|
17 val underscore: token list -> string * token list |
17 val position: (token list -> 'a * 'b) -> token list -> ('a * Position.T) * 'b |
18 val position: (token list -> 'a * 'b) -> token list -> ('a * Position.T) * 'b |
18 val command: token list -> string * token list |
19 val command: token list -> string * token list |
19 val keyword: token list -> string * token list |
20 val keyword: token list -> string * token list |
20 val short_ident: token list -> string * token list |
21 val short_ident: token list -> string * token list |
21 val long_ident: token list -> string * token list |
22 val long_ident: token list -> string * token list |
141 group (T.str_of_kind T.Keyword ^ " " ^ quote x) |
142 group (T.str_of_kind T.Keyword ^ " " ^ quote x) |
142 (Scan.one (T.keyword_with (equal x)) >> T.val_of); |
143 (Scan.one (T.keyword_with (equal x)) >> T.val_of); |
143 |
144 |
144 val semicolon = $$$ ";"; |
145 val semicolon = $$$ ";"; |
145 |
146 |
|
147 val underscore = sym_ident :-- (fn "_" => Scan.succeed () | _ => Scan.fail) >> #1; |
|
148 |
146 val nat = number >> (fst o Term.read_int o Symbol.explode); |
149 val nat = number >> (fst o Term.read_int o Symbol.explode); |
147 |
150 |
148 val not_eof = Scan.one T.not_eof; |
151 val not_eof = Scan.one T.not_eof; |
149 |
152 |
150 val opt_unit = Scan.optional ($$$ "(" -- $$$ ")" >> (K ())) (); |
153 val opt_unit = Scan.optional ($$$ "(" -- $$$ ")" >> (K ())) (); |