36 lines
810 B
Factor
36 lines
810 B
Factor
! Copyright (C) 2009 Slava Pestov.
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
USING: assocs math.order sequences ;
|
|
IN: compiler.cfg.comparisons
|
|
|
|
SYMBOLS: cc< cc<= cc= cc> cc>= cc/= ;
|
|
|
|
: negate-cc ( cc -- cc' )
|
|
H{
|
|
{ cc< cc>= }
|
|
{ cc<= cc> }
|
|
{ cc> cc<= }
|
|
{ cc>= cc< }
|
|
{ cc= cc/= }
|
|
{ cc/= cc= }
|
|
} at ;
|
|
|
|
: swap-cc ( cc -- cc' )
|
|
H{
|
|
{ cc< cc> }
|
|
{ cc<= cc>= }
|
|
{ cc> cc< }
|
|
{ cc>= cc<= }
|
|
{ cc= cc= }
|
|
{ cc/= cc/= }
|
|
} at ;
|
|
|
|
: evaluate-cc ( result cc -- ? )
|
|
H{
|
|
{ cc< { +lt+ } }
|
|
{ cc<= { +lt+ +eq+ } }
|
|
{ cc= { +eq+ } }
|
|
{ cc>= { +eq+ +gt+ } }
|
|
{ cc> { +gt+ } }
|
|
{ cc/= { +lt+ +gt+ } }
|
|
} at memq? ; |