infix: crazy infix methods idea, dunno if it is awesome yet.

db4
John Benediktsson 2013-04-15 11:27:09 -07:00
parent da5eedce32
commit db81422ff4
2 changed files with 20 additions and 6 deletions

View File

@ -50,3 +50,7 @@ IN: infix.tests
[ "rbo" ] [ [let "foobar" :> s [infix s[::-2] infix] ] ] unit-test [ "rbo" ] [ [let "foobar" :> s [infix s[::-2] infix] ] ] unit-test
[ "rbo" ] [ [let "foobar" :> s [infix s[:0:-2] infix] ] ] unit-test [ "rbo" ] [ [let "foobar" :> s [infix s[:0:-2] infix] ] ] unit-test
[ "rb" ] [ [let "foobar" :> s [infix s[:-5:-2] infix] ] ] unit-test [ "rb" ] [ [let "foobar" :> s [infix s[:-5:-2] infix] ] ] unit-test
INFIX:: foo ( x y -- z ) x**2-abs(y);
{ 194 } [ 15 31 foo ] unit-test

View File

@ -1,11 +1,9 @@
! Copyright (C) 2009 Philipp Brüschweiler ! Copyright (C) 2009 Philipp Brüschweiler
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs combinators combinators.short-circuit USING: accessors assocs combinators effects effects.parser fry
effects fry infix.parser infix.ast kernel locals locals.parser infix.ast infix.parser kernel locals locals.parser math
locals.types math math.functions math.order math.ranges math.functions math.order math.ranges multiline namespaces
multiline namespaces parser quotations sequences summary parser quotations sequences summary words ;
words vocabs.parser ;
IN: infix IN: infix
<PRIVATE <PRIVATE
@ -120,3 +118,15 @@ PRIVATE>
SYNTAX: [infix SYNTAX: [infix
"infix]" parse-infix-quotation suffix! \ call suffix! ; "infix]" parse-infix-quotation suffix! \ call suffix! ;
<PRIVATE
: (INFIX::) ( -- word def effect )
[
scan-new-word
[ ";" parse-infix-quotation ] parse-locals-definition
] with-definition ;
PRIVATE>
SYNTAX: INFIX:: (INFIX::) define-declared ;