2009-01-16 23:37:56 -05:00
|
|
|
! Copyright (C) 2009 Slava Pestov.
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2014-11-16 23:31:32 -05:00
|
|
|
USING: accessors destructors effects functors generalizations
|
|
|
|
kernel parser sequences ;
|
2009-01-16 23:37:56 -05:00
|
|
|
IN: alien.destructors
|
|
|
|
|
2009-08-24 21:45:46 -04:00
|
|
|
TUPLE: alien-destructor alien ;
|
2009-01-18 21:51:07 -05:00
|
|
|
|
2009-01-16 23:37:56 -05:00
|
|
|
FUNCTOR: define-destructor ( F -- )
|
|
|
|
|
2009-02-06 03:42:03 -05:00
|
|
|
F-destructor DEFINES-CLASS ${F}-destructor
|
2009-01-17 19:18:31 -05:00
|
|
|
<F-destructor> DEFINES <${F}-destructor>
|
2009-01-16 23:37:56 -05:00
|
|
|
&F DEFINES &${F}
|
|
|
|
|F DEFINES |${F}
|
2009-04-02 14:05:26 -04:00
|
|
|
N [ F stack-effect out>> length ]
|
2009-01-16 23:37:56 -05:00
|
|
|
|
|
|
|
WHERE
|
|
|
|
|
2009-08-24 21:45:46 -04:00
|
|
|
TUPLE: F-destructor < alien-destructor ;
|
2009-01-16 23:37:56 -05:00
|
|
|
|
2009-08-24 03:26:13 -04:00
|
|
|
: <F-destructor> ( alien -- destructor )
|
2009-08-24 21:45:46 -04:00
|
|
|
F-destructor boa ; inline
|
2009-01-17 19:18:31 -05:00
|
|
|
|
2009-08-24 21:45:46 -04:00
|
|
|
M: F-destructor dispose alien>> F N ndrop ;
|
2009-01-16 23:37:56 -05:00
|
|
|
|
2009-01-28 16:03:00 -05:00
|
|
|
: &F ( alien -- alien ) dup <F-destructor> &dispose drop ; inline
|
2009-01-16 23:37:56 -05:00
|
|
|
|
2009-01-28 16:03:00 -05:00
|
|
|
: |F ( alien -- alien ) dup <F-destructor> |dispose drop ; inline
|
2009-01-16 23:37:56 -05:00
|
|
|
|
|
|
|
;FUNCTOR
|
|
|
|
|
2014-11-16 23:31:32 -05:00
|
|
|
SYNTAX: DESTRUCTOR: scan-word define-destructor ;
|