| author | nipkow | 
| Thu, 19 Apr 2012 17:32:30 +0200 | |
| changeset 47602 | 3d44790b5ab0 | 
| parent 47395 | e6261a493f04 | 
| child 48709 | 719f458cd89e | 
| permissions | -rw-r--r-- | 
| 45670 | 1  | 
(* Title: Pure/PIDE/isabelle_markup.ML  | 
| 23623 | 2  | 
Author: Makarius  | 
3  | 
||
| 45666 | 4  | 
Isabelle markup elements.  | 
| 23623 | 5  | 
*)  | 
6  | 
||
| 45666 | 7  | 
signature ISABELLE_MARKUP =  | 
| 23623 | 8  | 
sig  | 
| 45666 | 9  | 
val bindingN: string val binding: Markup.T  | 
10  | 
val entityN: string val entity: string -> string -> Markup.T  | 
|
11  | 
val get_entity_kind: Markup.T -> string option  | 
|
| 
33088
 
757d7787b10c
markup for formal entities, with "def" or "ref" occurrences;
 
wenzelm 
parents: 
32738 
diff
changeset
 | 
12  | 
val defN: string  | 
| 
 
757d7787b10c
markup for formal entities, with "def" or "ref" occurrences;
 
wenzelm 
parents: 
32738 
diff
changeset
 | 
13  | 
val refN: string  | 
| 23671 | 14  | 
val lineN: string  | 
| 27794 | 15  | 
val offsetN: string  | 
16  | 
val end_offsetN: string  | 
|
| 23671 | 17  | 
val fileN: string  | 
| 30221 | 18  | 
val idN: string  | 
| 27748 | 19  | 
val position_properties': string list  | 
| 26051 | 20  | 
val position_properties: string list  | 
| 45666 | 21  | 
val positionN: string val position: Markup.T  | 
22  | 
val pathN: string val path: string -> Markup.T  | 
|
| 23644 | 23  | 
val indentN: string  | 
| 45666 | 24  | 
val blockN: string val block: int -> Markup.T  | 
| 23695 | 25  | 
val widthN: string  | 
| 45666 | 26  | 
val breakN: string val break: int -> Markup.T  | 
27  | 
val fbreakN: string val fbreak: Markup.T  | 
|
28  | 
val hiddenN: string val hidden: Markup.T  | 
|
| 
43548
 
f231a7594e54
type classes: entity markup instead of old-style token markup;
 
wenzelm 
parents: 
43547 
diff
changeset
 | 
29  | 
val classN: string  | 
| 
46649
 
bb185c45037e
clarifed name space "type name", which covers logical and non-logical types, and often occurs inside outer syntax "type" markup;
 
wenzelm 
parents: 
46123 
diff
changeset
 | 
30  | 
val type_nameN: string  | 
| 43552 | 31  | 
val constantN: string  | 
| 45666 | 32  | 
val fixedN: string val fixed: string -> Markup.T  | 
33  | 
val dynamic_factN: string val dynamic_fact: string -> Markup.T  | 
|
34  | 
val tfreeN: string val tfree: Markup.T  | 
|
35  | 
val tvarN: string val tvar: Markup.T  | 
|
36  | 
val freeN: string val free: Markup.T  | 
|
37  | 
val skolemN: string val skolem: Markup.T  | 
|
38  | 
val boundN: string val bound: Markup.T  | 
|
39  | 
val varN: string val var: Markup.T  | 
|
40  | 
val numeralN: string val numeral: Markup.T  | 
|
41  | 
val literalN: string val literal: Markup.T  | 
|
42  | 
val delimiterN: string val delimiter: Markup.T  | 
|
43  | 
val inner_stringN: string val inner_string: Markup.T  | 
|
44  | 
val inner_commentN: string val inner_comment: Markup.T  | 
|
45  | 
val token_rangeN: string val token_range: Markup.T  | 
|
46  | 
val sortN: string val sort: Markup.T  | 
|
47  | 
val typN: string val typ: Markup.T  | 
|
48  | 
val termN: string val term: Markup.T  | 
|
49  | 
val propN: string val prop: Markup.T  | 
|
50  | 
val typingN: string val typing: Markup.T  | 
|
51  | 
val ML_keywordN: string val ML_keyword: Markup.T  | 
|
52  | 
val ML_delimiterN: string val ML_delimiter: Markup.T  | 
|
53  | 
val ML_tvarN: string val ML_tvar: Markup.T  | 
|
54  | 
val ML_numeralN: string val ML_numeral: Markup.T  | 
|
55  | 
val ML_charN: string val ML_char: Markup.T  | 
|
56  | 
val ML_stringN: string val ML_string: Markup.T  | 
|
57  | 
val ML_commentN: string val ML_comment: Markup.T  | 
|
58  | 
val ML_malformedN: string val ML_malformed: Markup.T  | 
|
| 
42327
 
