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-12 19:09:26 -04:00
|
|
|
USING: accessors arrays alien alien.c-types 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 ;
|
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
|
|
|
|
2010-04-12 19:09:26 -04:00
|
|
|
SYNTAX: LIBRARY: scan current-library set ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2009-03-21 02:27:50 -04:00
|
|
|
SYNTAX: FUNCTION:
|
2010-04-14 15:06:45 -04:00
|
|
|
(FUNCTION:) make-function define-declared ;
|
|
|
|
|
|
|
|
SYNTAX: FUNCTION-ALIAS:
|
|
|
|
scan create-function
|
|
|
|
(FUNCTION:) (make-function) define-declared ;
|
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:
|
2010-04-13 00:58:08 -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: &:
|
2010-04-12 19:09:26 -04:00
|
|
|
scan current-library get '[ _ _ address-of ] append! ;
|
2009-10-09 05:46:29 -04:00
|
|
|
|
|
|
|
SYNTAX: C-GLOBAL: scan-c-type CREATE-WORD define-global ;
|
2010-02-21 19:27:36 -05:00
|
|
|
|
|
|
|
SYNTAX: pointer:
|
|
|
|
scan-c-type <pointer> suffix! ;
|