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