7c7cc7590eb3
Name_Space.entry_markup: keep def position as separate properties;
 
wenzelm 
parents: 
42135 
diff
changeset
 | 
59  | 
val ML_defN: string  | 
| 
 
7c7cc7590eb3
Name_Space.entry_markup: keep def position as separate properties;
 
wenzelm 
parents: 
42135 
diff
changeset
 | 
60  | 
val ML_openN: string  | 
| 
 
7c7cc7590eb3
Name_Space.entry_markup: keep def position as separate properties;
 
wenzelm 
parents: 
42135 
diff
changeset
 | 
61  | 
val ML_structN: string  | 
| 45666 | 62  | 
val ML_typingN: string val ML_typing: Markup.T  | 
63  | 
val ML_sourceN: string val ML_source: Markup.T  | 
|
64  | 
val doc_sourceN: string val doc_source: Markup.T  | 
|
65  | 
val antiqN: string val antiq: Markup.T  | 
|
| 
43560
 
d1650e3720fd
ML antiquotations are managed as theory data, with proper name space and entity markup;
 
wenzelm 
parents: 
43552 
diff
changeset
 | 
66  | 
val ML_antiquotationN: string  | 
| 
43564
 
9864182c6bad
document antiquotations are managed as theory data, with proper name space and entity markup;
 
wenzelm 
parents: 
43560 
diff
changeset
 | 
67  | 
val doc_antiquotationN: string  | 
| 
 
9864182c6bad
document antiquotations are managed as theory data, with proper name space and entity markup;
 
wenzelm 
parents: 
43560 
diff
changeset
 | 
68  | 
val doc_antiquotation_optionN: string  | 
| 45666 | 69  | 
val keywordN: string val keyword: Markup.T  | 
70  | 
val operatorN: string val operator: Markup.T  | 
|
71  | 
val commandN: string val command: Markup.T  | 
|
72  | 
val stringN: string val string: Markup.T  | 
|
73  | 
val altstringN: string val altstring: Markup.T  | 
|
74  | 
val verbatimN: string val verbatim: Markup.T  | 
|
75  | 
val commentN: string val comment: Markup.T  | 
|
76  | 
val controlN: string val control: Markup.T  | 
|
77  | 
val malformedN: string val malformed: Markup.T  | 
|
78  | 
val tokenN: string val token: Properties.T -> Markup.T  | 
|
79  | 
val command_spanN: string val command_span: string -> Markup.T  | 
|
80  | 
val ignored_spanN: string val ignored_span: Markup.T  | 
|
81  | 
val malformed_spanN: string val malformed_span: Markup.T  | 
|
| 45674 | 82  | 
val elapsedN: string  | 
83  | 
val cpuN: string  | 
|
84  | 
val gcN: string  | 
|
85  | 
val timingN: string val timing: Timing.timing -> Markup.T  | 
|
| 
38721
 
ca8b14fa0d0d
added some proof state markup, notably number of subgoals (e.g. for indentation);
 
wenzelm 
parents: 
38474 
diff
changeset
 | 
86  | 
val subgoalsN: string  | 
| 45666 | 87  | 
val proof_stateN: string val proof_state: int -> Markup.T  | 
88  | 
val stateN: string val state: Markup.T  | 
|
89  | 
val subgoalN: string val subgoal: Markup.T  | 
|
90  | 
val sendbackN: string val sendback: Markup.T  | 
|
91  | 
val hiliteN: string val hilite: Markup.T  | 
|
| 29417 | 92  | 
val taskN: string  | 
| 
47395
 
e6261a493f04
added static command status markup, to emphasize accepted but unassigned/unparsed commands (notably in overview panel);
 
wenzelm 
parents: 
46910 
diff
changeset
 | 
