]> gitweb.factorcode.org Git - factor.git/blob - extra/smalltalk/ast/ast.factor
First checkin of extra/smalltalk
[factor.git] / extra / smalltalk / ast / ast.factor
1 ! Copyright (C) 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: strings arrays memoize kernel ;
4 IN: smalltalk.ast
5
6 SINGLETONS: nil self super ;
7
8 TUPLE: ast-comment { string string } ;
9 TUPLE: ast-block { arguments array } { body array } ;
10 TUPLE: ast-message-send receiver { selector string } { arguments array } ;
11 TUPLE: ast-name { name string } ;
12 TUPLE: ast-return value ;
13 TUPLE: ast-assignment { name ast-name } value ;
14 TUPLE: ast-local-variables { names array } ;
15 TUPLE: ast-method { name string } { body ast-block } ;
16 TUPLE: ast-class { name string } { superclass string } { ivars array } { methods array } ;
17 TUPLE: symbol { name string } ;
18 MEMO: intern ( name -- symbol ) symbol boa ;