src/Tools/Code/code_ml.ML
changeset 38921 15f8cffdbf5d
parent 38916 c0b857a04758
child 38922 ec2a8efd8990
equal deleted inserted replaced
38919:fd6b9bdb428e 38921:15f8cffdbf5d
     6 
     6 
     7 signature CODE_ML =
     7 signature CODE_ML =
     8 sig
     8 sig
     9   val target_SML: string
     9   val target_SML: string
    10   val target_OCaml: string
    10   val target_OCaml: string
    11   val evaluation_code_of: theory -> string -> string
       
    12     -> Code_Thingol.naming -> Code_Thingol.program -> string list -> string * string option list
       
    13   val print_tuple: (Code_Printer.fixity -> 'a -> Pretty.T)
    11   val print_tuple: (Code_Printer.fixity -> 'a -> Pretty.T)
    14     -> Code_Printer.fixity -> 'a list -> Pretty.T option
    12     -> Code_Printer.fixity -> 'a list -> Pretty.T option
    15   val setup: theory -> theory
    13   val setup: theory -> theory
    16 end;
    14 end;
    17 
    15 
   941   end;
   939   end;
   942 
   940 
   943 end; (*local*)
   941 end; (*local*)
   944 
   942 
   945 
   943 
   946 (** for instrumentalization **)
       
   947 
       
   948 fun evaluation_code_of thy target struct_name =
       
   949   Code_Target.serialize_custom thy (target, fn module_name => fn [] =>
       
   950     serialize_ml target print_sml_module print_sml_stmt module_name true) (SOME struct_name);
       
   951 
       
   952 
       
   953 (** Isar setup **)
   944 (** Isar setup **)
   954 
   945 
   955 fun isar_serializer_sml module_name =
   946 fun isar_serializer_sml module_name =
   956   Code_Target.parse_args (Scan.optional (Args.$$$ "no_signatures" >> K false) true
   947   Code_Target.parse_args (Scan.optional (Args.$$$ "no_signatures" >> K false) true
   957   >> (fn with_signatures => serialize_ml target_SML
   948   >> (fn with_signatures => serialize_ml target_SML