93  | 
val acceptedN: string val accepted: Markup.T  | 
| 45666 | 94  | 
val forkedN: string val forked: Markup.T  | 
95  | 
val joinedN: string val joined: Markup.T  | 
|
96  | 
val failedN: string val failed: Markup.T  | 
|
97  | 
val finishedN: string val finished: Markup.T  | 
|
| 38871 | 98  | 
val serialN: string  | 
| 45666 | 99  | 
val legacyN: string val legacy: Markup.T  | 
100  | 
val promptN: string val prompt: Markup.T  | 
|
101  | 
val reportN: string val report: Markup.T  | 
|
102  | 
val no_reportN: string val no_report: Markup.T  | 
|
103  | 
val badN: string val bad: Markup.T  | 
|
| 43748 | 104  | 
val functionN: string  | 
| 46121 | 105  | 
val ready: Properties.T  | 
| 46122 | 106  | 
val loaded_theory: string -> Properties.T  | 
| 46123 | 107  | 
val keyword_decl: string -> Properties.T  | 
108  | 
val command_decl: string -> string -> Properties.T  | 
|
| 
44661
 
383c9d758a56
raw message function "assign_execs" avoids full overhead of decoding and caching message body;
 
wenzelm 
parents: 
44549 
diff
changeset
 | 
109  | 
val assign_execs: Properties.T  | 
| 44676 | 110  | 
val removed_versions: Properties.T  | 
| 43748 | 111  | 
val invoke_scala: string -> string -> Properties.T  | 
| 
44298
 
b8f8488704e2
Future.promise: explicit abort operation (like uninterruptible future job);
 
wenzelm 
parents: 
43797 
diff
changeset
 | 
112  | 
val cancel_scala: string -> Properties.T  | 
| 23623 | 113  | 
end;  | 
114  | 
||
| 45666 | 115  | 
structure Isabelle_Markup: ISABELLE_MARKUP =  | 
| 23623 | 116  | 
struct  | 
117  | 
||
| 30221 | 118  | 
(** markup elements **)  | 
119  | 
||
| 45666 | 120  | 
fun markup_elem elem = (elem, (elem, []): Markup.T);  | 
121  | 
fun markup_string elem prop = (elem, fn s => (elem, [(prop, s)]): Markup.T);  | 
|
122  | 
fun markup_int elem prop = (elem, fn i => (elem, [(prop, Markup.print_int i)]): Markup.T);  | 
|
| 23671 | 123  | 
|
| 23658 | 124  | 
|
| 
33088
 
757d7787b10c
markup for formal entities, with "def" or "ref" occurrences;
 
wenzelm 
parents: 
32738 
diff
changeset
 | 
125  | 
(* formal entities *)  | 
| 
 
757d7787b10c
markup for formal entities, with "def" or "ref" occurrences;
 
wenzelm 
parents: 
32738 
diff
changeset
 | 
126  | 
|
| 
43547
 
f3a8476285c6
clarified Binding.pretty/print: no quotes, only markup -- Binding.str_of is rendered obsolete;
 
wenzelm 
parents: 
43432 
diff
changeset
 | 
127  | 
val (bindingN, binding) = markup_elem "binding";  | 
| 42135 | 128  | 
|
129  | 
val entityN = "entity";  | 
|
| 45666 | 130  | 
fun entity kind name = (entityN, [(Markup.nameN, name), (Markup.kindN, kind)]);  | 
| 
33088
 
757d7787b10c
markup for formal entities, with "def" or "ref" occurrences;
 
wenzelm 
parents: 
32738 
diff
changeset
 | 
131  | 
|
| 
43548
 
f231a7594e54
type classes: entity markup instead of old-style token markup;
 
wenzelm 
parents: 
43547 
diff
changeset
 | 
132  | 
fun get_entity_kind (name, props) =  | 
| 45666 | 133  | 
if name = entityN then AList.lookup (op =) props Markup.kindN  | 
| 
43548
 
f231a7594e54
type classes: entity markup instead of old-style token markup;
 
wenzelm 
parents: 
43547 
diff
changeset
 | 
134  | 
else NONE;  | 
| 
 
f231a7594e54
type classes: entity markup instead of old-style token markup;
 
wenzelm 
parents: 
43547 
diff
changeset
 | 
135  | 
|
| 
33088
 
757d7787b10c
markup for formal entities, with "def" or "ref" occurrences;
 
wenzelm 
parents: 
32738 
diff
changeset
 | 
136  | 
val defN = "def";  | 
| 
 
757d7787b10c
markup for formal entities, with "def" or "ref" occurrences;
 
