src/Pure/library.ML
changeset 12419 6a7ee57447aa
parent 12346 e7b1956f4eae
child 12795 fc716621f19d
equal deleted inserted replaced
12418:753054ec8e88 12419:6a7ee57447aa
   157   val commas_quote: string list -> string
   157   val commas_quote: string list -> string
   158   val cat_lines: string list -> string
   158   val cat_lines: string list -> string
   159   val space_explode: string -> string -> string list
   159   val space_explode: string -> string -> string list
   160   val std_output: string -> unit
   160   val std_output: string -> unit
   161   val std_error: string -> unit
   161   val std_error: string -> unit
       
   162   val writeln_default: string -> unit
   162   val prefix_lines: string -> string -> string
   163   val prefix_lines: string -> string -> string
   163   val split_lines: string -> string list
   164   val split_lines: string -> string list
   164   val untabify: string list -> string list
   165   val untabify: string list -> string list
   165   val suffix: string -> string -> string
   166   val suffix: string -> string -> string
   166   val unsuffix: string -> string -> string
   167   val unsuffix: string -> string -> string
  1137 val pwd = OS.FileSys.getDir;
  1138 val pwd = OS.FileSys.getDir;
  1138 
  1139 
  1139 fun std_output s = (TextIO.output (TextIO.stdOut, s); TextIO.flushOut TextIO.stdOut);
  1140 fun std_output s = (TextIO.output (TextIO.stdOut, s); TextIO.flushOut TextIO.stdOut);
  1140 fun std_error s = (TextIO.output (TextIO.stdErr, s); TextIO.flushOut TextIO.stdErr);
  1141 fun std_error s = (TextIO.output (TextIO.stdErr, s); TextIO.flushOut TextIO.stdErr);
  1141 
  1142 
  1142 fun prefix_lines prfx txt =
  1143 fun prefix_lines "" txt = txt
  1143   txt |> split_lines |> map (fn s => prfx ^ s) |> cat_lines;
  1144   | prefix_lines prfx txt = txt |> split_lines |> map (fn s => prfx ^ s) |> cat_lines;
  1144 
  1145 
  1145 (*hooks for output channels: normal, warning, error*)
  1146 val writeln_default = std_output o suffix "\n";
  1146 val writeln_fn = ref (std_output o suffix "\n");
  1147 
       
  1148 (*hooks for various output channels*)
       
  1149 val writeln_fn = ref writeln_default;
  1147 val priority_fn = ref (fn s => ! writeln_fn s);
  1150 val priority_fn = ref (fn s => ! writeln_fn s);
  1148 val tracing_fn = ref (fn s => ! writeln_fn s);
  1151 val tracing_fn = ref (fn s => ! writeln_fn s);
  1149 val warning_fn = ref (std_output o suffix "\n" o prefix_lines "### ");
  1152 val warning_fn = ref (std_output o suffix "\n" o prefix_lines "### ");
  1150 val error_fn = ref (std_output o suffix "\n" o prefix_lines "*** ");
  1153 val error_fn = ref (std_output o suffix "\n" o prefix_lines "*** ");
  1151 
  1154