module OASISExpr:sig
..end
Boolean expressions
This module provides a boolean expression evaluator. See OASIS manual for the precise syntax of the boolean expression
type
test
Test definition.
val tests : test list
Mandatory tests.
val string_of_test : test -> string
Convert a test to string.
val test_of_string : string -> test
Convert a string to test.
typeflag =
string
type
t =
| |
EBool of |
(* | true or false | *) |
| |
ENot of |
(* | ! e | *) |
| |
EAnd of |
(* | e1 && e2 | *) |
| |
EOr of |
(* | e1 || e2 | *) |
| |
EFlag of |
(* | flag(foo), a boolean value. | *) |
| |
ETest of |
(* | os_type(Win32), a value compared to a string. | *) |
Boolean expression definition.
type'a
choices =(t * 'a) list
Choose among different values
val eval : (string -> string) -> t -> bool
eval eval_tst t
Evaluates the expression. Use eval_tst
to get values of flags and tests.
val choose : ?printer:('a -> string) ->
?name:string -> (string -> string) -> 'a choices -> 'a
choose ~printer ~name eval_tst choices
Evaluate each conditions
of choices
and choose the last condition that evaluates to true
.
If something goes wrong, use printer
to display values and ~name
as the
choice list name.
See also OASISExpr.eval
.
val check : flag list -> t -> unit
Check that a boolean expression only use available flags. Not exported.
val reduce : t -> t
Try to reduce the size of a boolean expression. Not exported.
val reduce_choices : 'a choices -> 'a choices
Try to reduce the size of a choice list. Not exported.
val if_then_else : t ->
'a choices -> 'a choices -> 'a choices
if_then_else cond choices_if choices_else
Combine choices, if_then_else
style.
val odn_of_choices : ('a -> OASISDataNotation.t) -> 'a choices -> OASISDataNotation.t
Dump OASISDataNotation.t. Not exported.
val to_string : t -> string
Transform an expression into a string. Not exported
val string_of_choices : ('a -> string) -> 'a choices -> string
Transform a list of choice into a string. Not exported