1 ! Copyright (C) 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: assocs math.order sequences ;
4 IN: compiler.cfg.comparisons
9 cc< cc<= cc= cc> cc>= cc<> cc<>=
10 cc/< cc/<= cc/= cc/> cc/>= cc/<> cc/<>= ;
13 vcc-all vcc-notall vcc-any vcc-none ;
15 : negate-cc ( cc -- cc' )
33 : negate-vcc ( cc -- cc' )
35 { vcc-all vcc-notall }
38 { vcc-notall vcc-all }
41 : swap-cc ( cc -- cc' )
59 : order-cc ( cc -- cc' )
77 : evaluate-cc ( result cc -- ? )
80 { cc<= { +lt+ +eq+ } }
82 { cc>= { +eq+ +gt+ } }
84 { cc<> { +lt+ +gt+ } }
85 { cc<>= { +lt+ +eq+ +gt+ } }
86 { cc/< { +eq+ +gt+ +unordered+ } }
87 { cc/<= { +gt+ +unordered+ } }
88 { cc/= { +lt+ +gt+ +unordered+ } }
89 { cc/>= { +lt+ +unordered+ } }
90 { cc/> { +lt+ +eq+ +unordered+ } }
91 { cc/<> { +eq+ +unordered+ } }
92 { cc/<>= { +unordered+ } }