Mercurial > projects > ldc
comparison dmd2/expression.h @ 1577:e4f7b5d9c68a
DMD 2.032 Merge.
author | Robert Clipsham <robert@octarineparrot.com> |
---|---|
date | Tue, 08 Sep 2009 10:07:56 +0100 |
parents | 54b3c1394d62 |
children |
comparison
equal
deleted
inserted
replaced
1576:4551475bc6b6 | 1577:e4f7b5d9c68a |
---|---|
1 | 1 |
2 // Compiler implementation of the D programming language | 2 // Compiler implementation of the D programming language |
3 // Copyright (c) 1999-2008 by Digital Mars | 3 // Copyright (c) 1999-2009 by Digital Mars |
4 // All Rights Reserved | 4 // All Rights Reserved |
5 // written by Walter Bright | 5 // written by Walter Bright |
6 // http://www.digitalmars.com | 6 // http://www.digitalmars.com |
7 // License for redistribution is by either the Artistic License | 7 // License for redistribution is by either the Artistic License |
8 // in artistic.txt, or the GNU General Public License in gnu.txt. | 8 // in artistic.txt, or the GNU General Public License in gnu.txt. |
321 { | 321 { |
322 Declaration *var; | 322 Declaration *var; |
323 | 323 |
324 ThisExp(Loc loc); | 324 ThisExp(Loc loc); |
325 Expression *semantic(Scope *sc); | 325 Expression *semantic(Scope *sc); |
326 Expression *interpret(InterState *istate); | |
326 int isBool(int result); | 327 int isBool(int result); |
327 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); | 328 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); |
328 int isLvalue(); | 329 int isLvalue(); |
329 Expression *toLvalue(Scope *sc, Expression *e); | 330 Expression *toLvalue(Scope *sc, Expression *e); |
330 void scanForNestedRef(Scope *sc); | 331 void scanForNestedRef(Scope *sc); |
359 unsigned char committed; // !=0 if type is committed | 360 unsigned char committed; // !=0 if type is committed |
360 | 361 |
361 NullExp(Loc loc); | 362 NullExp(Loc loc); |
362 Expression *semantic(Scope *sc); | 363 Expression *semantic(Scope *sc); |
363 int isBool(int result); | 364 int isBool(int result); |
365 int isConst(); | |
364 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); | 366 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); |
365 void toMangleBuffer(OutBuffer *buf); | 367 void toMangleBuffer(OutBuffer *buf); |
366 MATCH implicitConvTo(Type *t); | 368 MATCH implicitConvTo(Type *t); |
367 Expression *castTo(Scope *sc, Type *t); | 369 Expression *castTo(Scope *sc, Type *t); |
368 Expression *interpret(InterState *istate); | 370 Expression *interpret(InterState *istate); |
618 | 620 |
619 NewExp(Loc loc, Expression *thisexp, Expressions *newargs, | 621 NewExp(Loc loc, Expression *thisexp, Expressions *newargs, |
620 Type *newtype, Expressions *arguments); | 622 Type *newtype, Expressions *arguments); |
621 Expression *syntaxCopy(); | 623 Expression *syntaxCopy(); |
622 Expression *semantic(Scope *sc); | 624 Expression *semantic(Scope *sc); |
625 Expression *optimize(int result); | |
623 #if IN_DMD | 626 #if IN_DMD |
624 elem *toElem(IRState *irs); | 627 elem *toElem(IRState *irs); |
625 #endif | 628 #endif |
626 int checkSideEffect(int flag); | 629 int checkSideEffect(int flag); |
627 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); | 630 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); |
1243 Expression *optimize(int result); | 1246 Expression *optimize(int result); |
1244 Expression *interpret(InterState *istate); | 1247 Expression *interpret(InterState *istate); |
1245 int checkSideEffect(int flag); | 1248 int checkSideEffect(int flag); |
1246 void checkEscape(); | 1249 void checkEscape(); |
1247 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); | 1250 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); |
1251 void buildArrayIdent(OutBuffer *buf, Expressions *arguments); | |
1252 Expression *buildArrayLoop(Arguments *fparams); | |
1248 #if IN_DMD | 1253 #if IN_DMD |
1249 elem *toElem(IRState *irs); | 1254 elem *toElem(IRState *irs); |
1250 #endif | 1255 #endif |
1251 | 1256 |
1252 // For operator overloading | 1257 // For operator overloading |