functors: add MIXIN:, SINGLETON:
parent
668e56d5f3
commit
8d44994aae
|
@ -1,11 +1,11 @@
|
||||||
! Copyright (C) 2008, 2009 Slava Pestov.
|
! Copyright (C) 2008, 2009 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors arrays classes.mixin classes.parser
|
USING: accessors arrays classes.mixin classes.parser classes.singleton
|
||||||
classes.tuple classes.tuple.parser combinators effects
|
classes.tuple classes.tuple.parser combinators effects effects.parser
|
||||||
effects.parser fry generic generic.parser generic.standard
|
fry generic generic.parser generic.standard interpolate
|
||||||
interpolate io.streams.string kernel lexer locals.parser
|
io.streams.string kernel lexer locals.parser locals.rewrite.closures
|
||||||
locals.rewrite.closures locals.types make namespaces parser
|
locals.types make namespaces parser quotations sequences vocabs.parser
|
||||||
quotations sequences vocabs.parser words words.symbol ;
|
words words.symbol ;
|
||||||
IN: functors
|
IN: functors
|
||||||
|
|
||||||
! This is a hack
|
! This is a hack
|
||||||
|
@ -71,6 +71,14 @@ SYNTAX: `TUPLE:
|
||||||
} case
|
} case
|
||||||
\ define-tuple-class parsed ;
|
\ define-tuple-class parsed ;
|
||||||
|
|
||||||
|
SYNTAX: `SINGLETON:
|
||||||
|
scan-param parsed
|
||||||
|
\ define-singleton-class parsed ;
|
||||||
|
|
||||||
|
SYNTAX: `MIXIN:
|
||||||
|
scan-param parsed
|
||||||
|
\ define-mixin-class parsed ;
|
||||||
|
|
||||||
SYNTAX: `M:
|
SYNTAX: `M:
|
||||||
scan-param parsed
|
scan-param parsed
|
||||||
scan-param parsed
|
scan-param parsed
|
||||||
|
@ -134,6 +142,8 @@ DEFER: ;FUNCTOR delimiter
|
||||||
: functor-words ( -- assoc )
|
: functor-words ( -- assoc )
|
||||||
H{
|
H{
|
||||||
{ "TUPLE:" POSTPONE: `TUPLE: }
|
{ "TUPLE:" POSTPONE: `TUPLE: }
|
||||||
|
{ "SINGLETON:" POSTPONE: `SINGLETON: }
|
||||||
|
{ "MIXIN:" POSTPONE: `MIXIN: }
|
||||||
{ "M:" POSTPONE: `M: }
|
{ "M:" POSTPONE: `M: }
|
||||||
{ "C:" POSTPONE: `C: }
|
{ "C:" POSTPONE: `C: }
|
||||||
{ ":" POSTPONE: `: }
|
{ ":" POSTPONE: `: }
|
||||||
|
|
Loading…
Reference in New Issue