equal
deleted
inserted
replaced
136 (* scan symbolic idents *) |
136 (* scan symbolic idents *) |
137 |
137 |
138 val sym_chars = explode "!#$%&*+-/:<=>?@^_`|~"; |
138 val sym_chars = explode "!#$%&*+-/:<=>?@^_`|~"; |
139 fun is_sym_char s = s mem sym_chars; |
139 fun is_sym_char s = s mem sym_chars; |
140 |
140 |
141 val scan_symid = Scan.any1 is_sym_char >> implode; |
141 val scan_symid = |
142 |
142 Scan.any1 is_sym_char >> implode || |
143 fun is_symid s = s <> "" andalso forall is_sym_char (Symbol.explode s); |
143 Scan.one Symbol.is_symbolic; |
|
144 |
|
145 fun is_symid str = |
|
146 (case try Symbol.explode str of |
|
147 Some [s] => Symbol.is_symbolic s orelse is_sym_char s |
|
148 | Some ss => forall is_sym_char ss |
|
149 | _ => false); |
|
150 |
144 val is_sid = is_symid orf Syntax.is_identifier; |
151 val is_sid = is_symid orf Syntax.is_identifier; |
145 |
152 |
146 |
153 |
147 (* scan strings *) |
154 (* scan strings *) |
148 |
155 |