comparison src/ast/Expr.d @ 209:42e663451371

Renamed some of the actions. Declarations now have it's own action.
author Anders Johnsen <skabet@gmail.com>
date Tue, 12 Aug 2008 19:05:17 +0200
parents d3c148ca429b
children
comparison
equal deleted inserted replaced
208:41ccd50e7cbc 209:42e663451371
28 bool isStringLiteral() { return false; } 28 bool isStringLiteral() { return false; }
29 29
30 ArrayLiteral asArrayLiteral() { return null; } 30 ArrayLiteral asArrayLiteral() { return null; }
31 bool isArrayLiteral() { return false; } 31 bool isArrayLiteral() { return false; }
32 32
33 Assign asAssign() { return null; } 33 AssignExp asAssignExp() { return null; }
34 bool isAssign() { return false; } 34 bool isAssignExp() { return false; }
35 35
36 Binary asBinary() { return null; } 36 BinaryExp asBinaryExp() { return null; }
37 bool isBinary() { return false; } 37 bool isBinaryExp() { return false; }
38 38
39 Negate asNegate() { return null; } 39 NegateExp asNegateExp() { return null; }
40 bool isNegate() { return false; } 40 bool isNegateExp() { return false; }
41 41
42 Deref asDeref() { return null; } 42 DerefExp asDerefExp() { return null; }
43 bool isDeref() { return false; } 43 bool isDerefExp() { return false; }
44 44
45 AddressOf asAddressOf() { return null; } 45 AddressOfExp asAddressOfExp() { return null; }
46 bool isAddressOf() { return false; } 46 bool isAddressOfExp() { return false; }
47 47
48 Index asIndex() { return null; } 48 IndexExp asIndexExp() { return null; }
49 bool isIndex() { return false; } 49 bool isIndexExp() { return false; }
50 50
51 Identifier asIdentifier() { return null; } 51 Identifier asIdentifier() { return null; }
52 bool isIdentifier() { return false; } 52 bool isIdentifier() { return false; }
53 53
54 Member asMember() { return null; } 54 Member asMember() { return null; }
114 private: 114 private:
115 Expr[] arguments; 115 Expr[] arguments;
116 } 116 }
117 117
118 /** 118 /**
119 The Assign expression contains two expression, a left and a right side, 119 The AssignExp expression contains two expression, a left and a right side,
120 left being a lvalue, right being a rvalue. 120 left being a lvalue, right being a rvalue.
121 121
122 If the right side ain't the same type as the left type, the right side will 122 If the right side ain't the same type as the left type, the right side will
123 try to be promoted through an implicit cast. If this failes, an error must 123 try to be promoted through an implicit cast. If this failes, an error must
124 be given. 124 be given.
125 */ 125 */
126 class Assign : Expr 126 class AssignExp : Expr
127 { 127 {
128 override Assign asAssign() { return this; } 128 override AssignExp asAssignExp() { return this; }
129 override bool isAssign() { return true; } 129 override bool isAssignExp() { return true; }
130 130
131 private: 131 private:
132 Expr left, right; 132 Expr left, right;
133 } 133 }
134 134
135 /** 135 /**
136 Binary 136 BinaryExp
137 */ 137 */
138 class Binary : Expr 138 class BinaryExp : Expr
139 { 139 {
140 override Binary asBinary() { return this; } 140 override BinaryExp asBinaryExp() { return this; }
141 override bool isBinary() { return true; } 141 override bool isBinaryExp() { return true; }
142 142
143 private: 143 private:
144 Expr left, right; 144 Expr left, right;
145 } 145 }
146 146
147 /** 147 /**
148 Negate 148 NegateExp
149 */ 149 */
150 class Negate : Expr 150 class NegateExp : Expr
151 { 151 {
152 override Negate asNegate() { return this; } 152 override NegateExp asNegateExp() { return this; }
153 override bool isNegate() { return true; } 153 override bool isNegateExp() { return true; }
154 154
155 private: 155 private:
156 Expr expr; 156 Expr expr;
157 } 157 }
158 158
159 /** 159 /**
160 Deref 160 DerefExp
161 */ 161 */
162 class Deref : Expr 162 class DerefExp : Expr
163 { 163 {
164 override Deref asDeref() { return this; } 164 override DerefExp asDerefExp() { return this; }
165 override bool isDeref() { return true; } 165 override bool isDerefExp() { return true; }
166 } 166 }
167 167
168 /** 168 /**
169 AddressOf 169 AddressOfExp
170 */ 170 */
171 class AddressOf : Expr 171 class AddressOfExp : Expr
172 { 172 {
173 override AddressOf asAddressOf() { return this; } 173 override AddressOfExp asAddressOfExp() { return this; }
174 override bool isAddressOf() { return true; } 174 override bool isAddressOfExp() { return true; }
175 } 175 }
176 176
177 /** 177 /**
178 Index 178 IndexExp
179 */ 179 */
180 class Index : Expr 180 class IndexExp : Expr
181 { 181 {
182 override Index asIndex() { return this; } 182 override IndexExp asIndexExp() { return this; }
183 override bool isIndex() { return true; } 183 override bool isIndexExp() { return true; }
184 } 184 }
185 185
186 /** 186 /**
187 Identifier 187 Identifier
188 */ 188 */