src/HOL/Codegenerator_Test/code_test.ML
changeset 58415 8392d221bd91
parent 58348 2d47c7d10b62
equal deleted inserted replaced
58413:22dd971f6938 58415:8392d221bd91
    23     {files : (Path.T * string) list,
    23     {files : (Path.T * string) list,
    24      compile_cmd : string option, run_cmd : string, mk_code_file : string -> Path.T})
    24      compile_cmd : string option, run_cmd : string, mk_code_file : string -> Path.T})
    25    -> string -> string -> string
    25    -> string -> string -> string
    26    -> theory -> (string * string) list * string -> Path.T -> string
    26    -> theory -> (string * string) list * string -> Path.T -> string
    27 
    27 
    28   val ISABELLE_POLYML_PATH : string
    28   val ISABELLE_POLYML : string
    29   val polymlN : string
    29   val polymlN : string
    30   val evaluate_in_polyml : Proof.context -> (string * string) list * string -> Path.T -> string
    30   val evaluate_in_polyml : Proof.context -> (string * string) list * string -> Path.T -> string
    31 
    31 
    32   val mltonN : string
    32   val mltonN : string
    33   val ISABELLE_MLTON : string
    33   val ISABELLE_MLTON : string
   314     run
   314     run
   315   end
   315   end
   316 
   316 
   317 (* Driver for PolyML *)
   317 (* Driver for PolyML *)
   318 
   318 
   319 val ISABELLE_POLYML_PATH = "ISABELLE_POLYML_PATH"
   319 val ISABELLE_POLYML = "ISABELLE_POLYML"
   320 val polymlN = "PolyML";
   320 val polymlN = "PolyML";
   321 
   321 
   322 fun mk_driver_polyml _ path _ value_name =
   322 fun mk_driver_polyml _ path _ value_name =
   323   let
   323   let
   324     val generatedN = "generated.sml"
   324     val generatedN = "generated.sml"
   341       "    ()\n" ^
   341       "    ()\n" ^
   342       "  end;\n"
   342       "  end;\n"
   343     val cmd =
   343     val cmd =
   344       "echo \"use \\\"" ^ Path.implode code_path ^ "\\\"; use \\\"" ^ 
   344       "echo \"use \\\"" ^ Path.implode code_path ^ "\\\"; use \\\"" ^ 
   345       Path.implode driver_path ^ "\\\"; main ();\" | " ^ 
   345       Path.implode driver_path ^ "\\\"; main ();\" | " ^ 
   346       Path.implode (Path.variable ISABELLE_POLYML_PATH)
   346       Path.implode (Path.variable ISABELLE_POLYML)
   347   in
   347   in
   348     {files = [(driver_path, driver)], compile_cmd = NONE, run_cmd = cmd, mk_code_file = K code_path}
   348     {files = [(driver_path, driver)], compile_cmd = NONE, run_cmd = cmd, mk_code_file = K code_path}
   349   end
   349   end
   350 
   350 
   351 val evaluate_in_polyml = gen_driver mk_driver_polyml ISABELLE_POLYML_PATH "PolyML executable" polymlN
   351 val evaluate_in_polyml = gen_driver mk_driver_polyml ISABELLE_POLYML "PolyML executable" polymlN
   352 
   352 
   353 (* Driver for mlton *)
   353 (* Driver for mlton *)
   354 
   354 
   355 val mltonN = "MLton"
   355 val mltonN = "MLton"
   356 val ISABELLE_MLTON = "ISABELLE_MLTON"
   356 val ISABELLE_MLTON = "ISABELLE_MLTON"