1 USING: destructors kernel lexer namespaces parser sequences words ;
5 : define-central-getter ( word -- )
6 dup [ get ] curry (( -- obj )) define-declared ;
8 : define-centrals ( str -- getter setter )
9 [ create-in dup define-central-getter ]
10 [ "with-" prepend create-in dup make-inline ] bi ;
12 : central-setter-def ( word with-word -- with-word quot )
13 [ with-variable ] with ;
15 : disposable-setter-def ( word with-word -- with-word quot )
16 [ pick [ drop with-variable ] with-disposal ] with ;
18 : declare-central ( with-word quot -- ) (( object quot -- )) define-declared ;
20 : define-central ( word-name -- )
21 define-centrals central-setter-def declare-central ;
23 : define-disposable-central ( word-name -- )
24 define-centrals disposable-setter-def declare-central ;
26 SYNTAX: CENTRAL: ( -- ) scan define-central ;
28 SYNTAX: DISPOSABLE-CENTRAL: ( -- ) scan define-disposable-central ;