language: fix functors, more syntax words.

locals-and-roots
Doug Coleman 2016-06-06 15:57:24 -07:00
parent cb92c8c448
commit b77e568759
12 changed files with 37 additions and 37 deletions

View File

@ -47,7 +47,7 @@ ERROR: unknown-constructor-parameters class effect unknown ;
scan-constructor scan-effect ensure-constructor-parameters
parse-definition ;
SYNTAX: CONSTRUCTOR:
SYNTAX: \ CONSTRUCTOR:
parse-constructor
[ [ constructor-boa-quot ] dip compose ]
[ drop ] 2bi define-declared ;
@ -59,6 +59,6 @@ SYNTAX: CONSTRUCTOR:
: scan-full-input-effect ( -- effect )
"(" expect scan-rest-input-effect ;
SYNTAX: SLOT-CONSTRUCTOR:
SYNTAX: \ SLOT-CONSTRUCTOR:
scan-new-word [ name>> "(" append create-reset ] keep
'[ scan-rest-input-effect in>> _ '[ _ _ slots>boa ] append! ] define-syntax ;

View File

@ -35,7 +35,7 @@ PRIVATE>
[ [ [ dup ] 2dip [descriptive] ] keep define-declared ]
3bi ;
SYNTAX: DESCRIPTIVE: (:) define-descriptive ;
SYNTAX: \ DESCRIPTIVE: (:) define-descriptive ;
PREDICATE: descriptive < word
"descriptive-definition" word-prop >boolean ;
@ -45,7 +45,7 @@ M: descriptive definer drop \ DESCRIPTIVE: \ ; ;
M: descriptive definition
"descriptive-definition" word-prop ;
SYNTAX: DESCRIPTIVE:: (::) define-descriptive ;
SYNTAX: \ DESCRIPTIVE:: (::) define-descriptive ;
INTERSECTION: descriptive-lambda descriptive lambda-word ;

View File

