Definition protocol cleanup

db4
Slava Pestov 2008-01-06 12:13:44 -04:00
parent ede3f4d977
commit 07e5441b14
5 changed files with 29 additions and 23 deletions

View File

@ -1,7 +1,7 @@
! Copyright (C) 2004, 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: classes classes.union words kernel sequences
definitions prettyprint.backend combinators arrays ;
definitions combinators arrays ;
IN: classes.mixin
PREDICATE: union-class mixin-class "mixin" word-prop ;
@ -64,11 +64,6 @@ M: mixin-instance where mixin-instance-loc ;
M: mixin-instance set-where set-mixin-instance-loc ;
M: mixin-instance synopsis*
\ INSTANCE: pprint-word
dup mixin-instance-class pprint-word
mixin-instance-mixin pprint-word ;
M: mixin-instance definer drop \ INSTANCE: f ;
M: mixin-instance definition drop f ;

4
core/generic/standard/standard.factor Normal file → Executable file
View File

@ -182,3 +182,7 @@ M: standard-combination dispatch# standard-combination-# ;
M: hook-combination dispatch# drop 0 ;
M: simple-generic definer drop \ GENERIC: f ;
M: standard-generic definer drop \ GENERIC# f ;
M: hook-generic definer drop \ HOOK: f ;

View File

@ -146,39 +146,44 @@ GENERIC: see ( defspec -- )
: seeing-word ( word -- )
word-vocabulary pprinter-in set ;
: definer. ( defspec -- )
definer drop pprint-word ;
: stack-effect. ( word -- )
dup parsing? over symbol? or not swap stack-effect and
[ effect>string comment. ] when* ;
: word-synopsis ( word name -- )
: word-synopsis ( word -- )
dup seeing-word
over definer drop pprint-word
pprint-word
dup definer.
dup pprint-word
stack-effect. ;
M: word synopsis*
dup word-synopsis ;
M: word synopsis* word-synopsis ;
M: simple-generic synopsis*
dup word-synopsis ;
M: simple-generic synopsis* word-synopsis ;
M: standard-generic synopsis*
dup definer.
dup seeing-word
\ GENERIC# pprint-word
dup pprint-word
dup dispatch# pprint*
stack-effect. ;
M: hook-generic synopsis*
dup definer.
dup seeing-word
\ HOOK: pprint-word
dup pprint-word
dup "combination" word-prop hook-combination-var pprint-word
stack-effect. ;
M: method-spec synopsis*
dup definer drop pprint-word
[ pprint-word ] each ;
dup definer. [ pprint-word ] each ;
M: mixin-instance synopsis*
dup definer.
dup mixin-instance-class pprint-word
mixin-instance-mixin pprint-word ;
M: pathname synopsis* pprint* ;

View File

@ -17,7 +17,7 @@ M: link forget link-name remove-article ;
M: link definition article-content ;
M: link synopsis*
\ ARTICLE: pprint-word
dup definer.
dup link-name pprint*
article-title pprint* ;
@ -30,7 +30,7 @@ M: word-link set-where link-name swap "help-loc" set-word-prop ;
M: word-link definition link-name "help" word-prop ;
M: word-link synopsis*
\ HELP: pprint-word
dup definer.
link-name dup pprint-word
stack-effect. ;

View File

@ -314,14 +314,16 @@ M: lambda-word definer drop \ :: \ ; ;
M: lambda-word definition
"lambda" word-prop lambda-body ;
: lambda-word-synopsis ( word prop definer -- )
pick seeing-word pprint-word over pprint-word
: lambda-word-synopsis ( word prop -- )
over definer.
over seeing-word
over pprint-word
\ | pprint-word
word-prop lambda-vars pprint-vars
\ | pprint-word ;
M: lambda-word synopsis*
"lambda" \ :: lambda-word-synopsis ;
"lambda" lambda-word-synopsis ;
PREDICATE: macro lambda-macro
"lambda-macro" word-prop >boolean ;
@ -332,6 +334,6 @@ M: lambda-macro definition
"lambda-macro" word-prop lambda-body ;
M: lambda-macro synopsis*
"lambda-macro" \ MACRO:: lambda-word-synopsis ;
"lambda-macro" lambda-word-synopsis ;
PRIVATE>