Merge commit 'origin/master' into emacs
commit
15b5977b79
|
@ -327,7 +327,7 @@ HELP: $table
|
||||||
|
|
||||||
HELP: $values
|
HELP: $values
|
||||||
{ $values { "element" "an array of pairs of markup elements" } }
|
{ $values { "element" "an array of pairs of markup elements" } }
|
||||||
{ $description "Prints the description of arguments and values found on every word help page. The first element of a pair is the argument name and is output with " { $link $snippet } ". The remainder is either a single class word, or an element. If it is a class word " { $snippet "class" } ", it is intereted as if it were shorthand for " { $snippet "{ $instance class }" } "." }
|
{ $description "Prints the description of arguments and values found on every word help page. The first element of a pair is the argument name and is output with " { $link $snippet } ". The remainder is either a single class word, or an element. If it is a class word " { $snippet "class" } ", it is inserted as if it were shorthand for " { $snippet "{ $instance class }" } "." }
|
||||||
{ $see-also $maybe $instance $quotation } ;
|
{ $see-also $maybe $instance $quotation } ;
|
||||||
|
|
||||||
HELP: $instance
|
HELP: $instance
|
||||||
|
|
|
@ -1,61 +1,111 @@
|
||||||
|
|
||||||
USING: kernel multiline parser sequences splitting grouping help.markup ;
|
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
|
IN: easy-help
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
: Description:
|
: parse-text-block ( -- array )
|
||||||
|
|
||||||
".." parse-multiline-string
|
".." parse-multiline-string
|
||||||
string-lines
|
string-lines
|
||||||
1 tail
|
1 tail
|
||||||
[ dup " " head? [ 4 tail ] [ ] if ] map
|
[ dup " " head? [ 4 tail ] [ ] if ] map
|
||||||
[ dup "" = [ drop { $nl } ] [ ] if ] map
|
[ expand-markup ] map
|
||||||
\ $description prefix
|
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
|
parsed
|
||||||
|
|
||||||
; parsing
|
; parsing
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
|
|
||||||
: Example:
|
: Example:
|
||||||
|
{ $heading "Example" }
|
||||||
|
{ $code }
|
||||||
|
parse-text-block
|
||||||
|
[ dup array? [ drop "" ] [ ] if ] map ! Each item in $code must be a string
|
||||||
|
append
|
||||||
|
2array parsed ; parsing
|
||||||
|
|
||||||
{ $heading "Example" } parsed
|
: Introduction:
|
||||||
|
|
||||||
".." parse-multiline-string
|
{ $heading "Introduction" }
|
||||||
string-lines
|
parse-text-block
|
||||||
[ dup " " head? [ 4 tail ] [ ] if ] map
|
2array parsed ; parsing
|
||||||
[ "" = not ] filter
|
|
||||||
! \ $example prefix
|
|
||||||
\ $code prefix
|
|
||||||
parsed
|
|
||||||
|
|
||||||
; parsing
|
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
|
|
||||||
: Summary:
|
: Summary:
|
||||||
|
|
||||||
".." parse-multiline-string
|
{ $heading "Summary" }
|
||||||
string-lines
|
parse-text-block
|
||||||
1 tail
|
2array parsed ; parsing
|
||||||
[ dup " " head? [ 4 tail ] [ ] if ] map
|
|
||||||
[ dup "" = [ drop { $nl } ] [ ] if ] map
|
|
||||||
{ $heading "Summary" } prefix
|
|
||||||
parsed
|
|
||||||
|
|
||||||
; parsing
|
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
: Values:
|
: Values:
|
||||||
|
|
||||||
".." parse-multiline-string
|
".." parse-multiline-string
|
||||||
" \n" split
|
string-lines
|
||||||
[ "" = not ] filter
|
1 tail
|
||||||
2 group
|
[ dup " " head? [ 4 tail ] [ ] if ] map
|
||||||
|
[ " " split1 [ " " first = ] trim-left 2array ] map
|
||||||
\ $values prefix
|
\ $values prefix
|
||||||
parsed
|
parsed
|
||||||
|
|
||||||
; parsing
|
; 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
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
|
||||||
|
USING: accessors arrays kernel lexer locals math namespaces parser
|
||||||
|
sequences splitting ;
|
||||||
|
|
||||||
|
IN: easy-help.expand-markup
|
||||||
|
|
||||||
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
|
: scan-one-array ( string -- array rest )
|
||||||
|
string-lines
|
||||||
|
lexer-factory get call
|
||||||
|
[
|
||||||
|
[
|
||||||
|
\ } parse-until >array
|
||||||
|
lexer get line-text>>
|
||||||
|
lexer get column>> tail
|
||||||
|
]
|
||||||
|
with-lexer
|
||||||
|
]
|
||||||
|
with-scope ;
|
||||||
|
|
||||||
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
|
: contains-markup? ( string -- ? ) "{ $" swap subseq? ;
|
||||||
|
|
||||||
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
|
:: expand-markup ( LINE -- lines )
|
||||||
|
|
||||||
|
LINE contains-markup?
|
||||||
|
[
|
||||||
|
|
||||||
|
[let | N [ "{ $" LINE start ] |
|
||||||
|
|
||||||
|
LINE N head
|
||||||
|
|
||||||
|
LINE N 2 + tail scan-one-array dup " " head? [ 1 tail ] [ ] if
|
||||||
|
|
||||||
|
[ 2array ] dip
|
||||||
|
|
||||||
|
expand-markup
|
||||||
|
|
||||||
|
append ]
|
||||||
|
|
||||||
|
]
|
||||||
|
[ LINE 1array ]
|
||||||
|
if ;
|
|
@ -8,11 +8,13 @@ IN: size-of
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
DEFER: size-of
|
Word: size-of
|
||||||
|
|
||||||
HELP: size-of
|
Values:
|
||||||
|
|
||||||
Values: HEADERS sequence TYPE string n integer ..
|
HEADERS sequence : List of header files
|
||||||
|
TYPE string : A C type
|
||||||
|
n integer : Size in number of bytes ..
|
||||||
|
|
||||||
Description:
|
Description:
|
||||||
|
|
||||||
|
@ -57,4 +59,3 @@ Example:
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue