]> gitweb.factorcode.org Git - factor.git/blob - basis/alien/syntax/syntax.factor
factor: Make source files/resources 644 instead of 755.
[factor.git] / basis / alien / syntax / syntax.factor
1 ! Copyright (C) 2005, 2010 Slava Pestov, Alex Chapman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien alien.c-types alien.enums alien.libraries
4 alien.parser fry kernel lexer namespaces parser sequences
5 strings.parser vocabs words ;
6 << "alien.arrays" require >> ! needed for bootstrap
7 IN: alien.syntax
8
9 SYNTAX: DLL" lexer get skip-blank parse-string dlopen suffix! ;
10
11 SYNTAX: ALIEN: 16 scan-base <alien> suffix! ;
12
13 SYNTAX: BAD-ALIEN <bad-alien> suffix! ;
14
15 SYNTAX: LIBRARY: scan-token current-library set ;
16
17 SYNTAX: FUNCTION:
18     (FUNCTION:) make-function define-inline ;
19
20 SYNTAX: FUNCTION-ALIAS:
21     scan-token create-function
22     (FUNCTION:) (make-function) define-inline ;
23
24 SYNTAX: CALLBACK:
25     (CALLBACK:) define-inline ;
26
27 SYNTAX: TYPEDEF:
28     scan-c-type CREATE-C-TYPE dup save-location typedef ;
29
30 SYNTAX: ENUM:
31     parse-enum (define-enum) ;
32
33 SYNTAX: C-TYPE:
34     void CREATE-C-TYPE typedef ;
35
36 SYNTAX: &:
37     scan-token current-library get '[ _ _ address-of ] append! ;
38
39 SYNTAX: C-GLOBAL: scan-c-type scan-new-word define-global ;
40
41 SYNTAX: pointer:
42     scan-c-type <pointer> suffix! ;