factor: fix collections syntax words.
parent
116c2909c2
commit
3283261710
|
@ -173,7 +173,7 @@ TUPLE: row-traverser shaped-array index ;
|
|||
|
||||
GENERIC: next-index ( object -- index ) ;
|
||||
|
||||
SYNTAX: sa{ \ } [ >shaped-array ] parse-literal ;
|
||||
SYNTAX: \ sa{ \ } [ >shaped-array ] parse-literal ;
|
||||
|
||||
use: prettyprint.custom
|
||||
! M: row-array pprint* shaped-array>array pprint* ;
|
||||
|
|
|
@ -86,7 +86,7 @@ M: bit-array resize
|
|||
|
||||
M: bit-array byte-length length bits>bytes ; inline
|
||||
|
||||
SYNTAX: ?{ \ } [ >bit-array ] parse-literal ;
|
||||
SYNTAX: \ ?{ \ } [ >bit-array ] parse-literal ;
|
||||
|
||||
: integer>bit-array ( n -- bit-array )
|
||||
dup 0 =
|
||||
|
|
|
@ -7,7 +7,7 @@ in: bit-vectors
|
|||
|
||||
<< "bit-vector" create-class-in \ bit-array \ <bit-array> define-vector >>
|
||||
|
||||
SYNTAX: ?V{ \ } [ >bit-vector ] parse-literal ;
|
||||
SYNTAX: \ ?V{ \ } [ >bit-vector ] parse-literal ;
|
||||
|
||||
M: bit-vector contract 2drop ;
|
||||
M: bit-vector >pprint-sequence ;
|
||||
|
|
|
@ -6,7 +6,7 @@ in: byte-arrays.hex
|
|||
|
||||
ERROR: odd-length-hex-string string ;
|
||||
|
||||
SYNTAX: HEX{
|
||||
SYNTAX: \ HEX{
|
||||
"}" parse-tokens concat
|
||||
[ blank? ] reject
|
||||
dup length even? [ odd-length-hex-string ] unless
|
||||
|
|
|
@ -213,6 +213,6 @@ PRIVATE>
|
|||
|
||||
INSTANCE: dlist deque ;
|
||||
|
||||
SYNTAX: DL{ \ } [ >dlist ] parse-literal ;
|
||||
SYNTAX: \ DL{ \ } [ >dlist ] parse-literal ;
|
||||
|
||||
{ "dlists" "prettyprint" } "dlists.prettyprint" require-when
|
||||
|
|
|
@ -32,6 +32,6 @@ M: identity-hash-set clone
|
|||
M: identity-hash-set set-like
|
||||
drop dup identity-hash-set? [ ?members >identity-hash-set ] unless ; inline
|
||||
|
||||
SYNTAX: IHS{ \ } [ >identity-hash-set ] parse-literal ;
|
||||
SYNTAX: \ IHS{ \ } [ >identity-hash-set ] parse-literal ;
|
||||
|
||||
{ "hash-sets.identity" "prettyprint" } "hash-sets.identity.prettyprint" require-when
|
||||
|
|
|
@ -31,6 +31,6 @@ M: number-hash-set clone
|
|||
: >number-hash-set ( members -- shash-set )
|
||||
[ <number-wrapper> ] map >hash-set number-hash-set boa ;
|
||||
|
||||
SYNTAX: NHS{ \ } [ >number-hash-set ] parse-literal ;
|
||||
SYNTAX: \ NHS{ \ } [ >number-hash-set ] parse-literal ;
|
||||
|
||||
{ "hash-sets.numbers" "prettyprint" } "hash-sets.numbers.prettyprint" require-when
|
||||
|
|
|
@ -31,6 +31,6 @@ M: sequence-hash-set clone
|
|||
: >sequence-hash-set ( members -- shash-set )
|
||||
[ <sequence-wrapper> ] map >hash-set sequence-hash-set boa ;
|
||||
|
||||
SYNTAX: SHS{ \ } [ >sequence-hash-set ] parse-literal ;
|
||||
SYNTAX: \ SHS{ \ } [ >sequence-hash-set ] parse-literal ;
|
||||
|
||||
{ "hash-sets.sequences" "prettyprint" } "hash-sets.sequences.prettyprint" require-when
|
||||
|
|
|
@ -34,6 +34,6 @@ M: number-hashtable clone
|
|||
|
||||
M: number-hashtable new-assoc drop <number-hashtable> ;
|
||||
|
||||
SYNTAX: NH{ \ } [ >number-hashtable ] parse-literal ;
|
||||
SYNTAX: \ NH{ \ } [ >number-hashtable ] parse-literal ;
|
||||
|
||||
{ "hashtables.numbers" "prettyprint" } "hashtables.numbers.prettyprint" require-when
|
||||
|
|
|
@ -33,6 +33,6 @@ M: sequence-hashtable clone
|
|||
|
||||
M: sequence-hashtable new-assoc drop <sequence-hashtable> ;
|
||||
|
||||
SYNTAX: SH{ \ } [ >sequence-hashtable ] parse-literal ;
|
||||
SYNTAX: \ SH{ \ } [ >sequence-hashtable ] parse-literal ;
|
||||
|
||||
{ "hashtables.sequences" "prettyprint" } "hashtables.sequences.prettyprint" require-when
|
||||
|
|
|
@ -61,6 +61,6 @@ M: linked-assoc assoc-like
|
|||
M: linked-assoc equal?
|
||||
over linked-assoc? [ [ dlist>> ] bi@ = ] [ 2drop f ] if ;
|
||||
|
||||
SYNTAX: LH{ \ } [ check-hashtable >linked-hash ] parse-literal ;
|
||||
SYNTAX: \ LH{ \ } [ check-hashtable >linked-hash ] parse-literal ;
|
||||
|
||||
{ "linked-assocs" "prettyprint" } "linked-assocs.prettyprint" require-when
|
||||
|
|
|
@ -9,8 +9,8 @@ HELP: <pool>
|
|||
}
|
||||
{ $description "Creates a " { $link pool } " of " { $snippet "size" } " objects of " { $snippet "class" } "." } ;
|
||||
|
||||
HELP: POOL:
|
||||
{ $syntax "POOL: class size" }
|
||||
HELP: \ POOL:
|
||||
{ $syntax "POOL: class size ;" }
|
||||
{ $description "Creates a " { $link pool } " of " { $snippet "size" } " objects of " { $snippet "class" } ", and associates it with the class using " { $link set-class-pool } "." } ;
|
||||
|
||||
HELP: class-pool
|
||||
|
|
|
@ -49,5 +49,5 @@ PRIVATE>
|
|||
: free-to-pool ( object -- )
|
||||
dup class-of class-pool pool-free ;
|
||||
|
||||
SYNTAX: POOL:
|
||||
scan-word scan-word '[ _ swap <pool> ] [ swap set-class-pool ] bi ;
|
||||
SYNTAX: \ POOL:
|
||||
scan-word scan-word ";" expect '[ _ swap <pool> ] [ swap set-class-pool ] bi ;
|
||||
|
|
|
@ -67,7 +67,7 @@ M: nibble-array resize
|
|||
|
||||
M: nibble-array byte-length length nibbles>bytes ;
|
||||
|
||||
SYNTAX: N{ \ } [ >nibble-array ] parse-literal ;
|
||||
SYNTAX: \ N{ \ } [ >nibble-array ] parse-literal ;
|
||||
|
||||
INSTANCE: nibble-array sequence ;
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ M: persistent-hash hashcode* nip assoc-size ;
|
|||
|
||||
M: persistent-hash clone ;
|
||||
|
||||
SYNTAX: PH{ \ } [ >persistent-hash ] parse-literal ;
|
||||
SYNTAX: \ PH{ \ } [ >persistent-hash ] parse-literal ;
|
||||
|
||||
M: persistent-hash pprint-delims drop \ PH{ \ } ;
|
||||
M: persistent-hash >pprint-sequence >alist ;
|
||||
|
|
|
@ -181,7 +181,7 @@ M: persistent-vector equal?
|
|||
: >persistent-vector ( seq -- pvec )
|
||||
T{ persistent-vector } like ;
|
||||
|
||||
SYNTAX: PV{ \ } [ >persistent-vector ] parse-literal ;
|
||||
SYNTAX: \ PV{ \ } [ >persistent-vector ] parse-literal ;
|
||||
|
||||
M: persistent-vector pprint-delims drop \ PV{ \ } ;
|
||||
M: persistent-vector >pprint-sequence ;
|
||||
|
|
|
@ -93,7 +93,7 @@ M: A pprint-delims drop \ A{ \ } ;
|
|||
|
||||
M: A >pprint-sequence ;
|
||||
|
||||
SYNTAX: A{ \ } [ \ T >c-array ] parse-literal ;
|
||||
SYNTAX: \ A{ \ } [ \ T >c-array ] parse-literal ;
|
||||
|
||||
INSTANCE: A specialized-array ;
|
||||
|
||||
|
@ -168,13 +168,13 @@ M: c-type-word c-array-type?
|
|||
|
||||
M: pointer c-array-type? drop void* c-array-type? ;
|
||||
|
||||
SYNTAX: SPECIALIZED-ARRAYS:
|
||||
SYNTAX: \ SPECIALIZED-ARRAYS:
|
||||
";" [ parse-c-type define-array-vocab use-vocab ] each-token ;
|
||||
|
||||
SYNTAX: SPECIALIZED-ARRAY:
|
||||
SYNTAX: \ SPECIALIZED-ARRAY:
|
||||
scan-c-type define-array-vocab use-vocab ;
|
||||
|
||||
SYNTAX: specialized-array:
|
||||
SYNTAX: \ specialized-array:
|
||||
scan-c-type define-array-vocab use-vocab ;
|
||||
|
||||
{ "specialized-arrays" "prettyprint" } "specialized-arrays.prettyprint" require-when
|
||||
|
|
|
@ -76,19 +76,14 @@ PRIVATE>
|
|||
[ specialized-vector-vocab ] [ '[ _ define-vector ] ] bi
|
||||
generate-vocab ;
|
||||
|
||||
SYNTAX: SPECIALIZED-VECTORS:
|
||||
SYNTAX: \ SPECIALIZED-VECTORS:
|
||||
";" [
|
||||
parse-c-type
|
||||
[ define-array-vocab use-vocab ]
|
||||
[ define-vector-vocab use-vocab ] bi
|
||||
] each-token ;
|
||||
|
||||
SYNTAX: SPECIALIZED-VECTOR:
|
||||
scan-c-type
|
||||
[ define-array-vocab use-vocab ]
|
||||
[ define-vector-vocab use-vocab ] bi ;
|
||||
|
||||
SYNTAX: specialized-vector:
|
||||
SYNTAX: \ specialized-vector:
|
||||
scan-c-type
|
||||
[ define-array-vocab use-vocab ]
|
||||
[ define-vector-vocab use-vocab ] bi ;
|
||||
|
|
|
@ -32,7 +32,7 @@ PRIVATE>
|
|||
: >suffix-array ( seq -- suffix-array )
|
||||
members [ suffixes ] map concat natural-sort ;
|
||||
|
||||
SYNTAX: SA{ \ } [ >suffix-array ] parse-literal ;
|
||||
SYNTAX: \ SA{ \ } [ >suffix-array ] parse-literal ;
|
||||
|
||||
: query ( begin suffix-array -- matches )
|
||||
[ find-index ] 2keep '[ _ _ (query) ] [ { } ] if* ;
|
||||
|
|
|
@ -160,7 +160,7 @@ PRIVATE>
|
|||
M: avl assoc-like
|
||||
drop dup avl? [ >avl ] unless ;
|
||||
|
||||
SYNTAX: AVL{
|
||||
SYNTAX: \ AVL{
|
||||
\ } [ >avl ] parse-literal ;
|
||||
|
||||
M: avl pprint-delims drop \ AVL{ \ } ;
|
||||
|
|
|
@ -136,7 +136,7 @@ PRIVATE>
|
|||
: >splay ( assoc -- tree )
|
||||
T{ splay f f 0 } assoc-clone-like ;
|
||||
|
||||
SYNTAX: SPLAY{
|
||||
SYNTAX: \ SPLAY{
|
||||
\ } [ >splay ] parse-literal ;
|
||||
|
||||
M: splay assoc-like
|
||||
|
|
|
@ -209,7 +209,7 @@ M: tree clone dup assoc-clone-like ;
|
|||
|
||||
M: tree assoc-like drop dup tree? [ >tree ] unless ;
|
||||
|
||||
SYNTAX: TREE{
|
||||
SYNTAX: \ TREE{
|
||||
\ } [ >tree ] parse-literal ;
|
||||
|
||||
M: tree assoc-size count>> ;
|
||||
|
|
|
@ -50,7 +50,7 @@ M: vlist like
|
|||
|
||||
INSTANCE: vlist immutable-sequence ;
|
||||
|
||||
SYNTAX: VL{ \ } [ >vlist ] parse-literal ;
|
||||
SYNTAX: \ VL{ \ } [ >vlist ] parse-literal ;
|
||||
|
||||
M: vlist pprint-delims drop \ VL{ \ } ;
|
||||
M: vlist >pprint-sequence ;
|
||||
|
@ -88,7 +88,7 @@ M: valist assoc-like
|
|||
|
||||
INSTANCE: valist assoc ;
|
||||
|
||||
SYNTAX: VA{ \ } [ >valist ] parse-literal ;
|
||||
SYNTAX: \ VA{ \ } [ >valist ] parse-literal ;
|
||||
|
||||
M: valist pprint-delims drop \ VA{ \ } ;
|
||||
M: valist >pprint-sequence >alist ;
|
||||
|
|
|
@ -16,6 +16,8 @@ SYNTAX: \ FUNCTOR-SYNTAX:
|
|||
|
||||
: scan-param ( -- obj ) scan-object literalize ;
|
||||
|
||||
: scan-escaped-param ( -- obj ) scan-escaped-word literalize ;
|
||||
|
||||
: >string-param ( string -- string/param )
|
||||
dup search dup lexical? [ nip ] [ drop ] if ;
|
||||
|
||||
|
|
|
@ -110,8 +110,9 @@ FUNCTOR-SYNTAX: \ symbol:
|
|||
scan-param suffix!
|
||||
\ define-symbol suffix! ;
|
||||
|
||||
! Handles SYNTAX: \ foo:
|
||||
FUNCTOR-SYNTAX: \ SYNTAX:
|
||||
scan-param suffix!
|
||||
scan-escaped-param suffix!
|
||||
parse-definition*
|
||||
\ define-syntax suffix! ;
|
||||
|
||||
|
|
|
@ -4,27 +4,11 @@
|
|||
! lexable-core-paths [ dup . flush path>literals ] map-zip
|
||||
|
||||
"resource:language" vocabs-from
|
||||
{ "constructors" "descriptive" "eval" "functors" "literals"
|
||||
"match" "method-chains" "multi-methods" "multiline"
|
||||
"pair-methods" "peg" "promises" "shuffle" "tr" "tuple-arrays"
|
||||
"variables" "variants" "alien.data" "alien.endian" "alien.fortran"
|
||||
"alien.syntax" "alien.data.map" "classes.struct"
|
||||
"classes.struct.vectored" "compiler.codegen" "functors.backend"
|
||||
"compiler.cfg.dataflow-analysis" "compiler.cfg.renaming.functor"
|
||||
"compiler.cfg.registers" "cpu.8080.emulator" "definitions.icons"
|
||||
"compiler.cfg.instructions.syntax" "cpu.x86.assembler.syntax"
|
||||
"io.encodings.euc" "peg.ebnf" "prettyprint.stylesheet" "slots.syntax"
|
||||
} diff
|
||||
{ } diff
|
||||
[ dup <vocab-link> . flush vocab>literals ] map-zip
|
||||
|
||||
"resource:collections" vocabs-from
|
||||
{ "bit-arrays"
|
||||
"bit-vectors" "dlists" "linked-assocs" "nibble-arrays"
|
||||
"specialized-arrays" "specialized-vectors" "suffix-arrays"
|
||||
"trees" "vlists" "arrays.shaped" "byte-arrays.hex"
|
||||
"hash-sets.identity" "hash-sets.numbers" "hash-sets.sequences"
|
||||
"hashtables.numbers" "hashtables.sequences" "persistent.hashtables"
|
||||
"memory.pools" "persistent.vectors" "trees.avl" "trees.splay"
|
||||
{
|
||||
} diff
|
||||
[ dup <vocab-link> . flush vocab>literals ] map-zip
|
||||
|
||||
|
|
Loading…
Reference in New Issue