factor/unmaintained/easy-help/easy-help.factor

112 lines
2.6 KiB
Factor
Raw Normal View History

USING: arrays assocs compiler.units
grouping help help.markup help.topics kernel lexer multiline
namespaces parser sequences splitting words
easy-help.expand-markup ;
IN: easy-help
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2008-12-25 07:24:50 -05:00
: parse-text-block ( -- array )
".." parse-multiline-string
string-lines
1 tail
2008-12-25 07:24:50 -05:00
[ dup " " head? [ 4 tail ] [ ] if ] map
[ expand-markup ] map
concat
[ dup "" = [ drop { $nl } ] [ ] if ] map ;
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2008-12-25 07:24:50 -05:00
: Text: parse-text-block parsed ; parsing
2008-12-25 07:24:50 -05:00
: Block: scan-word 1array parse-text-block append parsed ; parsing
2008-12-25 07:24:50 -05:00
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2008-12-25 07:24:50 -05:00
: Notes: { $notes } parse-text-block append parsed ; parsing
: Description: { $description } parse-text-block append parsed ; parsing
: Contract: { $contract } parse-text-block append parsed ; parsing
: Checked-Example: { $example } parse-text-block append parsed ; parsing
2008-12-25 07:41:39 -05:00
: Class-Description:
{ $class-description } parse-text-block append parsed ; parsing
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2008-12-25 07:41:39 -05:00
: Code:
{ $code }
parse-text-block [ dup array? [ drop "" ] [ ] if ] map
append
parsed
; parsing
2008-12-25 07:24:50 -05:00
: Example:
{ $heading "Example" }
{ $code }
parse-text-block
[ dup array? [ drop "" ] [ ] if ] map ! Each item in $code must be a string
append
2array parsed ; parsing
: Introduction:
{ $heading "Introduction" }
parse-text-block
2array parsed ; parsing
: Summary:
2008-12-25 07:24:50 -05:00
{ $heading "Summary" }
parse-text-block
2array parsed ; parsing
2008-12-23 03:28:39 -05:00
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
: Values:
".." parse-multiline-string
string-lines
1 tail
2008-12-25 07:24:50 -05:00
[ dup " " head? [ 4 tail ] [ ] if ] map
[ " " split1 [ " " first = ] trim-head 2array ] map
2008-12-23 03:28:39 -05:00
\ $values prefix
parsed
; parsing
2008-12-23 23:46:03 -05:00
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
: Word:
2008-12-23 23:46:03 -05:00
scan current-vocab create dup old-definitions get
[ delete-at ] with each dup set-word
2008-12-23 23:46:03 -05:00
bootstrap-word dup set-word
dup >link save-location
\ ; parse-until >array swap set-word-help ; parsing
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2008-12-25 07:24:50 -05:00
: Heading: { $heading } ".." parse-multiline-string suffix parsed ; parsing
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2008-12-25 08:55:04 -05:00
: List:
{ $list }
".." parse-multiline-string
string-lines
1 tail
[ dup " " head? [ 4 tail ] [ ] if ] map
[ expand-markup ] map
append parsed
; parsing