Macro biodivine_lib_bdd::bdd 
source · [−]macro_rules! bdd {
    ($vars:ident, ($($e:tt)*)) => { ... };
    ( ( $($e:tt)* ) ) => { ... };
    ($vars:ident, $bdd:literal) => { ... };
    ($vars:ident, $bdd:ident) => { ... };
    ($bdd:ident) => { ... };
    ($vars:ident, !$e:tt) => { ... };
    ($vars:ident, $l:tt & $r:tt) => { ... };
    ($vars:ident, $l:tt | $r:tt) => { ... };
    ($vars:ident, $l:tt <=> $r:tt) => { ... };
    ($vars:ident, $l:tt => $r:tt) => { ... };
    ($vars:ident, $l:tt ^ $r:tt) => { ... };
    (!$e:tt) => { ... };
    ($l:tt & $r:tt) => { ... };
    ($l:tt | $r:tt) => { ... };
    ($l:tt <=> $r:tt) => { ... };
    ($l:tt => $r:tt) => { ... };
    ($l:tt ^ $r:tt) => { ... };
}Expand description
A macro for simplifying Bdd operations. It evaluates given expression over Bdds where
you can use standard boolean operators !, &, |, ^, => and <=>.
Sadly, except for the very top expression, every level needs to be enclosed
in parentheses since rust macros cannot parse complex expressions with
potential ambiguities. You can’t write x & y & z, you have to use (x & y) & z.
Also !x & z is not permitted, you have to use (!x) & z.
See tutorial for usage examples.