]> gitweb.factorcode.org Git - factor.git/blob - extra/smalltalk/classes/classes.factor
change ERROR: words from throw-foo back to foo.
[factor.git] / extra / smalltalk / classes / classes.factor
1 ! Copyright (C) 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel namespaces assocs accessors words sequences classes.tuple ;
4 IN: smalltalk.classes
5
6 SYMBOL: classes
7
8 classes [ H{ } clone ] initialize
9
10 : create-class ( class -- class )
11     "smalltalk.classes" create-word ;
12
13 ERROR: no-class name ;
14
15 : lookup-class ( class -- class )
16     classes get ?at [ no-class ] unless ;
17
18 : define-class ( class superclass ivars -- class-word )
19     [ create-class ] [ lookup-class ] [ ] tri*
20     [ define-tuple-class ] [ 2drop dup dup name>> classes get set-at ] 3bi ;
21
22 : define-foreign ( class name -- )
23     classes get set-at ;
24
25 tuple "Object" define-foreign