factor/basis/alien/syntax/syntax.factor

43 lines
1.1 KiB
Factor
Raw Normal View History

! 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.
2014-11-16 23:31:32 -05:00
USING: alien alien.c-types alien.enums alien.libraries
alien.parser fry kernel lexer namespaces parser sequences
strings.parser vocabs words ;
<< "alien.arrays" require >> ! needed for bootstrap
2007-09-20 18:09:08 -04:00
IN: alien.syntax
2017-08-26 15:20:04 -04:00
SYNTAX: \DLL" lexer get skip-blank parse-string dlopen suffix! ;
2007-09-20 18:09:08 -04:00
2017-08-26 16:39:16 -04:00
SYNTAX: \alien: 16 scan-base <alien> suffix! ;
2007-09-20 18:09:08 -04:00
2017-08-26 15:20:04 -04:00
SYNTAX: \BAD-ALIEN <bad-alien> suffix! ;
2017-08-26 15:20:04 -04:00
SYNTAX: \LIBRARY: scan-token current-library set ;
2007-09-20 18:09:08 -04:00
2017-08-26 15:20:04 -04:00
SYNTAX: \FUNCTION:
(FUNCTION:) make-function define-inline ;
2017-08-26 15:20:04 -04:00
SYNTAX: \FUNCTION-ALIAS:
scan-token create-function
(FUNCTION:) (make-function) define-inline ;
2007-09-20 18:09:08 -04:00
2017-08-26 15:20:04 -04:00
SYNTAX: \CALLBACK:
(CALLBACK:) define-inline ;
2017-08-26 15:20:04 -04:00
SYNTAX: \TYPEDEF:
scan-c-type CREATE-C-TYPE dup save-location typedef ;
2007-09-20 18:09:08 -04:00
2017-08-26 15:20:04 -04:00
SYNTAX: \ENUM:
parse-enum (define-enum) ;
2017-08-26 15:20:04 -04:00
SYNTAX: \C-TYPE:
void CREATE-C-TYPE typedef ;
2009-09-15 16:18:54 -04:00
2017-08-26 15:20:04 -04:00
SYNTAX: \&:
scan-token current-library get '[ _ _ address-of ] append! ;
2017-08-26 15:20:04 -04:00
SYNTAX: \C-GLOBAL: scan-c-type scan-new-word define-global ;
2017-08-26 15:20:04 -04:00
SYNTAX: \pointer:
scan-c-type <pointer> suffix! ;