words: cleaning up word-props
							parent
							
								
									de4e42b6ca
								
							
						
					
					
						commit
						0a5c181c9e
					
				| 
						 | 
				
			
			@ -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 ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue