src/Pure/Thy/document_source.ML
changeset 69891 def3ec9cdb7e
parent 69887 b9985133805d
child 70134 e69f00f4b897
equal deleted inserted replaced
69890:cb643a1a5313 69891:def3ec9cdb7e
    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;