23 lines
577 B
Factor
23 lines
577 B
Factor
|
|
USING: accessors effects.parser kernel lexer multi-methods
|
|
parser sequences words ;
|
|
|
|
IN: multi-method-syntax
|
|
|
|
! A nicer specializer syntax to hold us over till multi-methods go in
|
|
! officially.
|
|
!
|
|
! Use both 'multi-methods' and 'multi-method-syntax' in that order.
|
|
|
|
: scan-specializer ( -- specializer )
|
|
|
|
scan drop ! eat opening parenthesis
|
|
|
|
")" parse-effect in>> [ search ] map ;
|
|
|
|
: CREATE-METHOD ( -- method )
|
|
scan-word scan-specializer swap create-method-in ;
|
|
|
|
: (METHOD:) ( -- method def ) CREATE-METHOD parse-definition ;
|
|
|
|
: METHOD: (METHOD:) define ; parsing |