src/Pure/Tools/codegen_package.ML
changeset 18708 4b3dadb4fe33
parent 18704 2c86ced392a8
child 18756 5eb3df798405
equal deleted inserted replaced
18707:9d6154f76476 18708:4b3dadb4fe33
   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 *)