equal
deleted
inserted
replaced
96 val scan_id = Symbol_Pos.scan_ident; |
96 val scan_id = Symbol_Pos.scan_ident; |
97 val scan_longid = scan_id @@@ (Scan.repeat1 ($$$ "." @@@ scan_id) >> flat); |
97 val scan_longid = scan_id @@@ (Scan.repeat1 ($$$ "." @@@ scan_id) >> flat); |
98 val scan_tid = $$$ "'" @@@ scan_id; |
98 val scan_tid = $$$ "'" @@@ scan_id; |
99 |
99 |
100 val scan_nat = Scan.many1 (Symbol.is_digit o Symbol_Pos.symbol); |
100 val scan_nat = Scan.many1 (Symbol.is_digit o Symbol_Pos.symbol); |
|
101 val scan_float = scan_nat @@@ $$$ "." @@@ scan_nat; |
101 val scan_int = $$$ "-" @@@ scan_nat || scan_nat; |
102 val scan_int = $$$ "-" @@@ scan_nat || scan_nat; |
102 val scan_natdot = scan_nat @@@ $$$ "." @@@ scan_nat; |
|
103 val scan_float = $$$ "-" @@@ scan_natdot || scan_natdot; |
|
104 val scan_hex = $$$ "0" @@@ $$$ "x" @@@ Scan.many1 (Symbol.is_ascii_hex o Symbol_Pos.symbol); |
103 val scan_hex = $$$ "0" @@@ $$$ "x" @@@ Scan.many1 (Symbol.is_ascii_hex o Symbol_Pos.symbol); |
105 val scan_bin = $$$ "0" @@@ $$$ "b" @@@ Scan.many1 (fn (s, _) => s = "0" orelse s = "1"); |
104 val scan_bin = $$$ "0" @@@ $$$ "b" @@@ Scan.many1 (fn (s, _) => s = "0" orelse s = "1"); |
106 |
105 |
107 val scan_id_nat = scan_id @@@ Scan.optional ($$$ "." @@@ scan_nat) []; |
106 val scan_id_nat = scan_id @@@ Scan.optional ($$$ "." @@@ scan_nat) []; |
108 val scan_var = $$$ "?" @@@ scan_id_nat; |
107 val scan_var = $$$ "?" @@@ scan_id_nat; |
262 let |
261 let |
263 val scan_xid = |
262 val scan_xid = |
264 (if xids then $$$ "_" @@@ scan_id || scan_id else scan_id) || |
263 (if xids then $$$ "_" @@@ scan_id || scan_id else scan_id) || |
265 $$$ "_" @@@ $$$ "_"; |
264 $$$ "_" @@@ $$$ "_"; |
266 |
265 |
267 val scan_num = scan_hex || scan_bin || scan_int; |
266 val scan_num_unsigned = scan_hex || scan_bin || scan_nat; |
|
267 val scan_num_signed = scan_hex || scan_bin || scan_int; |
268 |
268 |
269 val scan_val = |
269 val scan_val = |
270 scan_tvar >> token TVarSy || |
270 scan_tvar >> token TVarSy || |
271 scan_var >> token VarSy || |
271 scan_var >> token VarSy || |
272 scan_tid >> token TFreeSy || |
272 scan_tid >> token TFreeSy || |
273 scan_float >> token FloatSy || |
273 scan_float >> token FloatSy || |
274 scan_num >> token NumSy || |
274 scan_num_unsigned >> token NumSy || |
275 $$$ "#" @@@ scan_num >> token XNumSy || |
275 $$$ "#" @@@ scan_num_signed >> token XNumSy || |
276 scan_longid >> token LongIdentSy || |
276 scan_longid >> token LongIdentSy || |
277 scan_xid >> token IdentSy; |
277 scan_xid >> token IdentSy; |
278 |
278 |
279 val scan_lit = Scan.literal lex >> token Literal; |
279 val scan_lit = Scan.literal lex >> token Literal; |
280 |
280 |