changer: Add changer vocab.

db4
Doug Coleman 2015-08-11 23:54:20 -05:00
parent 114ba4733a
commit 923df44ec3
3 changed files with 29 additions and 0 deletions

View File

@ -0,0 +1 @@
Doug Coleman

View File

@ -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

View File

@ -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! ;