author | wenzelm |
Mon, 02 Sep 2024 15:23:12 +0200 | |
changeset 80801 | 090adcdceaae |
parent 73559 | 22b5ecb53dd9 |
permissions | -rw-r--r-- |
62930 | 1 |
(* Title: Pure/General/output_primitives.ML |
2 |
Author: Makarius |
|
3 |
||
4 |
Primitives for Isabelle output channels. |
|
5 |
*) |
|
6 |
||
7 |
signature OUTPUT_PRIMITIVES = |
|
8 |
sig |
|
9 |
type output = string |
|
10 |
type serial = int |
|
11 |
type properties = (string * string) list |
|
65301
fca593a62785
restore output channels after shutdown, e.g. relevant for saved heap;
wenzelm
parents:
62933
diff
changeset
|
12 |
val ignore_outputs: output list -> unit |
62930 | 13 |
val writeln_fn: output list -> unit |
14 |
val state_fn: output list -> unit |
|
15 |
val information_fn: output list -> unit |
|
16 |
val tracing_fn: output list -> unit |
|
17 |
val warning_fn: output list -> unit |
|
18 |
val legacy_fn: output list -> unit |
|
19 |
val error_message_fn: serial * output list -> unit |
|
20 |
val system_message_fn: output list -> unit |
|
21 |
val status_fn: output list -> unit |
|
22 |
val report_fn: output list -> unit |
|
23 |
val result_fn: properties -> output list -> unit |
|
73559 | 24 |
type protocol_message_fn = properties -> XML.body list -> unit |
70991
f9f7c34b7dd4
more scalable protocol_message: use XML.body directly (Output.output hook is not required);
wenzelm
parents:
65301
diff
changeset
|
25 |
val protocol_message_fn: protocol_message_fn |
62933
f14569a9ab93
proper output of markup, e.g. relevant for nested ML as used in Pure/System/bash.ML;
wenzelm
parents:
62930
diff
changeset
|
26 |
val markup_fn: string * properties -> output * output |
62930 | 27 |
end; |
28 |
||
29 |
structure Output_Primitives: OUTPUT_PRIMITIVES = |
|
30 |
struct |
|
31 |
||
70991
f9f7c34b7dd4
more scalable protocol_message: use XML.body directly (Output.output hook is not required);
wenzelm
parents:
65301
diff
changeset
|
32 |
(* output *) |
f9f7c34b7dd4
more scalable protocol_message: use XML.body directly (Output.output hook is not required);
wenzelm
parents:
65301
diff
changeset
|
33 |
|
62930 | 34 |
type output = string; |
35 |
type serial = int; |
|
36 |
type properties = (string * string) list; |
|
37 |
||
38 |
fun ignore_outputs (_: output list) = (); |
|
39 |
||
40 |
val writeln_fn = ignore_outputs; |
|
41 |
val state_fn = ignore_outputs; |
|
42 |
val information_fn = ignore_outputs; |
|
43 |
val tracing_fn = ignore_outputs; |
|
44 |
val warning_fn = ignore_outputs; |
|
45 |
val legacy_fn = ignore_outputs; |
|
46 |
fun error_message_fn (_: serial, _: output list) = (); |
|
47 |
val system_message_fn = ignore_outputs; |
|
48 |
val status_fn = ignore_outputs; |
|
49 |
val report_fn = ignore_outputs; |
|
50 |
fun result_fn (_: properties) = ignore_outputs; |
|
70991
f9f7c34b7dd4
more scalable protocol_message: use XML.body directly (Output.output hook is not required);
wenzelm
parents:
65301
diff
changeset
|
51 |
|
73559 | 52 |
type protocol_message_fn = properties -> XML.body list -> unit; |
70991
f9f7c34b7dd4
more scalable protocol_message: use XML.body directly (Output.output hook is not required);
wenzelm
parents:
65301
diff
changeset
|
53 |
val protocol_message_fn: protocol_message_fn = fn _ => fn _ => (); |
62930 | 54 |
|
62933
f14569a9ab93
proper output of markup, e.g. relevant for nested ML as used in Pure/System/bash.ML;
wenzelm
parents:
62930
diff
changeset
|
55 |
fun markup_fn (_: string * properties) = ("", ""); |
f14569a9ab93
proper output of markup, e.g. relevant for nested ML as used in Pure/System/bash.ML;
wenzelm
parents:
62930
diff
changeset
|
56 |
|
62930 | 57 |
end; |