equal
deleted
inserted
replaced
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 *) |