equal
deleted
inserted
replaced
9 other person. No title to or ownership of the software is |
9 other person. No title to or ownership of the software is |
10 hereby transferred. |
10 hereby transferred. |
11 " |
11 " |
12 |
12 |
13 ParseNode subclass:#AssignmentNode |
13 ParseNode subclass:#AssignmentNode |
14 instanceVariableNames:'variable expression' |
14 instanceVariableNames:'variable expression' |
15 classVariableNames:'' |
15 classVariableNames:'' |
16 poolDictionaries:'' |
16 poolDictionaries:'' |
17 category:'System-Compiler-Support' |
17 category:'System-Compiler-Support' |
18 ! |
18 ! |
19 |
19 |
20 !AssignmentNode class methodsFor:'documentation'! |
20 !AssignmentNode class methodsFor:'documentation'! |
21 |
21 |
22 copyright |
22 copyright |
31 other person. No title to or ownership of the software is |
31 other person. No title to or ownership of the software is |
32 hereby transferred. |
32 hereby transferred. |
33 " |
33 " |
34 ! |
34 ! |
35 |
35 |
36 version |
|
37 ^ '$Header: /cvs/stx/stx/libcomp/AssignmentNode.st,v 1.13 1995-11-11 15:29:49 cg Exp $' |
|
38 ! |
|
39 |
|
40 documentation |
36 documentation |
41 " |
37 " |
42 node for parse-trees, representing assignments |
38 node for parse-trees, representing assignments |
43 " |
39 " |
|
40 ! |
|
41 |
|
42 version |
|
43 ^ '$Header: /cvs/stx/stx/libcomp/AssignmentNode.st,v 1.14 1995-11-23 02:12:04 cg Exp $' |
44 ! ! |
44 ! ! |
45 |
45 |
46 !AssignmentNode class methodsFor:'instance creation'! |
46 !AssignmentNode class methodsFor:'instance creation'! |
47 |
47 |
48 variable:v expression:e |
48 variable:v expression:e |
49 ^ (self basicNew) variable:v expression:e |
49 ^ (self basicNew) variable:v expression:e |
50 ! ! |
50 ! ! |
51 |
51 |
52 !AssignmentNode methodsFor:'evaluating'! |
52 !AssignmentNode methodsFor:'accessing'! |
53 |
53 |
54 evaluate |
54 expression |
55 |value| |
55 ^ expression |
56 value := expression evaluate. |
56 ! |
57 variable store:value. |
|
58 ^ value |
|
59 ! ! |
|
60 |
|
61 !AssignmentNode methodsFor:'queries'! |
|
62 |
|
63 isAssignment |
|
64 "return true, if this is a node for an assignment" |
|
65 |
|
66 ^ true |
|
67 ! ! |
|
68 |
|
69 !AssignmentNode methodsFor:'accessing'! |
|
70 |
57 |
71 variable:v expression:e |
58 variable:v expression:e |
72 variable := v. |
59 variable := v. |
73 expression := e |
60 expression := e |
74 ! |
|
75 |
|
76 expression |
|
77 ^ expression |
|
78 ! ! |
61 ! ! |
79 |
62 |
80 !AssignmentNode methodsFor:'code generation'! |
63 !AssignmentNode methodsFor:'code generation'! |
81 |
64 |
82 checkIncDecOn:aStream |
65 checkIncDecOn:aStream |
124 ]. |
107 ]. |
125 expression codeOn:aStream inBlock:b for:aCompiler. |
108 expression codeOn:aStream inBlock:b for:aCompiler. |
126 variable codeStoreOn:aStream inBlock:b valueNeeded:true for:aCompiler |
109 variable codeStoreOn:aStream inBlock:b valueNeeded:true for:aCompiler |
127 ! ! |
110 ! ! |
128 |
111 |
|
112 !AssignmentNode methodsFor:'evaluating'! |
|
113 |
|
114 evaluate |
|
115 |value| |
|
116 value := expression evaluate. |
|
117 variable store:value. |
|
118 ^ value |
|
119 ! ! |
|
120 |
129 !AssignmentNode methodsFor:'printing'! |
121 !AssignmentNode methodsFor:'printing'! |
130 |
122 |
131 printOn:aStream indent:i |
123 printOn:aStream indent:i |
132 variable printOn:aStream. |
124 variable printOn:aStream. |
133 aStream nextPutAll:' := '. |
125 aStream nextPutAll:' := '. |
134 expression printOn:aStream |
126 expression printOn:aStream |
135 ! ! |
127 ! ! |
|
128 |
|
129 !AssignmentNode methodsFor:'queries'! |
|
130 |
|
131 isAssignment |
|
132 "return true, if this is a node for an assignment" |
|
133 |
|
134 ^ true |
|
135 ! ! |
|
136 |