wenzelm 
parents: 
32738 
diff
changeset
 | 
137  | 
val refN = "ref";  | 
| 
 
757d7787b10c
markup for formal entities, with "def" or "ref" occurrences;
 
wenzelm 
parents: 
32738 
diff
changeset
 | 
138  | 
|
| 
 
757d7787b10c
markup for formal entities, with "def" or "ref" occurrences;
 
wenzelm 
parents: 
32738 
diff
changeset
 | 
139  | 
|
| 23671 | 140  | 
(* position *)  | 
141  | 
||
142  | 
val lineN = "line";  | 
|
| 27794 | 143  | 
val offsetN = "offset";  | 
144  | 
val end_offsetN = "end_offset";  | 
|
| 23671 | 145  | 
val fileN = "file";  | 
| 25816 | 146  | 
val idN = "id";  | 
| 23671 | 147  | 
|
| 41484 | 148  | 
val position_properties' = [fileN, idN];  | 
| 
43710
 
7270ae921cf2
discontinued odd Position.column -- left-over from attempts at PGIP implementation;
 
wenzelm 
parents: 
43684 
diff
changeset
 | 
149  | 
val position_properties = [lineN, offsetN, end_offsetN] @ position_properties';  | 
| 27748 | 150  | 
|
| 25552 | 151  | 
val (positionN, position) = markup_elem "position";  | 
| 26255 | 152  | 
|
| 23644 | 153  | 
|
| 43593 | 154  | 
(* path *)  | 
155  | 
||
| 45666 | 156  | 
val (pathN, path) = markup_string "path" Markup.nameN;  | 
| 43593 | 157  | 
|
158  | 
||
| 23644 | 159  | 
(* pretty printing *)  | 
160  | 
||
161  | 
val indentN = "indent";  | 
|
162  | 
val (blockN, block) = markup_int "block" indentN;  | 
|
163  | 
||
164  | 
val widthN = "width";  | 
|
165  | 
val (breakN, break) = markup_int "break" widthN;  | 
|
166  | 
||
| 25552 | 167  | 
val (fbreakN, fbreak) = markup_elem "fbreak";  | 
| 23637 | 168  | 
|
169  | 
||
| 33985 | 170  | 
(* hidden text *)  | 
171  | 
||
172  | 
val (hiddenN, hidden) = markup_elem "hidden";  | 
|
173  | 
||
174  | 
||
| 23623 | 175  | 
(* logical entities *)  | 
176  | 
||
| 
43548
 
f231a7594e54
type classes: entity markup instead of old-style token markup;
 
wenzelm 
parents: 
43547 
diff
changeset
 | 
177  | 
val classN = "class";  | 
| 
46649
 
bb185c45037e
clarifed name space "type name", which covers logical and non-logical types, and often occurs inside outer syntax "type" markup;
 
wenzelm 
parents: 
46123 
diff
changeset
 | 
178  | 
val type_nameN = "type name";  | 
| 43552 | 179  | 
val constantN = "constant";  | 
180  | 
||
| 45666 | 181  | 
val (fixedN, fixed) = markup_string "fixed" Markup.nameN;  | 
182  | 
val (dynamic_factN, dynamic_fact) = markup_string "dynamic_fact" Markup.nameN;  | 
|
| 23623 | 183  | 
|
184  | 
||
185  | 
(* inner syntax *)  | 
|
186  | 
||
| 25552 | 187  | 
val (tfreeN, tfree) = markup_elem "tfree";  | 
188  | 
val (tvarN, tvar) = markup_elem "tvar";  | 
|
189  | 
val (freeN, free) = markup_elem "free";  | 
|
190  | 
val (skolemN, skolem) = markup_elem "skolem";  | 
|
191  | 
val (boundN, bound) = markup_elem "bound";  | 
|
192  | 
val (varN, var) = markup_elem "var";  | 
|
| 
29318
 
6337d1cb2ba0
added numeral, which supercedes num, xnum, float;
 
wenzelm 
parents: 
28904 
diff
changeset
 | 
193  | 
val (numeralN, numeral) = markup_elem "numeral";  | 
| 27804 | 194  | 
val (literalN, literal) = markup_elem "literal";  | 
| 
43432
 
224006e5ac46
inner literal/delimiter corresponds to outer keyword/operator;
 
wenzelm 
parents: 
42492 
diff
changeset
 | 
