aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/interp/g-opt.boot4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot
index 76f629f6..84ad5a13 100644
--- a/src/interp/g-opt.boot
+++ b/src/interp/g-opt.boot
@@ -832,6 +832,10 @@ optNot(x is ['%not,a]) ==
a is '%true => '%false
a is '%false => '%true
a is ['%not,b] => b
+ a is ['%and,:args] =>
+ optOr ['%or,:[optNot ['%not,x] for x in args]]
+ a is ['%or,:args] =>
+ optAnd ['%and,:[optNot ['%not,x] for x in args]]
a is ['%when,:.] =>
optCond [a.op, :[[p,optNot ['%not,c]] for [p,c] in a.args]]
x