diff options
author | Alex Auvolat <alex.auvolat@ansys.com> | 2014-07-10 10:58:56 +0200 |
---|---|---|
committer | Alex Auvolat <alex.auvolat@ansys.com> | 2014-07-10 10:58:56 +0200 |
commit | fee760b5c08afa9c81b5f28b35afd3514f643770 (patch) | |
tree | 526f3e7d2c5da4e0132bf58797c0a9b4dccb8840 /main.ml | |
parent | e06a4102e5b2a81c7b1c24323cafc863eefbc0cb (diff) | |
download | scade-analyzer-fee760b5c08afa9c81b5f28b35afd3514f643770.tar.gz scade-analyzer-fee760b5c08afa9c81b5f28b35afd3514f643770.zip |
Fix a few things, this doesn't work well.
Diffstat (limited to 'main.ml')
-rw-r--r-- | main.ml | 26 |
1 files changed, 24 insertions, 2 deletions
@@ -23,6 +23,10 @@ module AI_S_Itv_DP = Abs_interp_dynpart.I (Enum_domain.MultiValuation)(ItvND) module AI_S_Rel_DP = Abs_interp_dynpart.I (Enum_domain.MultiValuation)(Apron_domain.ND) +module AI_EDD_Itv_DP = Abs_interp_dynpart.I + (Enum_domain_edd.EDD)(ItvND) +module AI_EDD_Rel_DP = Abs_interp_dynpart.I + (Enum_domain_edd.EDD)(Apron_domain.ND) (* command line options *) let times = ref false @@ -36,6 +40,8 @@ let ai_itv_edd = ref false let ai_rel_edd = ref false let ai_s_itv_dp = ref false let ai_s_rel_dp = ref false +let ai_edd_itv_dp = ref false +let ai_edd_rel_dp = ref false let ai_root = ref "test" let ai_widen_delay = ref 5 let ai_no_time_scopes = ref "all" @@ -50,28 +56,41 @@ let usage = "usage: analyzer [options] file.scade" let options = [ "--exec-times", Arg.Set times, "Show time spent in each function of the analyzer, for some functions"; + "--dump", Arg.Set dump, "Dump program source."; "--dump-rn", Arg.Set dumprn, "Dump program source, after renaming."; + "--vtest", Arg.Set vtest, "Verbose testing (direct interpret)."; "--test", Arg.Set test, "Simple testing (direct interpret)."; + "--ai-itv", Arg.Set ai_itv, "Do abstract analysis using intervals."; "--ai-rel", Arg.Set ai_rel, "Do abstract analysis using Apron."; + "--ai-itv-edd", Arg.Set ai_itv_edd, "Do abstract analysis using intervals and EDD disjunction domain."; "--ai-rel-edd", Arg.Set ai_rel_edd, "Do abstract analysis using Apron and EDD disjunction domain."; + "--ai-s-itv-dp", Arg.Set ai_s_itv_dp, "Do abstract analysis using dynamic partitionning method, "^ "with intervals and valuation domain for enums."; "--ai-s-rel-dp", Arg.Set ai_s_rel_dp, "Do abstract analysis using dynamic partitionning method, "^ "with Apron and valuation domain for enums."; + "--ai-edd-itv-dp", Arg.Set ai_edd_itv_dp, + "Do abstract analysis using dynamic partitionning method, "^ + "with intervals and EDD domain for enums."; + "--ai-edd-rel-dp", Arg.Set ai_edd_rel_dp, + "Do abstract analysis using dynamic partitionning method, "^ + "with Apron and EDD domain for enums."; + "--ai-vci", Arg.Set ai_vci, "Verbose chaotic iterations (show state at each iteration)"; "--ai-vvci", Arg.Set ai_vvci, "Very verbose chaotic iterations (show everything all the time)"; - "--wd", Arg.Set_int ai_widen_delay, + "--ai-wd", Arg.Set_int ai_widen_delay, "Widening delay in abstract analysis of loops (default: 3)."; + "--root", Arg.Set_string ai_root, "Root node for abstract analysis (default: test)."; "--no-time", Arg.Set_string ai_no_time_scopes, @@ -132,7 +151,8 @@ let () = if !ai_itv || !ai_rel || !ai_itv_edd || !ai_rel_edd - || !ai_s_itv_dp || !ai_s_rel_dp then + || !ai_s_itv_dp || !ai_s_rel_dp + || !ai_edd_itv_dp || !ai_edd_rel_dp then begin let comma_split = Str.split (Str.regexp ",") in let select_f x = @@ -168,6 +188,8 @@ let () = if !ai_s_itv_dp then AI_S_Itv_DP.do_prog opt rp; if !ai_s_rel_dp then AI_S_Rel_DP.do_prog opt rp; + if !ai_edd_itv_dp then AI_EDD_Itv_DP.do_prog opt rp; + if !ai_edd_rel_dp then AI_EDD_Rel_DP.do_prog opt rp; end; if !vtest then do_test_interpret prog true |