diff options
author | Alex Auvolat <alex.auvolat@ansys.com> | 2014-07-04 17:20:51 +0200 |
---|---|---|
committer | Alex Auvolat <alex.auvolat@ansys.com> | 2014-07-04 17:20:51 +0200 |
commit | 108f38029404e8eb4b37c8892345917edfb3cac7 (patch) | |
tree | 7c46a5bbde67fb84e02adc78b10554b8e58b69df /main.ml | |
parent | b1cdf90995c8f70e4a450b3319a136f0d50515d0 (diff) | |
download | scade-analyzer-108f38029404e8eb4b37c8892345917edfb3cac7.tar.gz scade-analyzer-108f38029404e8eb4b37c8892345917edfb3cac7.zip |
Adapt domain with non-EDD disjunctions ; it doesn't work very well !
Diffstat (limited to 'main.ml')
-rw-r--r-- | main.ml | 17 |
1 files changed, 10 insertions, 7 deletions
@@ -10,10 +10,8 @@ module Interpret = Interpret.I module ItvND = Nonrelational.ND(Intervals_domain.VD) -(* module AI_Itv = Abs_interp.I(Enum_domain.MultiValuation)(ItvND) module AI_Rel = Abs_interp.I(Enum_domain.MultiValuation)(Apron_domain.ND) -*) module AI_Itv_EDD = Abs_interp_edd.I(ItvND) module AI_Rel_EDD = Abs_interp_edd.I(Apron_domain.ND) @@ -109,9 +107,16 @@ let () = if !ai_itv || !ai_rel || !ai_itv_edd || !ai_rel_edd then begin let comma_split = Str.split (Str.regexp ",") in let select_f x = - if x = "all" - then (fun _ -> true) - else (fun i -> List.mem i (comma_split x)) + if x = "all" then + (fun _ -> true) + else if x = "last" then + (fun i -> i.[0] = 'L') + else if String.length x > 5 && String.sub x 0 5 = "last+" then + let psl = comma_split + (String.sub x 5 (String.length x - 5)) in + (fun i -> i.[0] = 'L' || List.mem i psl) + else + (fun i -> List.mem i (comma_split x)) in let rp = Typing.root_prog prog !ai_root (select_f !ai_no_time_scopes) @@ -126,10 +131,8 @@ let () = vverbose_ci = !ai_vvci; } in - (* if !ai_itv then AI_Itv.do_prog opt rp; if !ai_rel then AI_Rel.do_prog opt rp; - *) if !ai_itv_edd then AI_Itv_EDD.do_prog opt rp; if !ai_rel_edd then AI_Rel_EDD.do_prog opt rp; |