[ "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
! 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
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 ;