equal
deleted
inserted
replaced
|
1 (* Title: Pure/PIDE/protocol_message.ML |
|
2 Author: Makarius |
|
3 |
|
4 Auxiliary operations on protocol messages. |
|
5 *) |
|
6 |
|
7 signature PROTOCOL_MESSAGE = |
|
8 sig |
|
9 val command_positions: string -> XML.body -> XML.body |
|
10 val command_positions_yxml: string -> string -> string |
|
11 end; |
|
12 |
|
13 structure Protocol_Message: PROTOCOL_MESSAGE = |
|
14 struct |
|
15 |
|
16 fun command_positions id = |
|
17 let |
|
18 fun attribute (a, b) = |
|
19 if a = Markup.idN andalso b = Markup.commandN then (a, id) else (a, b); |
|
20 fun tree (XML.Elem ((a, atts), ts)) = XML.Elem ((a, map attribute atts), map tree ts) |
|
21 | tree text = text; |
|
22 in map tree end; |
|
23 |
|
24 fun command_positions_yxml id = |
|
25 YXML.string_of_body o command_positions id o YXML.parse_body; |
|
26 |
|
27 end; |