@ -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 )
[

View File

@ -6,8 +6,8 @@ in: functors.backend
defer: functor-words
\ functor-words [ H{ } clone ] initialize
SYNTAX: FUNCTOR-SYNTAX:
scan-word
SYNTAX: \ FUNCTOR-SYNTAX:
scan-escaped-word
gensym [ parse-definition define-syntax ] keep
swap name>> \ functor-words get-global set-at ;

View File

@ -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,67 +67,67 @@ 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: 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: 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!
parse-definition*
\ define* suffix! ;
FUNCTOR-SYNTAX: C:
FUNCTOR-SYNTAX: \ C:
scan-param suffix!
scan-param suffix!
scan-effect
[ [ [ boa ] curry ] append! ] dip suffix!
\ define-declared* suffix! ;
FUNCTOR-SYNTAX: :
FUNCTOR-SYNTAX: \ :
scan-param suffix!
parse-declared*
\ define-declared* suffix! ;
FUNCTOR-SYNTAX: SYMBOL:
FUNCTOR-SYNTAX: \ SYMBOL:
scan-param suffix!
\ define-symbol suffix! ;
FUNCTOR-SYNTAX: symbol:
FUNCTOR-SYNTAX: \ symbol:
scan-param suffix!
\ define-symbol suffix! ;
FUNCTOR-SYNTAX: SYNTAX:
FUNCTOR-SYNTAX: \ SYNTAX:
scan-param suffix!
parse-definition*
\ define-syntax suffix! ;
FUNCTOR-SYNTAX: INSTANCE:
FUNCTOR-SYNTAX: \ INSTANCE:
scan-param suffix!
scan-param suffix!
";" expect
\ add-mixin-instance suffix! ;
FUNCTOR-SYNTAX: GENERIC:
FUNCTOR-SYNTAX: \ GENERIC:
scan-param suffix!
scan-effect suffix!
";" expect
\ define-simple-generic* suffix! ;
FUNCTOR-SYNTAX: MACRO:
FUNCTOR-SYNTAX: \ MACRO:
scan-param suffix!
parse-declared*
\ define-macro suffix! ;
@ -184,4 +184,4 @@ defer: ;FUNCTOR delimiter
PRIVATE>
SYNTAX: FUNCTOR: (FUNCTOR:) define-declared ;
SYNTAX: \ FUNCTOR: (FUNCTOR:) define-declared ;

View File

@ -21,10 +21,10 @@ in: literals
PRIVATE>
SYNTAX: $ scan-word expand-literal >vector ;
SYNTAX: $[ parse-quotation with-datastack >vector ;
SYNTAX: ${ \ } [ expand-literals ] parse-literal ;
SYNTAX: flags{
SYNTAX: \ $ scan-word expand-literal >vector ;
SYNTAX: \ $[ parse-quotation with-datastack >vector ;
SYNTAX: \ ${ \ } [ expand-literals ] parse-literal ;
SYNTAX: \ flags{
\ } [
expand-literals
0 [ bitor ] reduce

View File

@ -17,7 +17,7 @@ symbol: _
: define-match-vars ( seq -- )
[ define-match-var ] each ;
SYNTAX: MATCH-VARS: ! vars ...
SYNTAX: \ MATCH-VARS: ! vars ...
";" [ define-match-var ] each-token ;
PREDICATE: match-var < word "match-var" word-prop ;

View File

@ -3,5 +3,5 @@
USING: kernel generic generic.parser words fry ;
in: method-chains
SYNTAX: AFTER: (M:) dupd '[ [ _ (call-next-method) ] _ bi ] define ;
SYNTAX: BEFORE: (M:) over '[ _ [ _ (call-next-method) ] bi ] define ;
SYNTAX: \ AFTER: (M:) dupd '[ [ _ (call-next-method) ] _ bi ] define ;
SYNTAX: \ BEFORE: (M:) over '[ _ [ _ (call-next-method) ] bi ] define ;

View File

@ -224,7 +224,7 @@ M: no-method error.
] if ;
! Syntax
SYNTAX: GENERIC: scan-new-word scan-effect ";" expect define-generic ;
SYNTAX: \ GENERIC: scan-new-word scan-effect ";" expect define-generic ;
: parse-method ( -- quot classes generic )
parse-definition [ 2 tail ] [ second ] [ first ] tri ;
@ -237,10 +237,10 @@ SYNTAX: GENERIC: scan-new-word scan-effect ";" expect define-generic ;
: (METHOD:) ( -- method def ) scan-new-method parse-definition ;
SYNTAX: METHOD: (METHOD:) define ;
SYNTAX: \ METHOD: (METHOD:) define ;
! For compatibility
SYNTAX: M:
SYNTAX: \ M:
scan-word 1array scan-word create-method-in
parse-definition
define ;

View File

@ -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 ]

View File

@ -39,7 +39,7 @@ ERROR: no-pair-method a b generic ;
: (PAIR-GENERIC:) ( -- )
scan-new-generic scan-effect define-pair-generic ;
SYNTAX: PAIR-GENERIC: (PAIR-GENERIC:) ;
SYNTAX: \ PAIR-GENERIC: (PAIR-GENERIC:) ;
: define-pair-method ( a b pair-generic definition -- )
[ 2array ] 2dip swap
@ -54,4 +54,4 @@ SYNTAX: PAIR-GENERIC: (PAIR-GENERIC:) ;
?swap scan-word parse-definition
] keep ?prefix-swap define-pair-method ;
SYNTAX: PAIR-M: (PAIR-M:) ;
SYNTAX: \ PAIR-M: (PAIR-M:) ;

View File

@ -607,7 +607,7 @@ PRIVATE>
ERROR: parse-failed input word ;
SYNTAX: PEG:
SYNTAX: \ PEG:
[let
(:) :> ( word def effect )
[