lh-l4v/lib/AutoLevity_Run.thy

42 lines
1.1 KiB
Plaintext

(*
* Copyright 2014, NICTA
*
* This software may be distributed and modified according to the terms of
* the BSD 2-Clause license. Note that NO WARRANTY is provided.
* See "LICENSE_BSD2.txt" for details.
*
* @TAG(NICTA_BSD)
*)
theory AutoLevity_Run
imports AutoLevity_Theory_Report
begin
ML \<open>
fun get_report thy =
let
val thy_nm = Context.theory_name thy;
val _ = @{print} ("Reporting on " ^ thy_nm ^ "...")
val trans = AutoLevity_Base.get_transactions ();
val _ = if Symtab.defined trans (Context.theory_name thy) then () else raise Option;
val file_path = Path.append (Resources.master_directory thy) (Path.basic (thy_nm ^ ".lev"));
val reports = AutoLevity_Theory_Report.get_reports_for_thy thy;
val lines = AutoLevity_Theory_Report.string_reports_of reports;
val _ = File.write_list file_path lines;
in () end handle Option =>
((@{print} ("No transaction record for " ^ (Context.theory_name thy)); ()))
\<close>
ML \<open>val theories = Thy_Info.get_names () |> map Thy_Info.get_theory\<close>
ML \<open>map get_report theories\<close>
end