24 lines
		
	
	
		
			715 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			715 B
		
	
	
	
		
			Factor
		
	
	
| ! Copyright (C) 2008, 2009 Slava Pestov.
 | |
| ! See http://factorcode.org/license.txt for BSD license.
 | |
| USING: kernel words words.symbol sequences lexer parser fry
 | |
| namespaces combinators assocs ;
 | |
| IN: cpu.x86.assembler.syntax
 | |
| 
 | |
| SYMBOL: registers
 | |
| 
 | |
| registers [ H{ } clone ] initialize
 | |
| 
 | |
| : define-register ( name num size -- word )
 | |
|     [ "cpu.x86.assembler.operands" create ] 2dip {
 | |
|         [ 2drop ]
 | |
|         [ 2drop define-symbol ]
 | |
|         [ drop "register" set-word-prop ]
 | |
|         [ nip "register-size" set-word-prop ]
 | |
|     } 3cleave ;
 | |
| 
 | |
| : define-registers ( size names -- )
 | |
|     [ swap '[ _ define-register ] map-index ] [ drop ] 2bi
 | |
|     registers get set-at ;
 | |
| 
 | |
| SYNTAX: REGISTERS: scan-word ";" parse-tokens define-registers ;
 |