302 gens = merge_gens (gens1, gens2), |
302 gens = merge_gens (gens1, gens2), |
303 logic_data = merge_logic_data (logic_data1, logic_data2), |
303 logic_data = merge_logic_data (logic_data1, logic_data2), |
304 target_data = Symtab.join (K (merge_target_data #> SOME)) |
304 target_data = Symtab.join (K (merge_target_data #> SOME)) |
305 (target_data1, target_data2) |
305 (target_data1, target_data2) |
306 }; |
306 }; |
307 fun print thy _ = writeln "sorry, this stuff is too complicated..."; |
307 fun print _ _ = (); |
308 end); |
308 end); |
|
309 |
|
310 val _ = Context.add_setup CodegenData.init; |
309 |
311 |
310 fun map_codegen_data f thy = |
312 fun map_codegen_data f thy = |
311 case CodegenData.get thy |
313 case CodegenData.get thy |
312 of { modl, gens, target_data, logic_data } => |
314 of { modl, gens, target_data, logic_data } => |
313 let val (modl, gens, target_data, logic_data) = |
315 let val (modl, gens, target_data, logic_data) = |
1309 primclassP, primtycoP, primconstP, syntax_tycoP, syntax_constP]; |
1311 primclassP, primtycoP, primconstP, syntax_tycoP, syntax_constP]; |
1310 val _ = OuterSyntax.add_keywords ["\\<Rightarrow>", "=>", constantsK, dependingK]; |
1312 val _ = OuterSyntax.add_keywords ["\\<Rightarrow>", "=>", constantsK, dependingK]; |
1311 |
1313 |
1312 |
1314 |
1313 |
1315 |
1314 (** setup **) |
1316 (** theory setup **) |
1315 |
1317 |
1316 val _ = Context.add_setup [ |
1318 val _ = Context.add_setup |
1317 CodegenData.init, |
1319 (add_eqextr ("defs", eqextr_defs) #> |
1318 (* add_appconst_i ("op =", ((2, 2), appgen_eq)), *) |
1320 add_defgen ("clsdecl", defgen_clsdecl) #> |
1319 add_eqextr ("defs", eqextr_defs), |
1321 add_defgen ("funs", defgen_funs) #> |
1320 add_defgen ("clsdecl", defgen_clsdecl), |
1322 add_defgen ("clsmem", defgen_clsmem) #> |
1321 add_defgen ("funs", defgen_funs), |
1323 add_defgen ("datatypecons", defgen_datatypecons)); |
1322 add_defgen ("clsmem", defgen_clsmem), |
1324 |
1323 add_defgen ("datatypecons", defgen_datatypecons)(*, |
1325 (* add_appconst_i ("op =", ((2, 2), appgen_eq)) *) |
1324 add_defgen ("clsinst", defgen_clsinst) *) |
1326 (* add_defgen ("clsinst", defgen_clsinst) *) |
1325 ]; |
|
1326 |
1327 |
1327 end; (* local *) |
1328 end; (* local *) |
1328 |
1329 |
1329 end; (* struct *) |
1330 end; (* struct *) |