From df02d2410007b60d0ee057da174552847c0005f0 Mon Sep 17 00:00:00 2001 From: dos-reis Date: Sat, 26 Feb 2011 22:32:20 +0000 Subject: * interp/g-opt.boot (optCond): Recognize conjunction and disjunction forms. --- src/interp/g-opt.boot | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/interp') diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot index 0afc98dd..b49a1beb 100644 --- a/src/interp/g-opt.boot +++ b/src/interp/g-opt.boot @@ -301,6 +301,8 @@ optCond (x is ['%when,:l]) == c1 is ['NIL] and p2 = '%otherwise and first c2 = '%otherwise => return optNot ['%not,p1] l is [[p1,['%when,[p2,c2]]]] => optCond ['%when,[['%and,p1,p2],c2]] + l is [[p1,c1],['%otherwise,'%false]] => optAnd ['%and,p1,c1] + l is [[p1,c1],['%otherwise,'%true]] => optOr ['%or,optNot ['%not,p1],c1] l is [[p1,:c1],[p2,:c2],[p3,:c3]] and p3 = '%otherwise => EqualBarGensym(c1,c3) => optCond ['%when,[['%or,p1,optNot ['%not,p2]],:c1],['%otherwise,:c2]] -- cgit v1.2.3