240 |
240 |
241 val sortT = Type ("sort", []); |
241 val sortT = Type ("sort", []); |
242 val classesT = Type ("classes", []); |
242 val classesT = Type ("classes", []); |
243 val typesT = Type ("types", []); |
243 val typesT = Type ("types", []); |
244 |
244 |
245 local open Lexicon SynExt in |
245 local open Lexicon Syn_Ext in |
246 |
246 |
247 val type_ext = syn_ext' false (K false) |
247 val type_ext = syn_ext' false (K false) |
248 [Mfix ("_", tidT --> typeT, "", [], max_pri), |
248 [Mfix ("_", tidT --> typeT, "", [], max_pri), |
249 Mfix ("_", tvarT --> typeT, "", [], max_pri), |
249 Mfix ("_", tvarT --> typeT, "", [], max_pri), |
250 Mfix ("_", idT --> typeT, "_type_name", [], max_pri), |
250 Mfix ("_", idT --> typeT, "_type_name", [], max_pri), |
269 Mfix ("(_/ => _)", [typeT, typeT] ---> typeT, "\\<^type>fun", [1, 0], 0), |
269 Mfix ("(_/ => _)", [typeT, typeT] ---> typeT, "\\<^type>fun", [1, 0], 0), |
270 Mfix ("([_]/ => _)", [typesT, typeT] ---> typeT, "_bracket", [0, 0], 0), |
270 Mfix ("([_]/ => _)", [typesT, typeT] ---> typeT, "_bracket", [0, 0], 0), |
271 Mfix ("'(_')", typeT --> typeT, "", [0], max_pri), |
271 Mfix ("'(_')", typeT --> typeT, "", [0], max_pri), |
272 Mfix ("'_", typeT, "\\<^type>dummy", [], max_pri)] |
272 Mfix ("'_", typeT, "\\<^type>dummy", [], max_pri)] |
273 ["_type_prop"] |
273 ["_type_prop"] |
274 ([], [], [], map SynExt.mk_trfun [("\\<^type>fun", K fun_ast_tr')]) |
274 ([], [], [], map Syn_Ext.mk_trfun [("\\<^type>fun", K fun_ast_tr')]) |
275 [] |
275 [] |
276 ([], []); |
276 ([], []); |
277 |
277 |
278 fun type_ast_trs {read_class, read_type} = |
278 fun type_ast_trs {read_class, read_type} = |
279 [("_class_name", class_name_tr o read_class), |
279 [("_class_name", class_name_tr o read_class), |