equal
deleted
inserted
replaced
188 keep_line (Scan.one Symbol.is_blank); |
188 keep_line (Scan.one Symbol.is_blank); |
189 |
189 |
190 |
190 |
191 (* scan symbolic idents *) |
191 (* scan symbolic idents *) |
192 |
192 |
193 val sym_chars = explode "!#$%&*+-/:<=>?@^_|~"; |
193 val sym_chars = explode "!#$%&*+-/<=>?@^_|~"; |
194 fun is_sym_char s = s mem sym_chars; |
194 fun is_sym_char s = s mem sym_chars; |
195 |
195 |
196 val scan_symid = |
196 val scan_symid = |
197 Scan.any1 is_sym_char >> implode || |
197 Scan.any1 is_sym_char >> implode || |
198 Scan.one Symbol.is_symbolic; |
198 Scan.one Symbol.is_symbolic; |
201 (case try Symbol.explode str of |
201 (case try Symbol.explode str of |
202 SOME [s] => Symbol.is_symbolic s orelse is_sym_char s |
202 SOME [s] => Symbol.is_symbolic s orelse is_sym_char s |
203 | SOME ss => forall is_sym_char ss |
203 | SOME ss => forall is_sym_char ss |
204 | _ => false); |
204 | _ => false); |
205 |
205 |
206 val is_sid = is_symid orf Syntax.is_identifier; |
206 fun is_sid s = s = ":" orelse is_symid s orelse Syntax.is_identifier s; |
207 |
207 |
208 |
208 |
209 (* scan strings *) |
209 (* scan strings *) |
210 |
210 |
211 local |
211 local |