]> gitweb.factorcode.org Git - factor.git/blob - basis/cocoa/cocoa.factor
ab86796236108bd5251620060c753e751dabaff5
[factor.git] / basis / cocoa / cocoa.factor
1 ! Copyright (C) 2006 Slava Pestov
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: compiler io kernel cocoa.runtime cocoa.subclassing
4 cocoa.messages cocoa.types sequences words vocabs parser
5 core-foundation namespaces assocs hashtables compiler.units
6 lexer init ;
7 IN: cocoa
8
9 : (remember-send) ( selector variable -- )
10     global [ dupd ?set-at ] change-at ;
11
12 SYMBOL: sent-messages
13
14 : remember-send ( selector -- )
15     sent-messages (remember-send) ;
16
17 : ->
18     scan dup remember-send parsed \ send parsed ;
19     parsing
20
21 SYMBOL: super-sent-messages
22
23 : remember-super-send ( selector -- )
24     super-sent-messages (remember-send) ;
25
26 : SUPER->
27     scan dup remember-super-send parsed \ super-send parsed ;
28     parsing
29
30 SYMBOL: frameworks
31
32 frameworks global [ V{ } clone or ] change-at
33
34 [ frameworks get [ load-framework ] each ] "cocoa.messages" add-init-hook
35
36 : FRAMEWORK: scan [ load-framework ] [ frameworks get push ] bi ; parsing
37
38 : IMPORT: scan [ ] import-objc-class ; parsing
39
40 "Compiling Objective C bridge..." print
41
42 "cocoa.classes" create-vocab drop
43
44 {
45     "cocoa" "cocoa.runtime" "cocoa.messages" "cocoa.subclassing"
46 } [ words ] map concat compile
47
48 "Importing Cocoa classes..." print
49
50 [
51     {
52         "NSApplication"
53         "NSArray"
54         "NSAutoreleasePool"
55         "NSBundle"
56         "NSData"
57         "NSDictionary"
58         "NSError"
59         "NSEvent"
60         "NSException"
61         "NSMenu"
62         "NSMenuItem"
63         "NSMutableDictionary"
64         "NSNib"
65         "NSNotification"
66         "NSNotificationCenter"
67         "NSNumber"
68         "NSObject"
69         "NSOpenGLContext"
70         "NSOpenGLPixelFormat"
71         "NSOpenGLView"
72         "NSOpenPanel"
73         "NSPasteboard"
74         "NSPropertyListSerialization"
75         "NSResponder"
76         "NSSavePanel"
77         "NSScreen"
78         "NSString"
79         "NSView"
80         "NSWindow"
81         "NSWorkspace"
82     } [
83         [ ] import-objc-class
84     ] each
85 ] with-compilation-unit