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[:0:-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
! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs combinators combinators.short-circuit
effects fry infix.parser infix.ast kernel locals locals.parser
locals.types math math.functions math.order math.ranges
multiline namespaces parser quotations sequences summary
words vocabs.parser ;
USING: accessors assocs combinators effects effects.parser fry
infix.ast infix.parser kernel locals locals.parser math
math.functions math.order math.ranges multiline namespaces
parser quotations sequences summary words ;
IN: infix
<PRIVATE
@ -120,3 +118,15 @@ PRIVATE>
SYNTAX: [infix
"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 ;