src/HOL/SPARK/Tools/fdl_lexer.ML
changeset 48992 0518bf89c777
parent 48911 5debc3e4fa81
child 55106 080c0006e917
equal deleted inserted replaced
48991:0350245dec1c 48992:0518bf89c777
    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;