src/Pure/Syntax/symbol_font.ML
changeset 2913 ce271fa4d8e2
parent 2769 77903c147673
child 2942 ada10e31bf66
equal deleted inserted replaced
2912:3fac3e8d5d3e 2913:ce271fa4d8e2
     9 signature SYMBOL_FONT =
     9 signature SYMBOL_FONT =
    10 sig
    10 sig
    11   val char: string -> string option
    11   val char: string -> string option
    12   val name: string -> string option
    12   val name: string -> string option
    13   val read_charnames: string list -> string list
    13   val read_charnames: string list -> string list
    14   val write_charnames:  string list -> string list	(*normal backslashes*)
    14   val read_chnames: string -> string
    15   val write_charnames':  string list -> string list	(*escaped backslashes*)
    15   val write_charnames: string list -> string list	(*normal backslashes*)
       
    16   val write_chnames: string -> string
       
    17   val write_charnames': string list -> string list	(*escaped backslashes*)
       
    18   val write_chnames': string -> string
    16 end;
    19 end;
    17 
    20 
    18 
    21 
    19 structure SymbolFont : SYMBOL_FONT =
    22 structure SymbolFont : SYMBOL_FONT =
    20 struct
    23 struct
    76     | scan_symbol _ = raise LEXICAL_ERROR;
    79     | scan_symbol _ = raise LEXICAL_ERROR;
    77 in
    80 in
    78   fun read_charnames chs =
    81   fun read_charnames chs =
    79     if forall (not_equal "\\") chs then chs
    82     if forall (not_equal "\\") chs then chs
    80     else #1 (repeat (scan_symbol || scan_one (K true)) chs);
    83     else #1 (repeat (scan_symbol || scan_one (K true)) chs);
       
    84 
       
    85   val read_chnames = implode o read_charnames o explode;
    81 end;
    86 end;
    82 
    87 
    83 
    88 
    84 (* write_charnames *)
    89 (* write_charnames *)
    85 
    90 
    93   else map (write_char prfx) chs;
    98   else map (write_char prfx) chs;
    94 
    99 
    95 val write_charnames = write_chars "";
   100 val write_charnames = write_chars "";
    96 val write_charnames' = write_chars "\\";
   101 val write_charnames' = write_chars "\\";
    97 
   102 
       
   103 val write_chnames = implode o write_charnames o explode;
       
   104 val write_chnames' = implode o write_charnames' o explode;
    98 
   105 
    99 end;
   106 end;