src/Pure/General/symbol.ML
changeset 67512 166c1659ac75
parent 67428 dd8e40f46962
child 67522 9e712280cc37
equal deleted inserted replaced
67511:a6f5a78712af 67512:166c1659ac75
    64   val split_words: symbol list -> string list
    64   val split_words: symbol list -> string list
    65   val explode_words: string -> string list
    65   val explode_words: string -> string list
    66   val trim_blanks: string -> string
    66   val trim_blanks: string -> string
    67   val bump_init: string -> string
    67   val bump_init: string -> string
    68   val bump_string: string -> string
    68   val bump_string: string -> string
       
    69   val sub: symbol
       
    70   val sup: symbol
       
    71   val bold: symbol
       
    72   val make_sub: string -> string
       
    73   val make_sup: string -> string
       
    74   val make_bold: string -> string
    69   val length: symbol list -> int
    75   val length: symbol list -> int
    70   val output: string -> Output.output * int
    76   val output: string -> Output.output * int
    71 end;
    77 end;
    72 
    78 
    73 structure Symbol: SYMBOL =
    79 structure Symbol: SYMBOL =
   462     val (ss, qs) = apfst rev (take_suffix is_quasi (Symbol.explode str));
   468     val (ss, qs) = apfst rev (take_suffix is_quasi (Symbol.explode str));
   463     val ss' = if symbolic_end ss then "'" :: ss else bump ss;
   469     val ss' = if symbolic_end ss then "'" :: ss else bump ss;
   464   in implode (rev ss' @ qs) end;
   470   in implode (rev ss' @ qs) end;
   465 
   471 
   466 
   472 
       
   473 (* styles *)
       
   474 
       
   475 val sub = "\092<^sub>";
       
   476 val sup = "\092<^sup>";
       
   477 val bold = "\092<^bold>";
       
   478 
       
   479 fun make_style sym =
       
   480   Symbol.explode #> maps (fn s => [sym, s]) #> implode;
       
   481 
       
   482 val make_sub = make_style sub;
       
   483 val make_sup = make_style sup;
       
   484 val make_bold = make_style bold;
       
   485 
       
   486 
   467 
   487 
   468 (** symbol output **)
   488 (** symbol output **)
   469 
   489 
   470 (* length *)
   490 (* length *)
   471 
   491