changer: Add changer vocab.
parent
114ba4733a
commit
923df44ec3
|
@ -0,0 +1 @@
|
||||||
|
Doug Coleman
|
|
@ -0,0 +1,17 @@
|
||||||
|
! Copyright (C) 2015 Doug Coleman.
|
||||||
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
|
USING: changer math tools.test ;
|
||||||
|
IN: changer.tests
|
||||||
|
|
||||||
|
TUPLE: changer-tester test-slot ;
|
||||||
|
|
||||||
|
{
|
||||||
|
T{ changer-tester f 1 }
|
||||||
|
} [ T{ changer-tester f 0 } [ 1 + ] change: test-slot ] unit-test
|
||||||
|
|
||||||
|
: change-test-slot ( obj -- obj )
|
||||||
|
[ 1 + ] change: test-slot ;
|
||||||
|
|
||||||
|
{
|
||||||
|
T{ changer-tester f 1 }
|
||||||
|
} [ T{ changer-tester f 0 } change-test-slot ] unit-test
|
|
@ -0,0 +1,11 @@
|
||||||
|
! Copyright (C) 2015 Doug Coleman.
|
||||||
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
|
USING: fry kernel lexer macros quotations sequences words ;
|
||||||
|
IN: changer
|
||||||
|
|
||||||
|
MACRO: inline-changer ( name -- quot' )
|
||||||
|
[ ">>" append ] [ ">>" prepend ] bi
|
||||||
|
[ "accessors" lookup-word 1quotation ] bi@
|
||||||
|
'[ over [ [ @ ] dip call ] dip swap @ ] ;
|
||||||
|
|
||||||
|
SYNTAX: change: scan-token '[ _ inline-changer ] append! ;
|
Loading…
Reference in New Issue