/unmaintained/easy-help/easy-help.factor
http://github.com/abeaumont/factor · Factor · 111 lines · 67 code · 36 blank · 8 comment · 8 complexity · 1288a0c9b65b8c0f5190d12d2ade11e8 MD5 · raw file
- 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
- ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- : parse-text-block ( -- array )
-
- ".." parse-multiline-string
- string-lines
- 1 tail
- [ dup " " head? [ 4 tail ] [ ] if ] map
- [ expand-markup ] map
- concat
- [ dup "" = [ drop { $nl } ] [ ] if ] map ;
- ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- : Text: parse-text-block parsed ; parsing
- : Block: scan-word 1array parse-text-block append parsed ; parsing
- ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- : 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
- : Class-Description:
- { $class-description } parse-text-block append parsed ; parsing
- ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- : Code:
-
- { $code }
- parse-text-block [ dup array? [ drop "" ] [ ] if ] map
- append
- parsed
-
- ; parsing
- : 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:
- { $heading "Summary" }
- parse-text-block
- 2array parsed ; parsing
- ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- : Values:
- ".." parse-multiline-string
- string-lines
- 1 tail
- [ dup " " head? [ 4 tail ] [ ] if ] map
- [ " " split1 [ " " first = ] trim-head 2array ] map
- \ $values prefix
- parsed
- ; parsing
- ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- : Word:
- scan current-vocab create dup old-definitions get
- [ delete-at ] with each dup set-word
- bootstrap-word dup set-word
- dup >link save-location
- \ ; parse-until >array swap set-word-help ; parsing
- ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- : Heading: { $heading } ".." parse-multiline-string suffix parsed ; parsing
- ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- : List:
- { $list }
- ".." parse-multiline-string
- string-lines
- 1 tail
- [ dup " " head? [ 4 tail ] [ ] if ] map
- [ expand-markup ] map
- append parsed
- ; parsing