| 
									
										
										
										
											2010-02-05 02:26:20 -05:00
										 |  |  | ! Copyright (C) 2005, 2010 Slava Pestov, Alex Chapman. | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | ! See http://factorcode.org/license.txt for BSD license. | 
					
						
							| 
									
										
										
										
											2010-04-13 02:58:58 -04:00
										 |  |  | USING: accessors arrays alien alien.c-types alien.enums alien.arrays | 
					
						
							| 
									
										
										
										
											2010-04-12 19:09:26 -04:00
										 |  |  | 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 ;
 | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | IN: alien.syntax | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 14:38:27 -04:00
										 |  |  | SYNTAX: DLL" lexer get skip-blank parse-string dlopen suffix! ;
 | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 14:38:27 -04:00
										 |  |  | SYNTAX: ALIEN: 16 scan-base <alien> suffix! ;
 | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 14:38:27 -04:00
										 |  |  | SYNTAX: BAD-ALIEN <bad-alien> suffix! ;
 | 
					
						
							| 
									
										
										
										
											2008-07-01 17:33:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-27 16:20:07 -04:00
										 |  |  | SYNTAX: LIBRARY: scan-token current-library set ;
 | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-21 02:27:50 -04:00
										 |  |  | SYNTAX: FUNCTION: | 
					
						
							| 
									
										
										
										
											2010-07-28 03:05:14 -04:00
										 |  |  |     (FUNCTION:) make-function define-inline ;
 | 
					
						
							| 
									
										
										
										
											2010-04-14 15:06:45 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | SYNTAX: FUNCTION-ALIAS: | 
					
						
							| 
									
										
										
										
											2010-07-06 16:20:08 -04:00
										 |  |  |     scan-token create-function | 
					
						
							| 
									
										
										
										
											2010-07-28 03:05:14 -04:00
										 |  |  |     (FUNCTION:) (make-function) define-inline ;
 | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-21 12:59:41 -04:00
										 |  |  | SYNTAX: CALLBACK: | 
					
						
							| 
									
										
										
										
											2009-09-28 20:27:28 -04:00
										 |  |  |     (CALLBACK:) define-inline ;
 | 
					
						
							| 
									
										
										
										
											2009-09-21 12:59:41 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-21 02:27:50 -04:00
										 |  |  | SYNTAX: TYPEDEF: | 
					
						
							| 
									
										
										
										
											2010-02-05 02:26:20 -05:00
										 |  |  |     scan-c-type CREATE-C-TYPE dup save-location typedef ;
 | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-13 00:02:55 -04:00
										 |  |  | SYNTAX: ENUM: | 
					
						
							| 
									
										
										
										
											2011-08-27 16:48:30 -04:00
										 |  |  |     parse-enum (define-enum) ;
 | 
					
						
							| 
									
										
										
										
											2008-12-11 01:03:58 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-15 16:18:54 -04:00
										 |  |  | SYNTAX: C-TYPE: | 
					
						
							| 
									
										
										
										
											2009-09-27 23:11:51 -04:00
										 |  |  |     void CREATE-C-TYPE typedef ;
 | 
					
						
							| 
									
										
										
										
											2009-09-15 16:18:54 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-21 02:27:50 -04:00
										 |  |  | SYNTAX: &: | 
					
						
							| 
									
										
										
										
											2011-09-27 16:20:07 -04:00
										 |  |  |     scan-token current-library get '[ _ _ address-of ] append! ;
 | 
					
						
							| 
									
										
										
										
											2009-10-09 05:46:29 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-27 16:20:07 -04:00
										 |  |  | SYNTAX: C-GLOBAL: scan-c-type scan-new-word define-global ;
 | 
					
						
							| 
									
										
										
										
											2010-02-21 19:27:36 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | SYNTAX: pointer: | 
					
						
							|  |  |  |     scan-c-type <pointer> suffix! ;
 |