equal
deleted
inserted
replaced
54 fun unparse (Token (Traceability, s, _)) = "For " ^ s ^ ":" |
54 fun unparse (Token (Traceability, s, _)) = "For " ^ s ^ ":" |
55 | unparse (Token (_, s, _)) = s; |
55 | unparse (Token (_, s, _)) = s; |
56 |
56 |
57 fun position_of (Token (_, _, pos)) = pos; |
57 fun position_of (Token (_, _, pos)) = pos; |
58 |
58 |
59 val pos_of = Position.str_of o position_of; |
59 val pos_of = Position.here o position_of; |
60 |
60 |
61 fun is_eof (Token (EOF, _, _)) = true |
61 fun is_eof (Token (EOF, _, _)) = true |
62 | is_eof _ = false; |
62 | is_eof _ = false; |
63 |
63 |
64 fun mk_eof pos = Token (EOF, "", pos); |
64 fun mk_eof pos = Token (EOF, "", pos); |
190 end; |
190 end; |
191 |
191 |
192 fun !!! text scan = |
192 fun !!! text scan = |
193 let |
193 let |
194 fun get_pos [] = " (end-of-input)" |
194 fun get_pos [] = " (end-of-input)" |
195 | get_pos ((_, pos) :: _) = Position.str_of pos; |
195 | get_pos ((_, pos) :: _) = Position.here pos; |
196 |
196 |
197 fun err (syms, msg) = fn () => |
197 fun err (syms, msg) = fn () => |
198 text ^ get_pos syms ^ " at " ^ beginning 10 (map symbol syms) ^ |
198 text ^ get_pos syms ^ " at " ^ beginning 10 (map symbol syms) ^ |
199 (case msg of NONE => "" | SOME m => "\n" ^ m ()); |
199 (case msg of NONE => "" | SOME m => "\n" ^ m ()); |
200 in Scan.!! err scan end; |
200 in Scan.!! err scan end; |