infix: crazy infix methods idea, dunno if it is awesome yet.
parent
da5eedce32
commit
db81422ff4
|
@ -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
|
||||
|
|
|
@ -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 ;
|
||||
|
|
Loading…
Reference in New Issue