equal
deleted
inserted
replaced
189 |> implode) ^ dots |
189 |> implode) ^ dots |
190 end; |
190 end; |
191 |
191 |
192 fun !!! text scan = |
192 fun !!! text scan = |
193 let |
193 let |
194 fun get_pos [] = " (past end-of-text!)" |
194 fun get_pos [] = " (end-of-input)" |
195 | get_pos ((_, pos) :: _) = Position.str_of pos; |
195 | get_pos ((_, pos) :: _) = Position.str_of 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 ()); |