words: cleaning up word-props

db4
Doug Coleman 2015-08-23 13:48:20 -07:00
parent de4e42b6ca
commit 0a5c181c9e
1 changed files with 13 additions and 13 deletions

View 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 ;