Mercurial > projects > dang
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 */ |