195  | 
val (delimiterN, delimiter) = markup_elem "delimiter";  | 
| 
29318
 
6337d1cb2ba0
added numeral, which supercedes num, xnum, float;
 
wenzelm 
parents: 
28904 
diff
changeset
 | 
196  | 
val (inner_stringN, inner_string) = markup_elem "inner_string";  | 
| 27883 | 197  | 
val (inner_commentN, inner_comment) = markup_elem "inner_comment";  | 
| 23719 | 198  | 
|
| 
39168
 
e3ac771235f7
report token range after inner parse error -- often provides important clues about misunderstanding concerning lexical phase;
 
wenzelm 
parents: 
38887 
diff
changeset
 | 
199  | 
val (token_rangeN, token_range) = markup_elem "token_range";  | 
| 
 
e3ac771235f7
report token range after inner parse error -- often provides important clues about misunderstanding concerning lexical phase;
 
wenzelm 
parents: 
38887 
diff
changeset
 | 
200  | 
|
| 25552 | 201  | 
val (sortN, sort) = markup_elem "sort";  | 
202  | 
val (typN, typ) = markup_elem "typ";  | 
|
203  | 
val (termN, term) = markup_elem "term";  | 
|
| 27818 | 204  | 
val (propN, prop) = markup_elem "prop";  | 
| 27748 | 205  | 
|
| 
45445
 
41e641a870de
pass term positions into check phase, where resulting types are reported accordingly, and eventually shown as tooltips;
 
wenzelm 
parents: 
44706 
diff
changeset
 | 
206  | 
val (typingN, typing) = markup_elem "typing";  | 
| 
 
41e641a870de
pass term positions into check phase, where resulting types are reported accordingly, and eventually shown as tooltips;
 
wenzelm 
parents: 
44706 
diff
changeset
 | 
207  | 
|
| 23623 | 208  | 
|
| 30614 | 209  | 
(* ML syntax *)  | 
210  | 
||
211  | 
val (ML_keywordN, ML_keyword) = markup_elem "ML_keyword";  | 
|
| 37195 | 212  | 
val (ML_delimiterN, ML_delimiter) = markup_elem "ML_delimiter";  | 
| 30614 | 213  | 
val (ML_tvarN, ML_tvar) = markup_elem "ML_tvar";  | 
214  | 
val (ML_numeralN, ML_numeral) = markup_elem "ML_numeral";  | 
|
215  | 
val (ML_charN, ML_char) = markup_elem "ML_char";  | 
|
216  | 
val (ML_stringN, ML_string) = markup_elem "ML_string";  | 
|
217  | 
val (ML_commentN, ML_comment) = markup_elem "ML_comment";  | 
|
218  | 
val (ML_malformedN, ML_malformed) = markup_elem "ML_malformed";  | 
|
219  | 
||
| 
42327
 
7c7cc7590eb3
Name_Space.entry_markup: keep def position as separate properties;
 
wenzelm 
parents: 
42135 
diff
changeset
 | 
220  | 
val ML_defN = "ML_def";  | 
| 
 
7c7cc7590eb3
Name_Space.entry_markup: keep def position as separate properties;
 
wenzelm 
parents: 
42135 
diff
changeset
 | 
221  | 
val ML_openN = "ML_open";  | 
| 
 
7c7cc7590eb3
Name_Space.entry_markup: keep def position as separate properties;
 
wenzelm 
parents: 
42135 
diff
changeset
 | 
222  | 
val ML_structN = "ML_struct";  | 
| 30702 | 223  | 
val (ML_typingN, ML_typing) = markup_elem "ML_typing";  | 
224  | 
||
| 30614 | 225  | 
|
| 27875 | 226  | 
(* embedded source text *)  | 
227  | 
||
228  | 
val (ML_sourceN, ML_source) = markup_elem "ML_source";  | 
|
229  | 
val (doc_sourceN, doc_source) = markup_elem "doc_source";  | 
|
230  | 
||
| 27879 | 231  | 
val (antiqN, antiq) = markup_elem "antiq";  | 
| 
43560
 
d1650e3720fd
ML antiquotations are managed as theory data, with proper name space and entity markup;
 
wenzelm 
parents: 
43552 
diff
changeset
 | 
232  | 
val ML_antiquotationN = "ML antiquotation";  | 
| 
43564
 
9864182c6bad
document antiquotations are managed as theory data, with proper name space and entity markup;
 
wenzelm 
parents: 
43560 
diff
changeset
 | 
