factor/library/tools/word-tools.factor

37 lines
1001 B
Factor
Raw Normal View History

2006-03-25 01:06:52 -05:00
! Copyright (C) 2005, 2006 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
2005-03-10 17:57:22 -05:00
IN: words
2006-08-02 15:17:13 -04:00
USING: definitions help inspector io kernel math namespaces
prettyprint sequences strings ;
2005-03-10 17:57:22 -05:00
: word-outliner ( word quot -- )
swap natural-sort [
dup rot curry >r [ synopsis ] keep r>
write-outliner terpri
] each-with ;
: usage. ( word -- )
usage [ usage. ] word-outliner ;
: apropos ( substring -- )
all-words completions [ (help) ] word-outliner ;
2005-04-14 19:37:13 -04:00
: annotate ( word quot -- | quot: word def -- def )
2005-08-23 15:50:32 -04:00
over >r >r dup word-def r> call r> swap define-compound ;
2005-04-01 12:42:14 -05:00
inline
2005-03-10 17:57:22 -05:00
2006-03-18 01:57:57 -05:00
: watch-msg ( word prefix -- ) write word-name print .s flush ;
2005-09-14 00:37:50 -04:00
2005-04-14 19:37:13 -04:00
: (watch) ( word def -- def )
2005-08-08 15:21:14 -04:00
[
2005-09-14 00:37:50 -04:00
swap literalize
dup , "===> Entering: " , \ watch-msg ,
swap %
, "===> Leaving: " , \ watch-msg ,
2005-08-25 15:27:38 -04:00
] [ ] make ;
2005-03-10 17:57:22 -05:00
2006-03-25 01:06:52 -05:00
: watch ( word -- ) [ (watch) ] annotate ;
2005-03-10 17:57:22 -05:00
2005-08-24 21:52:10 -04:00
: profile ( word -- )
[ swap [ global [ inc ] bind ] curry swap append ] annotate ;