44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Factor
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Factor
		
	
	
		
			Executable File
		
	
| ! Copyright (C) 2005, 2010 Slava Pestov, Alex Chapman.
 | |
| ! See http://factorcode.org/license.txt for BSD license.
 | |
| USING: accessors arrays alien alien.c-types alien.enums alien.arrays
 | |
| alien.strings kernel math namespaces parser sequences words
 | |
| quotations math.parser splitting grouping effects assocs
 | |
| combinators lexer strings.parser alien.parser fry vocabs.parser
 | |
| words.constant alien.libraries ;
 | |
| IN: alien.syntax
 | |
| 
 | |
| SYNTAX: DLL" lexer get skip-blank parse-string dlopen suffix! ;
 | |
| 
 | |
| SYNTAX: ALIEN: 16 scan-base <alien> suffix! ;
 | |
| 
 | |
| SYNTAX: BAD-ALIEN <bad-alien> suffix! ;
 | |
| 
 | |
| SYNTAX: LIBRARY: scan-token current-library set ;
 | |
| 
 | |
| SYNTAX: FUNCTION:
 | |
|     (FUNCTION:) make-function define-inline ;
 | |
| 
 | |
| SYNTAX: FUNCTION-ALIAS:
 | |
|     scan-token create-function
 | |
|     (FUNCTION:) (make-function) define-inline ;
 | |
| 
 | |
| SYNTAX: CALLBACK:
 | |
|     (CALLBACK:) define-inline ;
 | |
| 
 | |
| SYNTAX: TYPEDEF:
 | |
|     scan-c-type CREATE-C-TYPE dup save-location typedef ;
 | |
| 
 | |
| SYNTAX: ENUM:
 | |
|     parse-enum (define-enum) ;
 | |
| 
 | |
| SYNTAX: C-TYPE:
 | |
|     void CREATE-C-TYPE typedef ;
 | |
| 
 | |
| SYNTAX: &:
 | |
|     scan-token current-library get '[ _ _ address-of ] append! ;
 | |
| 
 | |
| SYNTAX: C-GLOBAL: scan-c-type scan-new-word define-global ;
 | |
| 
 | |
| SYNTAX: pointer:
 | |
|     scan-c-type <pointer> suffix! ;
 |