]> gitweb.factorcode.org Git - factor.git/commitdiff
interpolate: make interpolate and interpolate-locals symmetric.
authorJohn Benediktsson <mrjbq7@gmail.com>
Tue, 29 Mar 2016 20:03:38 +0000 (13:03 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 29 Mar 2016 20:03:59 +0000 (13:03 -0700)
basis/functors/functors.factor
basis/interpolate/interpolate.factor

index 95b0f9057af32febe243d8f88a1712d89699104d..eefa7a31da3f4a58c61ea4f7b08c686cc8157b58 100644 (file)
@@ -123,7 +123,7 @@ FUNCTOR-SYNTAX: inline [ last-word make-inline ] append! ;
 FUNCTOR-SYNTAX: call-next-method T{ fake-call-next-method } suffix! ;
 
 : (INTERPOLATE) ( accum quot -- accum )
-    [ scan-token interpolate-locals ] dip
+    [ scan-token interpolate-locals-quot ] dip
     '[ _ with-string-writer @ ] suffix! ;
 
 PRIVATE>
index 59bcc06b17f0efdd2e7c3b451444a268c5b076ce..fd00b1fdd1de51fb9d4de1772a145b67fbdaeffe 100644 (file)
@@ -45,7 +45,7 @@ TUPLE: anon-var ;
         dup stack-var? [ n>> [ or ] keep max ] [ drop ] if
     ] reduce ;
 
-:: interpolate-quot ( str quot -- quot' )
+:: (interpolate-quot) ( str quot -- quot' )
     str parse-interpolate :> args
     args max-stack-var    :> vars
 
@@ -67,15 +67,24 @@ TUPLE: anon-var ;
 
 PRIVATE>
 
+: interpolate-quot ( str -- quot )
+    [ [ get ] ] (interpolate-quot) ;
+
 MACRO: interpolate ( str -- quot )
-    [ [ get ] ] interpolate-quot ;
+    interpolate-quot ;
 
 : interpolate>string ( str -- newstr )
     [ interpolate ] with-string-writer ; inline
 
-: interpolate-locals ( str -- quot )
-    [ dup search [ [ ] ] [ [ get ] ] ?if ] interpolate-quot ;
+: interpolate-locals-quot ( str -- quot )
+    [ dup search [ [ ] ] [ [ get ] ] ?if ] (interpolate-quot) ;
+
+MACRO: interpolate-locals ( str -- quot )
+    interpolate-locals-quot ;
+
+: interpolate-locals>string ( str -- newstr )
+    [ interpolate-locals ] with-string-writer ; inline
 
 SYNTAX: [I
     "I]" parse-multiline-string
-    interpolate-locals append! ;
+    interpolate-locals-quot append! ;