]> gitweb.factorcode.org Git - factor.git/commitdiff
words: cleaning up word-props
authorDoug Coleman <doug.coleman@gmail.com>
Sun, 23 Aug 2015 20:48:20 +0000 (13:48 -0700)
committerDoug Coleman <doug.coleman@gmail.com>
Mon, 24 Aug 2015 05:40:56 +0000 (22:40 -0700)
core/words/words.factor

index c41ecb16b9c7d0cd653cf79e2be33237280f5edd..5b4e1f871f02bca578c1c9d211aa8e64c5e56daf 100644 (file)
@@ -129,17 +129,18 @@ M: word parent-word drop f ;
 : make-deprecated ( word -- )
     t "deprecated" set-word-prop ;
 
-: inline? ( obj -- ? )
-    dup word? [ "inline" word-prop ] [ drop f ] if ; inline
+: word-prop? ( obj string -- ? )
+    over word? [ word-prop ] [ 2drop f ] if ; inline
 
-: recursive? ( obj -- ? )
-    dup word? [ "recursive" word-prop ] [ drop f ] if ; inline
+: word-props? ( obj seq -- ? )
+    over word? [ [ word-prop ] with all? ] [ 2drop f ] if ; inline
+
+: inline? ( obj -- ? ) "inline" word-prop? ; inline
+
+: recursive? ( obj -- ? ) "recursive" word-prop? ; inline
 
 : inline-recursive? ( obj -- ? )
-    dup word? [
-        dup "inline" word-prop
-        [ "recursive" word-prop ] [ drop f ] if
-    ] [ drop f ] if ; inline
+    { "inline" "recursive" } word-props? ; inline
 
 ERROR: cannot-be-inline word ;
 
@@ -174,7 +175,8 @@ M: word foldable?
     [ parent-word dup [ foldable? ] when ] bi or ;
 
 : make-foldable ( word -- )
-    dup make-flushable t "foldable" set-word-prop ;
+    [ make-flushable ]
+    [ t "foldable" set-word-prop ] bi ;
 
 GENERIC: reset-word ( word -- )
 
@@ -242,11 +244,9 @@ M: parsing-word definer drop \ SYNTAX: \ ; ;
 : define-syntax ( word quot -- )
     [ drop ] [ define ] 2bi t "parsing" set-word-prop ;
 
-: delimiter? ( obj -- ? )
-    dup word? [ "delimiter" word-prop ] [ drop f ] if ;
+: delimiter? ( obj -- ? ) "delimiter" word-prop? ;
 
-: deprecated? ( obj -- ? )
-    dup word? [ "deprecated" word-prop ] [ drop f ] if ;
+: deprecated? ( obj -- ? ) "deprecated" word-prop? ;
 
 ! Definition protocol
 M: word where "loc" word-prop ;