1 ! Copyright (C) 2010 Anton Gorenko.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors combinators gobject-introspection.common
4 gobject-introspection.ffi gobject-introspection.loader
5 gobject-introspection.types kernel lexer locals namespaces parser
7 IN: gobject-introspection
11 :: define-gir-vocab ( file-name -- )
12 file-name file>xml xml>repository
14 [ namespace>> name>> current-namespace-name set-global ]
15 [ def-ffi-repository ]
17 V{ } clone implement-structs set-global ;
21 SYNTAX: GIR: scan define-gir-vocab ;
23 SYNTAX: IMPLEMENT-STRUCTS:
25 implement-structs [ swap append! ] change-global ;
27 SYNTAX: FOREIGN-ATOMIC-TYPE:
28 scan-token scan-object swap register-atomic-type ;
30 SYNTAX: FOREIGN-ENUM-TYPE:
31 scan-token scan-object swap register-enum-type ;
33 SYNTAX: FOREIGN-RECORD-TYPE:
34 scan-token scan-object swap register-record-type ;