src/Pure/Syntax/term_position.ML
changeset 81251 89ea66c2045b
parent 81232 9867b5cf3f7a
child 81558 b57996a0688c
equal deleted inserted replaced
81250:08e0d3f248f9 81251:89ea66c2045b
     1 (*  Title:      Pure/Syntax/term_position.ML
     1 (*  Title:      Pure/Syntax/term_position.ML
     2     Author:     Makarius
     2     Author:     Makarius
     3 
     3 
     4 Positions within term syntax trees (non-empty list).
     4 Reported positions within term syntax trees (non-empty list).
     5 *)
     5 *)
     6 
     6 
     7 signature TERM_POSITION =
     7 signature TERM_POSITION =
     8 sig
     8 sig
     9   val pretty: Position.T list -> Pretty.T
     9   val pretty: Position.T list -> Pretty.T
    42 (* encode *)
    42 (* encode *)
    43 
    43 
    44 val encode_none = YXML.string_of (encode_pos Position.none);
    44 val encode_none = YXML.string_of (encode_pos Position.none);
    45 
    45 
    46 fun encode ps =
    46 fun encode ps =
    47   (case remove (op =) Position.none ps of
    47   (case filter Position.is_reported ps of
    48     [] => encode_none
    48     [] => encode_none
    49   | ps' => YXML.string_of_body (map encode_pos (distinct (op =) ps')));
    49   | ps' => YXML.string_of_body (map encode_pos ps'));
    50 
    50 
    51 val encode_prefix = YXML.XY ^ Markup.positionN;
    51 val encode_prefix = YXML.XY ^ Markup.positionN;
    52 
    52 
    53 
    53 
    54 (* decode *)
    54 (* decode *)