factor/basis/alien/destructors/destructors.factor

32 lines
796 B
Factor
Raw Normal View History

! Copyright (C) 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: functors destructors accessors kernel parser words
2009-04-02 14:05:26 -04:00
effects generalizations sequences ;
IN: alien.destructors
2009-01-18 21:51:07 -05:00
SLOT: alien
FUNCTOR: define-destructor ( F -- )
F-destructor DEFINES-CLASS ${F}-destructor
2009-01-17 19:18:31 -05:00
<F-destructor> DEFINES <${F}-destructor>
&F DEFINES &${F}
|F DEFINES |${F}
2009-04-02 14:05:26 -04:00
N [ F stack-effect out>> length ]
WHERE
TUPLE: F-destructor < disposable alien ;
: <F-destructor> ( alien -- destructor )
F-destructor new-disposable swap >>alien ; inline
2009-01-17 19:18:31 -05:00
2009-04-02 14:05:26 -04:00
M: F-destructor dispose* alien>> F N ndrop ;
: &F ( alien -- alien ) dup <F-destructor> &dispose drop ; inline
: |F ( alien -- alien ) dup <F-destructor> |dispose drop ; inline
;FUNCTOR
SYNTAX: DESTRUCTOR: scan-word define-destructor ;