2009-01-03 10:37:28 -05:00
|
|
|
! Copyright (C) 2008, 2009 Jose Antonio Ortega Ruiz.
|
2008-12-05 22:34:25 -05:00
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
|
|
|
2008-12-23 16:37:25 -05:00
|
|
|
USING: accessors arrays assocs classes.tuple combinators
|
2009-01-03 10:37:28 -05:00
|
|
|
compiler.units continuations debugger definitions help help.crossref
|
|
|
|
help.markup help.topics io io.pathnames io.streams.string kernel lexer
|
2009-01-05 00:22:36 -05:00
|
|
|
make math math.order memoize namespaces parser quotations prettyprint
|
|
|
|
sequences sets sorting source-files strings summary tools.crossref
|
2009-01-06 01:05:42 -05:00
|
|
|
tools.vocabs tools.vocabs.browser vectors vocabs vocabs.parser words ;
|
2008-12-05 22:34:25 -05:00
|
|
|
|
|
|
|
IN: fuel
|
|
|
|
|
2008-12-08 20:36:55 -05:00
|
|
|
! Evaluation status:
|
2008-12-05 22:34:25 -05:00
|
|
|
|
2008-12-18 18:20:56 -05:00
|
|
|
TUPLE: fuel-status in use restarts ;
|
2008-12-05 22:34:25 -05:00
|
|
|
|
|
|
|
SYMBOL: fuel-status-stack
|
|
|
|
V{ } clone fuel-status-stack set-global
|
|
|
|
|
2008-12-08 20:36:55 -05:00
|
|
|
SYMBOL: fuel-eval-result
|
2008-12-30 18:23:44 -05:00
|
|
|
f fuel-eval-result set-global
|
2008-12-08 20:36:55 -05:00
|
|
|
|
|
|
|
SYMBOL: fuel-eval-output
|
2008-12-30 18:23:44 -05:00
|
|
|
f fuel-eval-result set-global
|
2008-12-08 20:36:55 -05:00
|
|
|
|
|
|
|
SYMBOL: fuel-eval-res-flag
|
2008-12-30 18:23:44 -05:00
|
|
|
t fuel-eval-res-flag set-global
|
2008-12-08 20:36:55 -05:00
|
|
|
|
|
|
|
: fuel-eval-restartable? ( -- ? )
|
|
|
|
fuel-eval-res-flag get-global ; inline
|
|
|
|
|
|
|
|
: fuel-eval-restartable ( -- )
|
|
|
|
t fuel-eval-res-flag set-global ; inline
|
|
|
|
|
|
|
|
: fuel-eval-non-restartable ( -- )
|
|
|
|
f fuel-eval-res-flag set-global ; inline
|
|
|
|
|
2008-12-22 00:58:20 -05:00
|
|
|
: fuel-push-status ( -- )
|
2008-12-18 18:20:56 -05:00
|
|
|
in get use get clone restarts get-global clone
|
2008-12-05 22:34:25 -05:00
|
|
|
fuel-status boa
|
|
|
|
fuel-status-stack get push ;
|
|
|
|
|
2008-12-22 00:58:20 -05:00
|
|
|
: fuel-pop-restarts ( restarts -- )
|
|
|
|
fuel-eval-restartable? [ drop ] [ clone restarts set-global ] if ; inline
|
|
|
|
|
|
|
|
: fuel-pop-status ( -- )
|
2008-12-05 22:34:25 -05:00
|
|
|
fuel-status-stack get empty? [
|
2008-12-20 10:51:05 -05:00
|
|
|
fuel-status-stack get pop
|
|
|
|
[ in>> in set ]
|
|
|
|
[ use>> clone use set ]
|
2008-12-22 00:58:20 -05:00
|
|
|
[ restarts>> fuel-pop-restarts ] tri
|
2008-12-05 22:34:25 -05:00
|
|
|
] unless ;
|
|
|
|
|
2008-12-08 20:36:55 -05:00
|
|
|
! Lispy pretty printing
|
2008-12-05 22:34:25 -05:00
|
|
|
|
|
|
|
GENERIC: fuel-pprint ( obj -- )
|
|
|
|
|
2008-12-08 20:36:55 -05:00
|
|
|
M: object fuel-pprint pprint ; inline
|
2008-12-05 22:34:25 -05:00
|
|
|
|
2009-01-03 10:37:28 -05:00
|
|
|
: fuel-maybe-scape ( ch -- seq )
|
2009-01-04 10:01:03 -05:00
|
|
|
dup "\\\"?#()[]'`" member? [ CHAR: \ swap 2array ] [ 1array ] if ;
|
2009-01-03 10:37:28 -05:00
|
|
|
|
|
|
|
M: word fuel-pprint
|
|
|
|
name>> V{ } clone [ fuel-maybe-scape append ] reduce >string write ;
|
|
|
|
|
2008-12-08 20:36:55 -05:00
|
|
|
M: f fuel-pprint drop "nil" write ; inline
|
2008-12-05 22:34:25 -05:00
|
|
|
|
2008-12-08 20:36:55 -05:00
|
|
|
M: integer fuel-pprint pprint ; inline
|
2008-12-05 22:34:25 -05:00
|
|
|
|
2008-12-08 20:36:55 -05:00
|
|
|
M: string fuel-pprint pprint ; inline
|
2008-12-05 22:34:25 -05:00
|
|
|
|
|
|
|
M: sequence fuel-pprint
|
2008-12-22 00:58:20 -05:00
|
|
|
"(" write [ " " write ] [ fuel-pprint ] interleave ")" write ; inline
|
2008-12-05 22:34:25 -05:00
|
|
|
|
2008-12-08 20:36:55 -05:00
|
|
|
M: tuple fuel-pprint tuple>array fuel-pprint ; inline
|
|
|
|
|
2009-01-05 00:22:36 -05:00
|
|
|
M: quotation fuel-pprint pprint ; inline
|
|
|
|
|
2008-12-08 20:36:55 -05:00
|
|
|
M: continuation fuel-pprint drop ":continuation" write ; inline
|
|
|
|
|
|
|
|
M: restart fuel-pprint name>> fuel-pprint ; inline
|
|
|
|
|
|
|
|
SYMBOL: :restarts
|
2008-12-05 22:34:25 -05:00
|
|
|
|
2008-12-08 20:36:55 -05:00
|
|
|
: fuel-restarts ( obj -- seq )
|
|
|
|
compute-restarts :restarts prefix ; inline
|
|
|
|
|
|
|
|
M: condition fuel-pprint
|
|
|
|
[ error>> ] [ fuel-restarts ] bi 2array condition prefix fuel-pprint ;
|
|
|
|
|
2008-12-15 17:44:13 -05:00
|
|
|
M: lexer-error fuel-pprint
|
|
|
|
{
|
|
|
|
[ line>> ]
|
|
|
|
[ column>> ]
|
|
|
|
[ line-text>> ]
|
|
|
|
[ fuel-restarts ]
|
|
|
|
} cleave 4array lexer-error prefix fuel-pprint ;
|
|
|
|
|
2008-12-08 20:36:55 -05:00
|
|
|
M: source-file-error fuel-pprint
|
|
|
|
[ file>> ] [ error>> ] bi 2array source-file-error prefix
|
|
|
|
fuel-pprint ;
|
|
|
|
|
|
|
|
M: source-file fuel-pprint path>> fuel-pprint ;
|
|
|
|
|
|
|
|
! Evaluation vocabulary
|
2008-12-05 22:34:25 -05:00
|
|
|
|
|
|
|
: fuel-eval-set-result ( obj -- )
|
2008-12-08 20:36:55 -05:00
|
|
|
clone fuel-eval-result set-global ; inline
|
2008-12-05 22:34:25 -05:00
|
|
|
|
|
|
|
: fuel-retort ( -- )
|
2008-12-27 09:18:17 -05:00
|
|
|
error get fuel-eval-result get-global fuel-eval-output get-global
|
2008-12-18 18:20:56 -05:00
|
|
|
3array fuel-pprint flush nl "<~FUEL~>" write nl flush ;
|
2008-12-05 22:34:25 -05:00
|
|
|
|
2008-12-09 17:37:27 -05:00
|
|
|
: fuel-forget-error ( -- ) f error set-global ; inline
|
|
|
|
: fuel-forget-result ( -- ) f fuel-eval-result set-global ; inline
|
|
|
|
: fuel-forget-output ( -- ) f fuel-eval-output set-global ; inline
|
2008-12-30 18:23:44 -05:00
|
|
|
: fuel-forget-status ( -- )
|
|
|
|
fuel-forget-error fuel-forget-result fuel-forget-output ; inline
|
2008-12-05 22:34:25 -05:00
|
|
|
|
|
|
|
: (fuel-begin-eval) ( -- )
|
2008-12-30 18:23:44 -05:00
|
|
|
fuel-push-status fuel-forget-status ; inline
|
2008-12-08 20:36:55 -05:00
|
|
|
|
2008-12-22 00:58:20 -05:00
|
|
|
: (fuel-end-eval) ( output -- )
|
|
|
|
fuel-eval-output set-global fuel-retort fuel-pop-status ; inline
|
2008-12-05 22:34:25 -05:00
|
|
|
|
|
|
|
: (fuel-eval) ( lines -- )
|
2008-12-08 20:36:55 -05:00
|
|
|
[ [ parse-lines ] with-compilation-unit call ] curry
|
|
|
|
[ print-error ] recover ; inline
|
2008-12-05 22:34:25 -05:00
|
|
|
|
|
|
|
: (fuel-eval-each) ( lines -- )
|
2008-12-08 20:36:55 -05:00
|
|
|
[ 1vector (fuel-eval) ] each ; inline
|
2008-12-05 22:34:25 -05:00
|
|
|
|
|
|
|
: (fuel-eval-usings) ( usings -- )
|
|
|
|
[ "USING: " prepend " ;" append ] map
|
2008-12-09 17:37:27 -05:00
|
|
|
(fuel-eval-each) fuel-forget-error fuel-forget-output ;
|
2008-12-05 22:34:25 -05:00
|
|
|
|
|
|
|
: (fuel-eval-in) ( in -- )
|
2008-12-08 20:36:55 -05:00
|
|
|
[ dup "IN: " prepend 1vector (fuel-eval) in set ] when* ; inline
|
2008-12-05 22:34:25 -05:00
|
|
|
|
|
|
|
: fuel-eval-in-context ( lines in usings -- )
|
2008-12-21 16:12:46 -05:00
|
|
|
(fuel-begin-eval)
|
|
|
|
[ (fuel-eval-usings) (fuel-eval-in) (fuel-eval) ] with-string-writer
|
|
|
|
(fuel-end-eval) ;
|
2008-12-05 22:34:25 -05:00
|
|
|
|
2008-12-23 16:37:25 -05:00
|
|
|
! Loading files
|
|
|
|
|
2008-12-30 22:05:34 -05:00
|
|
|
SYMBOL: :uses
|
|
|
|
|
|
|
|
: fuel-set-use-hook ( -- )
|
|
|
|
[ amended-use get clone :uses prefix fuel-eval-set-result ]
|
|
|
|
print-use-hook set ;
|
|
|
|
|
|
|
|
: fuel-run-file ( path -- )
|
|
|
|
[ fuel-set-use-hook run-file ] curry with-scope ; inline
|
2008-12-18 09:38:40 -05:00
|
|
|
|
2009-01-03 20:36:58 -05:00
|
|
|
: fuel-with-autouse ( ... quot: ( ... -- ... ) -- ... )
|
2009-01-03 10:37:28 -05:00
|
|
|
[ auto-use? on fuel-set-use-hook call ] curry with-scope ; inline
|
2008-12-23 16:37:25 -05:00
|
|
|
|
|
|
|
: (fuel-get-uses) ( lines -- )
|
|
|
|
[ parse-fresh drop ] curry with-compilation-unit ; inline
|
|
|
|
|
|
|
|
: fuel-get-uses ( lines -- )
|
|
|
|
[ (fuel-get-uses) ] curry fuel-with-autouse ;
|
|
|
|
|
2008-12-17 18:49:01 -05:00
|
|
|
! Edit locations
|
|
|
|
|
2008-12-21 21:07:45 -05:00
|
|
|
: fuel-normalize-loc ( seq -- path line )
|
2009-01-05 16:06:43 -05:00
|
|
|
[ dup length 0 > [ first (normalize-path) ] [ drop f ] if ]
|
|
|
|
[ dup length 1 > [ second ] [ drop 1 ] if ] bi ;
|
2008-12-21 21:07:45 -05:00
|
|
|
|
2009-01-05 16:06:43 -05:00
|
|
|
: fuel-get-edit-location ( word -- )
|
2008-12-21 21:07:45 -05:00
|
|
|
where fuel-normalize-loc 2array fuel-eval-set-result ; inline
|
|
|
|
|
2008-12-22 00:58:20 -05:00
|
|
|
: fuel-get-vocab-location ( vocab -- )
|
|
|
|
>vocab-link fuel-get-edit-location ; inline
|
|
|
|
|
2009-01-05 16:06:43 -05:00
|
|
|
: fuel-get-doc-location ( word -- )
|
2008-12-21 21:07:45 -05:00
|
|
|
props>> "help-loc" swap at
|
|
|
|
fuel-normalize-loc 2array fuel-eval-set-result ;
|
2008-12-13 18:41:35 -05:00
|
|
|
|
2009-01-05 16:06:43 -05:00
|
|
|
: fuel-get-article-location ( name -- )
|
|
|
|
article loc>> fuel-normalize-loc 2array fuel-eval-set-result ;
|
|
|
|
|
2008-12-22 00:58:20 -05:00
|
|
|
! Cross-references
|
|
|
|
|
|
|
|
: fuel-word>xref ( word -- xref )
|
|
|
|
[ name>> ] [ vocabulary>> ] [ where fuel-normalize-loc ] tri 4array ;
|
|
|
|
|
|
|
|
: fuel-sort-xrefs ( seq -- seq' )
|
|
|
|
[ [ first ] dip first <=> ] sort ; inline
|
|
|
|
|
|
|
|
: fuel-format-xrefs ( seq -- seq' )
|
2009-01-03 20:36:58 -05:00
|
|
|
[ word? ] filter [ fuel-word>xref ] map ; inline
|
2008-12-20 19:43:28 -05:00
|
|
|
|
|
|
|
: fuel-callers-xref ( word -- )
|
2009-01-03 20:36:58 -05:00
|
|
|
usage fuel-format-xrefs fuel-sort-xrefs fuel-eval-set-result ; inline
|
2008-12-20 19:43:28 -05:00
|
|
|
|
|
|
|
: fuel-callees-xref ( word -- )
|
2009-01-03 20:36:58 -05:00
|
|
|
uses fuel-format-xrefs fuel-sort-xrefs fuel-eval-set-result ; inline
|
|
|
|
|
|
|
|
: fuel-apropos-xref ( str -- )
|
|
|
|
words-matching fuel-format-xrefs fuel-eval-set-result ; inline
|
2008-12-20 19:43:28 -05:00
|
|
|
|
2008-12-17 17:50:48 -05:00
|
|
|
! Completion support
|
|
|
|
|
|
|
|
: fuel-filter-prefix ( seq prefix -- seq )
|
2008-12-18 09:38:40 -05:00
|
|
|
[ drop-prefix nip length 0 = ] curry filter prune ; inline
|
2008-12-17 17:50:48 -05:00
|
|
|
|
2008-12-15 17:44:13 -05:00
|
|
|
: (fuel-get-vocabs) ( -- seq )
|
|
|
|
all-vocabs-seq [ vocab-name ] map ; inline
|
|
|
|
|
2008-12-13 18:41:35 -05:00
|
|
|
: fuel-get-vocabs ( -- )
|
2008-12-15 20:09:18 -05:00
|
|
|
(fuel-get-vocabs) fuel-eval-set-result ; inline
|
2008-12-15 17:44:13 -05:00
|
|
|
|
2008-12-17 17:50:48 -05:00
|
|
|
: fuel-get-vocabs/prefix ( prefix -- )
|
|
|
|
(fuel-get-vocabs) swap fuel-filter-prefix fuel-eval-set-result ; inline
|
|
|
|
|
2008-12-18 09:38:40 -05:00
|
|
|
: fuel-vocab-summary ( name -- )
|
|
|
|
>vocab-link summary fuel-eval-set-result ; inline
|
|
|
|
|
2008-12-15 17:44:13 -05:00
|
|
|
MEMO: (fuel-vocab-words) ( name -- seq )
|
|
|
|
>vocab-link words [ name>> ] map ;
|
|
|
|
|
2008-12-15 20:09:18 -05:00
|
|
|
: fuel-current-words ( -- seq )
|
|
|
|
use get [ keys ] map concat ; inline
|
|
|
|
|
|
|
|
: fuel-vocabs-words ( names -- seq )
|
|
|
|
prune [ (fuel-vocab-words) ] map concat ; inline
|
2008-12-15 17:44:13 -05:00
|
|
|
|
|
|
|
: (fuel-get-words) ( prefix names/f -- seq )
|
2008-12-15 20:09:18 -05:00
|
|
|
[ fuel-vocabs-words ] [ fuel-current-words ] if* natural-sort
|
2008-12-17 18:49:01 -05:00
|
|
|
swap fuel-filter-prefix ;
|
2008-12-15 17:44:13 -05:00
|
|
|
|
|
|
|
: fuel-get-words ( prefix names -- )
|
|
|
|
(fuel-get-words) fuel-eval-set-result ; inline
|
2008-12-05 22:34:25 -05:00
|
|
|
|
2009-01-03 10:37:28 -05:00
|
|
|
! Help support
|
|
|
|
|
|
|
|
MEMO: fuel-articles-seq ( -- seq )
|
|
|
|
articles get values ;
|
|
|
|
|
|
|
|
: fuel-find-articles ( title -- seq )
|
|
|
|
[ [ article-title ] dip = ] curry fuel-articles-seq swap filter ;
|
|
|
|
|
|
|
|
MEMO: fuel-find-article ( title -- article/f )
|
|
|
|
fuel-find-articles dup empty? [ drop f ] [ first ] if ;
|
|
|
|
|
|
|
|
MEMO: fuel-article-title ( name -- title/f )
|
|
|
|
articles get at [ article-title ] [ f ] if* ;
|
|
|
|
|
|
|
|
: fuel-get-article ( name -- )
|
|
|
|
article fuel-eval-set-result ;
|
|
|
|
|
|
|
|
: fuel-value-str ( word -- str )
|
|
|
|
[ pprint-short ] with-string-writer ; inline
|
|
|
|
|
|
|
|
: fuel-definition-str ( word -- str )
|
|
|
|
[ see ] with-string-writer ; inline
|
|
|
|
|
|
|
|
: fuel-methods-str ( word -- str )
|
|
|
|
methods dup empty? not [
|
|
|
|
[ [ see nl ] each ] with-string-writer
|
|
|
|
] [ drop f ] if ; inline
|
|
|
|
|
|
|
|
: fuel-related-words ( word -- seq )
|
|
|
|
dup "related" word-prop remove ; inline
|
|
|
|
|
|
|
|
: fuel-parent-topics ( word -- seq )
|
|
|
|
help-path [ dup article-title swap 2array ] map ; inline
|
|
|
|
|
|
|
|
: (fuel-word-help) ( word -- element )
|
2009-01-07 19:30:12 -05:00
|
|
|
\ article swap dup article-title swap
|
2009-01-03 10:37:28 -05:00
|
|
|
[
|
|
|
|
{
|
|
|
|
[ fuel-parent-topics [ \ $doc-path prefix , ] unless-empty ]
|
|
|
|
[ \ $vocabulary swap vocabulary>> 2array , ]
|
|
|
|
[ word-help % ]
|
|
|
|
[ fuel-related-words [ \ $related swap 2array , ] unless-empty ]
|
|
|
|
[ get-global [ \ $value swap fuel-value-str 2array , ] when* ]
|
|
|
|
[ \ $definition swap fuel-definition-str 2array , ]
|
|
|
|
[ fuel-methods-str [ \ $methods swap 2array , ] when* ]
|
|
|
|
} cleave
|
|
|
|
] { } make 3array ;
|
|
|
|
|
|
|
|
MEMO: fuel-find-word ( name -- word/f )
|
|
|
|
[ [ name>> ] dip = ] curry all-words swap filter
|
|
|
|
dup empty? not [ first ] [ drop f ] if ;
|
|
|
|
|
|
|
|
: fuel-word-help ( name -- )
|
|
|
|
fuel-find-word [ [ auto-use? on (fuel-word-help) ] with-scope ] [ f ] if*
|
|
|
|
fuel-eval-set-result ; inline
|
|
|
|
|
|
|
|
: (fuel-word-see) ( word -- elem )
|
|
|
|
[ name>> \ article swap ]
|
|
|
|
[ [ see ] with-string-writer \ $code swap 2array ] bi 3array ; inline
|
|
|
|
|
|
|
|
: fuel-word-see ( name -- )
|
|
|
|
fuel-find-word [ [ auto-use? on (fuel-word-see) ] with-scope ] [ f ] if*
|
|
|
|
fuel-eval-set-result ; inline
|
2008-12-18 09:38:40 -05:00
|
|
|
|
2009-01-06 01:05:42 -05:00
|
|
|
: fuel-vocab-help-row ( vocab -- element )
|
2009-01-06 10:28:10 -05:00
|
|
|
[ vocab-status-string ] [ vocab-name ] [ summary ] tri 3array ;
|
2009-01-06 01:05:42 -05:00
|
|
|
|
|
|
|
: fuel-vocab-help-root-heading ( root -- element )
|
|
|
|
[ "Children from " prepend ] [ "Other children" ] if* \ $heading swap 2array ;
|
|
|
|
|
|
|
|
SYMBOL: vocab-list
|
|
|
|
|
2009-01-06 19:44:45 -05:00
|
|
|
: fuel-vocab-help-table ( vocabs -- element )
|
2009-01-06 01:05:42 -05:00
|
|
|
[ fuel-vocab-help-row ] map vocab-list prefix ;
|
|
|
|
|
2009-01-06 19:44:45 -05:00
|
|
|
: fuel-vocab-list ( assoc -- seq )
|
2009-01-06 01:05:42 -05:00
|
|
|
[
|
|
|
|
[ drop f ] [
|
|
|
|
[ fuel-vocab-help-root-heading ]
|
2009-01-06 19:44:45 -05:00
|
|
|
[ fuel-vocab-help-table ] bi*
|
2009-01-06 01:05:42 -05:00
|
|
|
[ 2array ] [ drop f ] if*
|
|
|
|
] if-empty
|
|
|
|
] { } assoc>map [ ] filter ;
|
|
|
|
|
|
|
|
: fuel-vocab-children-help ( name -- element )
|
2009-01-06 19:44:45 -05:00
|
|
|
all-child-vocabs fuel-vocab-list ; inline
|
|
|
|
|
|
|
|
: fuel-vocab-describe-words ( name -- element )
|
|
|
|
[ describe-words ] with-string-writer \ describe-words swap 2array ; inline
|
2009-01-06 01:05:42 -05:00
|
|
|
|
2009-01-03 20:36:58 -05:00
|
|
|
: (fuel-vocab-help) ( name -- element )
|
|
|
|
\ article swap dup >vocab-link
|
|
|
|
[
|
2009-01-06 01:05:42 -05:00
|
|
|
{
|
2009-01-06 17:08:33 -05:00
|
|
|
[ vocab-authors [ \ $authors prefix , ] when* ]
|
|
|
|
[ vocab-tags [ \ $tags prefix , ] when* ]
|
|
|
|
[ summary [ { $heading "Summary" } swap 2array , ] when* ]
|
2009-01-06 22:08:36 -05:00
|
|
|
[ drop \ $nl , ]
|
2009-01-06 01:05:42 -05:00
|
|
|
[ vocab-help [ article content>> % ] when* ]
|
2009-01-06 22:08:36 -05:00
|
|
|
[ name>> fuel-vocab-describe-words , ]
|
2009-01-06 01:05:42 -05:00
|
|
|
[ name>> fuel-vocab-children-help % ]
|
|
|
|
} cleave
|
2009-01-03 20:36:58 -05:00
|
|
|
] { } make 3array ;
|
|
|
|
|
|
|
|
: fuel-vocab-help ( name -- )
|
2009-01-06 01:05:42 -05:00
|
|
|
dup empty? [ fuel-vocab-children-help ] [ (fuel-vocab-help) ] if
|
|
|
|
fuel-eval-set-result ; inline
|
2009-01-03 20:36:58 -05:00
|
|
|
|
|
|
|
: (fuel-index) ( seq -- seq )
|
|
|
|
[ [ >link name>> ] [ article-title ] bi 2array \ $subsection prefix ] map ;
|
|
|
|
|
|
|
|
: fuel-index ( quot: ( -- seq ) -- )
|
|
|
|
call (fuel-index) fuel-eval-set-result ; inline
|
|
|
|
|
2009-01-06 17:08:33 -05:00
|
|
|
MEMO: (fuel-get-vocabs/author) ( author -- element )
|
|
|
|
[ "Vocabularies by " prepend \ $heading swap 2array ]
|
2009-01-06 19:44:45 -05:00
|
|
|
[ authored fuel-vocab-list ] bi 2array ;
|
2009-01-06 17:08:33 -05:00
|
|
|
|
|
|
|
: fuel-get-vocabs/author ( author -- )
|
|
|
|
(fuel-get-vocabs/author) fuel-eval-set-result ;
|
|
|
|
|
|
|
|
MEMO: (fuel-get-vocabs/tag ( tag -- element )
|
|
|
|
[ "Vocabularies tagged " prepend \ $heading swap 2array ]
|
2009-01-06 19:44:45 -05:00
|
|
|
[ tagged fuel-vocab-list ] bi 2array ;
|
2009-01-06 17:08:33 -05:00
|
|
|
|
|
|
|
: fuel-get-vocabs/tag ( tag -- )
|
|
|
|
(fuel-get-vocabs/tag fuel-eval-set-result ;
|
|
|
|
|
|
|
|
|
2008-12-18 09:38:40 -05:00
|
|
|
! -run=fuel support
|
2008-12-08 20:36:55 -05:00
|
|
|
|
2008-12-15 20:09:18 -05:00
|
|
|
: fuel-startup ( -- ) "listener" run-file ; inline
|
2008-12-05 22:34:25 -05:00
|
|
|
|
|
|
|
MAIN: fuel-startup
|