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