author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Thu, 30 Oct 2014 22:23:12 +0000 | |
changeset 43 | c8afb8e4c3cc |
parent 42 | acdc3ec6d152 |
permissions | -rw-r--r-- |
41
f3898a3b378d
Package renamed from cvut:stx/goodies/newcompiler to ctu:ircompiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
37
diff
changeset
|
1 |
"{ Package: 'ctu:ircompiler' }" |
9
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
|
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
3 |
IRFunction subclass:#IRClosure |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
4 |
instanceVariableNames:'' |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
5 |
classVariableNames:'' |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
6 |
poolDictionaries:'' |
42
acdc3ec6d152
Better class category name - IR Compiler-*
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
41
diff
changeset
|
7 |
category:'IR Compiler-IR' |
9
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
! |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
9 |
|
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
10 |
|
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
11 |
!IRClosure methodsFor:'accessing'! |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
12 |
|
37 | 13 |
environmentIr |
14 |
^ environmentIr |
|
15 |
! |
|
16 |
||
9
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
17 |
environmentIr:something |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
18 |
environmentIr := something. |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
19 |
! ! |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
20 |
|
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
21 |
!IRClosure methodsFor:'accessing - defaults'! |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
22 |
|
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
23 |
defaultCompiledCodeClass |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
24 |
"raise an error: must be redefined in concrete subclass(es)" |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
25 |
|
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
26 |
^Block |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
27 |
|
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
28 |
"Modified: / 30-03-2009 / 16:36:02 / Jan Vrany <vranyj1@fel.cvut.cz>" |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
29 |
! ! |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
30 |
|
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
31 |
!IRClosure methodsFor:'instructions - helpers'! |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
32 |
|
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
33 |
tempArgKindForLevel:level |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
34 |
"Superclass IRFunction says that I am responsible to implement this method" |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
35 |
|
10
0fd549e0c784
First simple block works. See IRBuilderTest>>testBlock_blockTempArg.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
9
diff
changeset
|
36 |
^level isZero |
0fd549e0c784
First simple block works. See IRBuilderTest>>testBlock_blockTempArg.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
9
diff
changeset
|
37 |
ifTrue: [#BArg] |
0fd549e0c784
First simple block works. See IRBuilderTest>>testBlock_blockTempArg.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
9
diff
changeset
|
38 |
ifFalse:[#OBArg] |
0fd549e0c784
First simple block works. See IRBuilderTest>>testBlock_blockTempArg.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
9
diff
changeset
|
39 |
|
0fd549e0c784
First simple block works. See IRBuilderTest>>testBlock_blockTempArg.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
9
diff
changeset
|
40 |
"Modified: / 30-03-2009 / 18:36:30 / Jan Vrany <vranyj1@fel.cvut.cz>" |
9
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
41 |
! |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
42 |
|
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
43 |
tempVarKindForLevel:level |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
44 |
"Superclass IRFunction says that I am responsible to implement this method" |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
45 |
|
11
0a50d475c1ff
Blocks seems to work. No support for nested block. No support for
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
10
diff
changeset
|
46 |
^level isZero |
0a50d475c1ff
Blocks seems to work. No support for nested block. No support for
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
10
diff
changeset
|
47 |
ifTrue: [#BVar] |
0a50d475c1ff
Blocks seems to work. No support for nested block. No support for
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
10
diff
changeset
|
48 |
ifFalse:[#OBVar] |
0a50d475c1ff
Blocks seems to work. No support for nested block. No support for
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
10
diff
changeset
|
49 |
|
0a50d475c1ff
Blocks seems to work. No support for nested block. No support for
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
10
diff
changeset
|
50 |
"Modified: / 30-03-2009 / 23:05:37 / Jan Vrany <vranyj1@fel.cvut.cz>" |
9
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
51 |
! ! |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
52 |
|
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
53 |
!IRClosure methodsFor:'testing'! |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
54 |
|
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
55 |
isIRClosure |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
56 |
^ true |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
57 |
! ! |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
58 |
|
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
59 |
!IRClosure class methodsFor:'documentation'! |
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
60 |
|
23
377bc46cad12
Moved to package cvut:stx/goodies/newcompiler to be in sync with eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
11
diff
changeset
|
61 |
version_CVS |
41
f3898a3b378d
Package renamed from cvut:stx/goodies/newcompiler to ctu:ircompiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
37
diff
changeset
|
62 |
^ 'Header: /cvs/stx/cvut/stx/goodies/newcompiler/IRClosure.st,v 1.3 2009/10/08 12:00:40 fm Exp ' |
23
377bc46cad12
Moved to package cvut:stx/goodies/newcompiler to be in sync with eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
11
diff
changeset
|
63 |
! |
377bc46cad12
Moved to package cvut:stx/goodies/newcompiler to be in sync with eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
11
diff
changeset
|
64 |
|
377bc46cad12
Moved to package cvut:stx/goodies/newcompiler to be in sync with eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
11
diff
changeset
|
65 |
version_SVN |
37 | 66 |
^ '$Id:: $' |
9
04518c7fb91c
Initial support for closures.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
67 |
! ! |
42
acdc3ec6d152
Better class category name - IR Compiler-*
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
41
diff
changeset
|
68 |