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 |