| MathQL.Not x -> not (exec_boole_exp c x)
| MathQL.And (x, y) -> (exec_boole_exp c x) && (exec_boole_exp c y)
| MathQL.Or (x, y) -> (exec_boole_exp c x) || (exec_boole_exp c y)
- | MathQL.Sub (vexp1, vexp2) -> let res = sub_ex (exec_val_exp c vexp1) (exec_val_exp c vexp2)
- in
- if res then (print_endline"SUB: TRUE";flush stdout)
- else (print_endline"SUB: FALSE";flush stdout);
- res
- | MathQL.Meet (vexp1, vexp2) -> let res = meet_ex (exec_val_exp c vexp1) (exec_val_exp c vexp2)
- in
- if res then (print_endline"MEET: TRUE";flush stdout)
- else (print_endline"MEET: FALSE";flush stdout);
- res
-
+ | MathQL.Sub (vexp1, vexp2) -> sub_ex (exec_val_exp c vexp1) (exec_val_exp c vexp2)
+ | MathQL.Meet (vexp1, vexp2) -> meet_ex (exec_val_exp c vexp1) (exec_val_exp c vexp2)
| MathQL.Eq (vexp1, vexp2) -> (exec_val_exp c vexp1) = (exec_val_exp c vexp2)
| MathQL.Ex l bexp ->
- let res =
- if l = [] then (print_endline"LISTA VUOTA!";flush stdout;(exec_boole_exp c bexp))
+ if l = [] then (exec_boole_exp c bexp)
else
let latt = List.map (fun uri ->
let (r,attl) = List.assoc uri c.rvars in (uri,attl)) l (*latt = l + attributi*)
in
sub_prod attl
in
- prod c latt; print_endline"SONO ARRIVATO ALLA FINE!"; flush stdout;false
+ prod c latt;false
with BooleExpTrue -> true
- in if res then (print_endline"TRUE"; flush stdout)
- else (print_endline"FALSE"; flush stdout);
- res
(* valuta una MathQL.val_exp e ritorna un MathQL.value *)