equal
deleted
inserted
replaced
15 val improper_end: Token.T list parser |
15 val improper_end: Token.T list parser |
16 val blank_end: Token.T list parser |
16 val blank_end: Token.T list parser |
17 val get_tags: Proof.context -> string list |
17 val get_tags: Proof.context -> string list |
18 val update_tags: string -> Proof.context -> Proof.context |
18 val update_tags: string -> Proof.context -> Proof.context |
19 val tags: string list parser |
19 val tags: string list parser |
20 val annotation: Input.source list parser |
20 val annotation: unit parser |
21 end; |
21 end; |
22 |
22 |
23 structure Document_Source: DOCUMENT_SOURCE = |
23 structure Document_Source: DOCUMENT_SOURCE = |
24 struct |
24 struct |
25 |
25 |
60 val tags = Scan.repeat tag; |
60 val tags = Scan.repeat tag; |
61 |
61 |
62 |
62 |
63 (* semantic markers (operation on presentation context) *) |
63 (* semantic markers (operation on presentation context) *) |
64 |
64 |
65 val marker = |
65 val marker = improper |-- Parse.document_marker --| blank_end; |
66 (improper -- Parse.$$$ "\<marker>" -- improper) |-- |
|
67 Parse.!!! (Parse.group (fn () => "document marker") (Parse.input Parse.embedded) --| blank_end); |
|
68 |
66 |
69 val tag_marker = (*emulation of old-style tags*) |
67 val annotation = Scan.repeat (tag >> K () || marker >> K ()) >> K (); |
70 tag >> (fn name => Input.string ("tag " ^ Symbol_Pos.quote_string_qq name)); |
|
71 |
|
72 val annotation = Scan.repeat (marker || tag_marker); |
|
73 |
68 |
74 end; |
69 end; |