summaryrefslogtreecommitdiff
path: root/main.ml
diff options
context:
space:
mode:
authorAlex Auvolat <alex.auvolat@ansys.com>2014-07-04 17:20:51 +0200
committerAlex Auvolat <alex.auvolat@ansys.com>2014-07-04 17:20:51 +0200
commit108f38029404e8eb4b37c8892345917edfb3cac7 (patch)
tree7c46a5bbde67fb84e02adc78b10554b8e58b69df /main.ml
parentb1cdf90995c8f70e4a450b3319a136f0d50515d0 (diff)
downloadscade-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.ml17
1 files changed, 10 insertions, 7 deletions
diff --git a/main.ml b/main.ml
index 6cb2c50..2995e24 100644
--- a/main.ml
+++ b/main.ml
@@ -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;