factor: SYNTAX: \FOO:
parent
39a9b21e98
commit
7ca280aee6
|
@ -65,7 +65,7 @@ M: word <c-direct-array>
|
|||
M: pointer <c-direct-array>
|
||||
drop void* <c-direct-array> ;
|
||||
|
||||
SYNTAX: c-array{ \ } [ unclip >c-array ] parse-literal ;
|
||||
SYNTAX: \c-array{ \ } [ unclip >c-array ] parse-literal ;
|
||||
|
||||
SYNTAX: c-array@
|
||||
scan-object [ scan-object scan-object ] dip
|
||||
|
|
|
@ -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 ;
|
||||
|
|
|
@ -378,16 +378,16 @@ PRIVATE>
|
|||
dup [ name>> ] map check-duplicate-slots ;
|
||||
PRIVATE>
|
||||
|
||||
SYNTAX: STRUCT:
|
||||
SYNTAX: \STRUCT:
|
||||
parse-struct-definition define-struct-class ;
|
||||
|
||||
SYNTAX: PACKED-STRUCT:
|
||||
SYNTAX: \PACKED-STRUCT:
|
||||
parse-struct-definition define-packed-struct-class ;
|
||||
|
||||
SYNTAX: UNION-STRUCT:
|
||||
SYNTAX: \UNION-STRUCT:
|
||||
parse-struct-definition define-union-struct-class ;
|
||||
|
||||
SYNTAX: S{
|
||||
SYNTAX: \S{
|
||||
scan-word dup struct-slots parse-tuple-literal-slots suffix! ;
|
||||
|
||||
SYNTAX: S@
|
||||
|
@ -412,7 +412,7 @@ SYNTAX: S@
|
|||
|
||||
PRIVATE>
|
||||
|
||||
FUNCTOR-SYNTAX: STRUCT:
|
||||
FUNCTOR-SYNTAX: \STRUCT:
|
||||
scan-param suffix!
|
||||
[ 8 <vector> ] append!
|
||||
[ parse-struct-slots* ] [ ] while
|
||||
|
|
|
@ -213,6 +213,6 @@ PRIVATE>
|
|||
|
||||
INSTANCE: dlist deque
|
||||
|
||||
SYNTAX: DL{ \ } [ >dlist ] parse-literal ;
|
||||
SYNTAX: \DL{ \ } [ >dlist ] parse-literal ;
|
||||
|
||||
{ "dlists" "prettyprint" } "dlists.prettyprint" require-when
|
||||
|
|
|
@ -14,7 +14,7 @@ IN: eval
|
|||
: eval ( str effect -- )
|
||||
[ (eval) ] with-file-vocabs ; inline
|
||||
|
||||
SYNTAX: eval( \ eval parse-call-paren ;
|
||||
SYNTAX: \eval( \ eval parse-call-paren ;
|
||||
|
||||
: (eval>string) ( str -- output )
|
||||
[
|
||||
|
|
|
@ -145,4 +145,4 @@ M: callable fry ( quot -- quot' )
|
|||
] bi
|
||||
] if-empty ;
|
||||
|
||||
SYNTAX: '[ parse-quotation fry append! ;
|
||||
SYNTAX: \'[ parse-quotation fry append! ;
|
||||
|
|
|
@ -6,8 +6,8 @@ IN: functors.backend
|
|||
DEFER: functor-words
|
||||
\ functor-words [ H{ } clone ] initialize
|
||||
|
||||
SYNTAX: FUNCTOR-SYNTAX:
|
||||
scan-word
|
||||
SYNTAX: \FUNCTOR-SYNTAX:
|
||||
scan-syntax-word
|
||||
gensym [ parse-definition define-syntax ] keep
|
||||
swap name>> \ functor-words get-global set-at ;
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ M: object (fake-quotations>) , ;
|
|||
[ parse-definition* ] dip
|
||||
suffix! ;
|
||||
|
||||
FUNCTOR-SYNTAX: TUPLE:
|
||||
FUNCTOR-SYNTAX: \TUPLE:
|
||||
scan-param suffix!
|
||||
scan-token {
|
||||
{ ";" [ tuple suffix! f suffix! ] }
|
||||
|
@ -67,15 +67,15 @@ FUNCTOR-SYNTAX: TUPLE:
|
|||
FUNCTOR-SYNTAX: final
|
||||
[ last-word make-final ] append! ;
|
||||
|
||||
FUNCTOR-SYNTAX: SINGLETON:
|
||||
FUNCTOR-SYNTAX: \SINGLETON:
|
||||
scan-param suffix!
|
||||
\ define-singleton-class suffix! ;
|
||||
|
||||
FUNCTOR-SYNTAX: MIXIN:
|
||||
FUNCTOR-SYNTAX: \MIXIN:
|
||||
scan-param suffix!
|
||||
\ define-mixin-class suffix! ;
|
||||
|
||||
FUNCTOR-SYNTAX: M:
|
||||
FUNCTOR-SYNTAX: \M:
|
||||
scan-param suffix!
|
||||
scan-param suffix!
|
||||
[ create-method-in dup \ method set ] append!
|
||||
|
@ -170,4 +170,4 @@ DEFER: ;FUNCTOR> delimiter
|
|||
|
||||
PRIVATE>
|
||||
|
||||
SYNTAX: <FUNCTOR: (<FUNCTOR:) define-declared ;
|
||||
SYNTAX: \<FUNCTOR: (<FUNCTOR:) define-declared ;
|
||||
|
|
|
@ -37,6 +37,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
|
||||
|
|
|
@ -36,6 +36,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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -22,9 +22,9 @@ IN: literals
|
|||
PRIVATE>
|
||||
|
||||
SYNTAX: $ scan-word expand-literal >vector ;
|
||||
SYNTAX: $[ parse-quotation with-datastack >vector ;
|
||||
SYNTAX: ${ \ } [ expand-literals ] parse-literal ;
|
||||
SYNTAX: flags{
|
||||
SYNTAX: \$[ parse-quotation with-datastack >vector ;
|
||||
SYNTAX: \${ \ } [ expand-literals ] parse-literal ;
|
||||
SYNTAX: \flags{
|
||||
\ } [
|
||||
expand-literals
|
||||
0 [ bitor ] reduce
|
||||
|
|
|
@ -32,7 +32,7 @@ ERROR: text-found-before-eol string ;
|
|||
(parse-here)
|
||||
] "" make but-last ;
|
||||
|
||||
SYNTAX: STRING:
|
||||
SYNTAX: \STRING:
|
||||
scan-new-word
|
||||
parse-here 1quotation
|
||||
( -- string ) define-inline ;
|
||||
|
@ -84,7 +84,7 @@ PRIVATE>
|
|||
|
||||
SYNTAX: /* "*/" parse-multiline-string drop ;
|
||||
|
||||
SYNTAX: HEREDOC:
|
||||
SYNTAX: \HEREDOC:
|
||||
lexer get {
|
||||
[ skip-blank ]
|
||||
[ rest-of-line ]
|
||||
|
@ -92,18 +92,18 @@ SYNTAX: HEREDOC:
|
|||
[ parse-til-line-begins ]
|
||||
} cleave suffix! ;
|
||||
|
||||
SYNTAX: [[ "]]" parse-multiline-string suffix! ;
|
||||
SYNTAX: [=[ "]=]" parse-multiline-string suffix! ;
|
||||
SYNTAX: [==[ "]==]" parse-multiline-string suffix! ;
|
||||
SYNTAX: [===[ "]===]" parse-multiline-string suffix! ;
|
||||
SYNTAX: [====[ "]====]" parse-multiline-string suffix! ;
|
||||
SYNTAX: [=====[ "]=====]" parse-multiline-string suffix! ;
|
||||
SYNTAX: [======[ "]======]" parse-multiline-string suffix! ;
|
||||
SYNTAX: \[[ "]]" parse-multiline-string suffix! ;
|
||||
SYNTAX: \[=[ "]=]" parse-multiline-string suffix! ;
|
||||
SYNTAX: \[==[ "]==]" parse-multiline-string suffix! ;
|
||||
SYNTAX: \[===[ "]===]" parse-multiline-string suffix! ;
|
||||
SYNTAX: \[====[ "]====]" parse-multiline-string suffix! ;
|
||||
SYNTAX: \[=====[ "]=====]" parse-multiline-string suffix! ;
|
||||
SYNTAX: \[======[ "]======]" parse-multiline-string suffix! ;
|
||||
|
||||
SYNTAX: ![[ "]]" parse-multiline-string drop ;
|
||||
SYNTAX: ![=[ "]=]" parse-multiline-string drop ;
|
||||
SYNTAX: ![==[ "]==]" parse-multiline-string drop ;
|
||||
SYNTAX: ![===[ "]===]" parse-multiline-string drop ;
|
||||
SYNTAX: ![====[ "]====]" parse-multiline-string drop ;
|
||||
SYNTAX: ![=====[ "]=====]" parse-multiline-string drop ;
|
||||
SYNTAX: ![======[ "]======]" parse-multiline-string drop ;
|
||||
SYNTAX: \![[ "]]" parse-multiline-string drop ;
|
||||
SYNTAX: \![=[ "]=]" parse-multiline-string drop ;
|
||||
SYNTAX: \![==[ "]==]" parse-multiline-string drop ;
|
||||
SYNTAX: \![===[ "]===]" parse-multiline-string drop ;
|
||||
SYNTAX: \![====[ "]====]" parse-multiline-string drop ;
|
||||
SYNTAX: \![=====[ "]=====]" parse-multiline-string drop ;
|
||||
SYNTAX: \![======[ "]======]" parse-multiline-string drop ;
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ MACRO: shuffle-effect ( effect -- quot )
|
|||
[ [ of '[ _ swap nth ] ] with map ] 2bi
|
||||
'[ @ _ cleave ] ;
|
||||
|
||||
SYNTAX: shuffle(
|
||||
SYNTAX: \shuffle(
|
||||
")" parse-effect suffix! \ shuffle-effect suffix! ;
|
||||
|
||||
: tuck ( x y -- y x y ) swap over ; inline deprecated
|
||||
|
|
|
@ -168,10 +168,10 @@ 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 ;
|
||||
|
||||
{ "specialized-arrays" "prettyprint" } "specialized-arrays.prettyprint" require-when
|
||||
|
|
|
@ -76,14 +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:
|
||||
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* ;
|
||||
|
|
|
@ -73,4 +73,4 @@ INSTANCE: CLASS-array sequence
|
|||
|
||||
;FUNCTOR>
|
||||
|
||||
SYNTAX: TUPLE-ARRAY: scan-word define-tuple-array ;
|
||||
SYNTAX: \TUPLE-ARRAY: scan-word define-tuple-array ;
|
||||
|
|
|
@ -189,6 +189,6 @@ PRIVATE>
|
|||
clone dup protocol>> '[ _ protocol-port or ] change-port ;
|
||||
|
||||
! Literal syntax
|
||||
SYNTAX: URL" lexer get skip-blank parse-string >url suffix! ;
|
||||
SYNTAX: \URL" lexer get skip-blank parse-string >url suffix! ;
|
||||
|
||||
{ "urls" "prettyprint" } "urls.prettyprint" require-when
|
||||
|
|
|
@ -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 ;
|
||||
|
|
|
@ -69,6 +69,9 @@ ERROR: number-expected ;
|
|||
: scan-word ( -- word )
|
||||
?scan-token parse-word ;
|
||||
|
||||
: scan-syntax-word ( -- word )
|
||||
?scan-token "\\" ?head drop parse-word ;
|
||||
|
||||
: scan-number ( -- number )
|
||||
?scan-token parse-number ;
|
||||
|
||||
|
|
Loading…
Reference in New Issue