# HG changeset patch # User haftmann # Date 1171095983 -3600 # Node ID 7b3e7170c9a3496601fd026ef5fd3aa74ff68376 # Parent bf5bdb7f7607d225131fda0b6bcb01d456b6d80e new Isar command print_codesetup diff -r bf5bdb7f7607 -r 7b3e7170c9a3 src/Pure/Tools/codegen_data.ML --- a/src/Pure/Tools/codegen_data.ML Sat Feb 10 09:26:22 2007 +0100 +++ b/src/Pure/Tools/codegen_data.ML Sat Feb 10 09:26:23 2007 +0100 @@ -32,8 +32,6 @@ -> ((string * sort) list * (string * typ list) list) option val get_datatype_of_constr: theory -> CodegenConsts.const -> string option - val print_thms: theory -> unit - val preprocess_cterm: cterm -> thm val trace: bool ref @@ -351,10 +349,11 @@ |> map (fn (dtco, ((vs, cos), _)) => (Sign.string_of_typ thy (Type (dtco, map TFree vs)), cos)) |> sort (string_ord o pairself fst) in - (Pretty.writeln o Pretty.block o Pretty.fbreaks) ([ - Pretty.str "code theorems:", - Pretty.str "defining equations:" ] @ - map pretty_func funs @ [ + (Pretty.writeln o Pretty.chunks) [ + Pretty.block ( + Pretty.str "defining equations:" + :: map pretty_func funs + ), Pretty.block ( Pretty.str "inlining theorems:" :: Pretty.fbrk @@ -374,13 +373,11 @@ Pretty.str "datatypes:" :: Pretty.fbrk :: (Pretty.fbreaks o map pretty_dtyp) dtyps - )] - ) + ) + ] end; end); -fun print_thms thy = CodeData.print thy; - fun init k = CodeData.map (fn (exec, data) => (exec, ref (Datatab.update (k, invoke_empty k) (! data)))); @@ -838,6 +835,27 @@ ] end; (*local*) + +(** Isar setup **) + +local + +structure P = OuterParse +and K = OuterKeyword + +val print_codesetupK = "print_codesetup"; + +in + +val print_codesetupP = + OuterSyntax.improper_command print_codesetupK "print code generator setup of this theory" OuterKeyword.diag + (Scan.succeed + (Toplevel.no_timing o Toplevel.unknown_theory o Toplevel.keep (CodeData.print o Toplevel.theory_of))); + +val _ = OuterSyntax.add_parsers [print_codesetupP]; + +end; (*local*) + end; (*struct*)