Rename predicate-word to create-predicate-word and add a new predicate-word word
parent
bd479db2f8
commit
4f68808a72
|
@ -37,9 +37,12 @@ PREDICATE: class < word "class" word-prop ;
|
|||
|
||||
: classes ( -- seq ) implementors-map get keys ;
|
||||
|
||||
: predicate-word ( word -- predicate )
|
||||
: create-predicate-word ( word -- predicate )
|
||||
[ name>> "?" append ] [ vocabulary>> ] bi create ;
|
||||
|
||||
: predicate-word ( word -- predicate )
|
||||
"predicate" word-prop first ;
|
||||
|
||||
PREDICATE: predicate < word "predicating" word-prop >boolean ;
|
||||
|
||||
M: predicate forget*
|
||||
|
@ -49,8 +52,7 @@ M: predicate reset-word
|
|||
[ call-next-method ] [ f "predicating" set-word-prop ] bi ;
|
||||
|
||||
: define-predicate ( class quot -- )
|
||||
[ "predicate" word-prop first ] dip
|
||||
(( object -- ? )) define-declared ;
|
||||
[ predicate-word ] dip (( object -- ? )) define-declared ;
|
||||
|
||||
: superclass ( class -- super )
|
||||
#! Output f for non-classes to work with algebra code
|
||||
|
@ -144,7 +146,7 @@ M: sequence implementors [ implementors ] gather ;
|
|||
[ ]
|
||||
} cleave
|
||||
] dip [ assoc-union ] curry change-props
|
||||
dup predicate-word
|
||||
dup create-predicate-word
|
||||
[ 1quotation "predicate" set-word-prop ]
|
||||
[ swap "predicating" set-word-prop ]
|
||||
[ drop t "class" set-word-prop ]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
! Copyright (C) 2008 Slava Pestov.
|
||||
! Copyright (C) 2008, 2010 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: parser vocabs.parser words kernel classes compiler.units lexer ;
|
||||
IN: classes.parser
|
||||
|
@ -9,7 +9,7 @@ IN: classes.parser
|
|||
: create-class-in ( string -- word )
|
||||
current-vocab create
|
||||
dup save-class-location
|
||||
dup predicate-word dup set-word save-location ;
|
||||
dup create-predicate-word dup set-word save-location ;
|
||||
|
||||
: CREATE-CLASS ( -- word )
|
||||
scan create-class-in ;
|
||||
|
|
Loading…
Reference in New Issue