233  | 
val doc_antiquotationN = "document antiquotation";  | 
| 
 
9864182c6bad
document antiquotations are managed as theory data, with proper name space and entity markup;
 
wenzelm 
parents: 
43560 
diff
changeset
 | 
234  | 
val doc_antiquotation_optionN = "document antiquotation option";  | 
| 27879 | 235  | 
|
| 27875 | 236  | 
|
| 23623 | 237  | 
(* outer syntax *)  | 
238  | 
||
| 37193 | 239  | 
val (keywordN, keyword) = markup_elem "keyword";  | 
| 37192 | 240  | 
val (operatorN, operator) = markup_elem "operator";  | 
| 37193 | 241  | 
val (commandN, command) = markup_elem "command";  | 
| 25552 | 242  | 
val (stringN, string) = markup_elem "string";  | 
243  | 
val (altstringN, altstring) = markup_elem "altstring";  | 
|
244  | 
val (verbatimN, verbatim) = markup_elem "verbatim";  | 
|
245  | 
val (commentN, comment) = markup_elem "comment";  | 
|
246  | 
val (controlN, control) = markup_elem "control";  | 
|
247  | 
val (malformedN, malformed) = markup_elem "malformed";  | 
|
| 23719 | 248  | 
|
| 38229 | 249  | 
val tokenN = "token";  | 
250  | 
fun token props = (tokenN, props);  | 
|
| 27851 | 251  | 
|
| 45666 | 252  | 
val (command_spanN, command_span) = markup_string "command_span" Markup.nameN;  | 
| 27660 | 253  | 
val (ignored_spanN, ignored_span) = markup_elem "ignored_span";  | 
| 27836 | 254  | 
val (malformed_spanN, malformed_span) = markup_elem "malformed_span";  | 
| 23719 | 255  | 
|
| 23623 | 256  | 
|
| 45674 | 257  | 
(* timing *)  | 
258  | 
||
259  | 
val timingN = "timing";  | 
|
260  | 
val elapsedN = "elapsed";  | 
|
261  | 
val cpuN = "cpu";  | 
|
262  | 
val gcN = "gc";  | 
|
263  | 
||
264  | 
fun timing {elapsed, cpu, gc} =
 | 
|
265  | 
(timingN,  | 
|
266  | 
[(elapsedN, Time.toString elapsed),  | 
|
267  | 
(cpuN, Time.toString cpu),  | 
|
268  | 
(gcN, Time.toString gc)]);  | 
|
269  | 
||
270  | 
||
| 
40394
 
6dcb6cbf0719
somewhat more uniform timing markup in ML vs. Scala;
 
wenzelm 
parents: 
40391 
diff
changeset
 | 
271  | 
(* toplevel *)  | 
| 
40391
 
b0dafbfc05b7
explicit "timing" status for toplevel transactions;
 
wenzelm 
parents: 
40131 
diff
changeset
 | 
272  | 
|
| 
38721
 
ca8b14fa0d0d
added some proof state markup, notably number of subgoals (e.g. for indentation);
 
wenzelm 
parents: 
38474 
diff
changeset
 | 
273  | 
val subgoalsN = "subgoals";  | 
| 
 
ca8b14fa0d0d
added some proof state markup, notably number of subgoals (e.g. for indentation);
 
wenzelm 
parents: 
38474 
diff
changeset
 | 
274  | 
val (proof_stateN, proof_state) = markup_int "proof_state" subgoalsN;  | 
| 
 
ca8b14fa0d0d
added some proof state markup, notably number of subgoals (e.g. for indentation);
 
wenzelm 
parents: 
38474 
diff
changeset
 | 
275  | 
|
| 25552 | 276  | 
val (stateN, state) = markup_elem "state";  | 
277  | 
val (subgoalN, subgoal) = markup_elem "subgoal";  | 
|
278  | 
val (sendbackN, sendback) = markup_elem "sendback";  | 
|
279  | 
val (hiliteN, hilite) = markup_elem "hilite";  | 
|
280  | 
||
281  | 
||
| 27606 | 282  | 
(* command status *)  | 
283  | 
||
| 29417 | 284  | 
val taskN = "task";  | 
285  | 
||
| 
47395
 
e6261a493f04
added static command status markup, to emphasize accepted but unassigned/unparsed commands (notably in overview panel);
 
wenzelm 
parents: 
46910 
diff
changeset
 | 
286  | 
val (acceptedN, accepted) = markup_elem "accepted";  | 
| 
37186
 
349e9223c685
explicit markup for forked goals, as indicated by Goal.fork;
 
wenzelm 
parents: 
34242 
diff
changeset
 | 
287  | 
val (forkedN, forked) = markup_elem "forked";  | 
| 
 
349e9223c685
explicit markup for forked goals, as indicated by Goal.fork;
 
wenzelm 
parents: 
34242 
diff
changeset
 | 
288  | 
val (joinedN, joined) = markup_elem "joined";  | 
| 
38429
 
9951852fae91
simplified command status: interpret stacked markup on demand;
 
wenzelm 
parents: 
38414 
diff
changeset
 | 
289  | 
|
| 27615 | 290  | 
val (failedN, failed) = markup_elem "failed";  | 
| 27606 | 291  | 
val (finishedN, finished) = markup_elem "finished";  | 
292  | 
||
| 29488 | 293  | 
|
| 27969 | 294  | 
(* messages *)  | 
295  | 
||
| 38871 | 296  | 
val serialN = "serial";  | 
| 27969 | 297  | 
|
| 44549 | 298  | 
val (legacyN, legacy) = markup_elem "legacy";  | 
| 27969 | 299  | 
val (promptN, prompt) = markup_elem "prompt";  | 
300  | 
||
| 
38887
 
1261481ef5e5
Command.State: add reported positions to markup tree, according main message position or Markup.binding/entity/report occurrences in body;
 
wenzelm 
parents: 
38871 
diff
changeset
 | 
301  | 
val (reportN, report) = markup_elem "report";  | 
| 
39439
 
1c294d150ded
eliminated markup "location" in favour of more explicit "no_report", which is actually deleted from messages;
 
wenzelm 
parents: 
39171 
diff
changeset
 | 
302  | 
val (no_reportN, no_report) = markup_elem "no_report";  | 
| 
38887
 
1261481ef5e5
Command.State: add reported positions to markup tree, according main message position or Markup.binding/entity/report occurrences in body;
 
wenzelm 
parents: 
38871 
diff
changeset
 | 
303  | 
|
| 
39171
 
525a13b9ac74
highlight bad range of nested error (here from inner parsing);
 
wenzelm 
parents: 
39168 
diff
changeset
 | 
304  | 
val (badN, bad) = markup_elem "bad";  | 
| 
 
525a13b9ac74
highlight bad range of nested error (here from inner parsing);
 
wenzelm 
parents: 
39168 
diff
changeset
 | 
305  | 
|
| 27969 | 306  | 
|
| 46774 | 307  | 
(* protocol message functions *)  | 
| 43748 | 308  | 
|
309  | 
val functionN = "function"  | 
|
310  | 
||
| 46121 | 311  | 
val ready = [(functionN, "ready")];  | 
312  | 
||
| 46122 | 313  | 
fun loaded_theory name = [(functionN, "loaded_theory"), (Markup.nameN, name)];  | 
314  | 
||
| 46123 | 315  | 
fun keyword_decl name = [(functionN, "keyword_decl"), (Markup.nameN, name)];  | 
316  | 
fun command_decl name kind =  | 
|
317  | 
[(functionN, "command_decl"), (Markup.nameN, name), (Markup.kindN, kind)];  | 
|
318  | 
||
| 
44661
 
383c9d758a56
raw message function "assign_execs" avoids full overhead of decoding and caching message body;
 
wenzelm 
parents: 
44549 
diff
changeset
 | 
319  | 
val assign_execs = [(functionN, "assign_execs")];  | 
| 44676 | 320  | 
val removed_versions = [(functionN, "removed_versions")];  | 
| 
44661
 
383c9d758a56
raw message function "assign_execs" avoids full overhead of decoding and caching message body;
 
wenzelm 
parents: 
44549 
diff
changeset
 | 
321  | 
|
| 45666 | 322  | 
fun invoke_scala name id = [(functionN, "invoke_scala"), (Markup.nameN, name), (idN, id)];  | 
| 
44298
 
b8f8488704e2
Future.promise: explicit abort operation (like uninterruptible future job);
 
wenzelm 
parents: 
43797 
diff
changeset
 | 
323  | 
fun cancel_scala id = [(functionN, "cancel_scala"), (idN, id)];  | 
| 43748 | 324  | 
|
| 23623 | 325  | 
end;  |