equal
deleted
inserted
replaced
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 |