Mercurial > projects > ldc
comparison dmd/expression.h @ 19:788401029ecf trunk
[svn r23] * Updated to DMD 1.021
author | lindquist |
---|---|
date | Thu, 04 Oct 2007 03:42:56 +0200 |
parents | c53b6e3fe49a |
children | 3cfcb944304e |
comparison
equal
deleted
inserted
replaced
18:c05ef76f1c20 | 19:788401029ecf |
---|---|
68 Dsymbol *search_function(AggregateDeclaration *ad, Identifier *funcid); | 68 Dsymbol *search_function(AggregateDeclaration *ad, Identifier *funcid); |
69 void inferApplyArgTypes(enum TOK op, Arguments *arguments, Expression *aggr); | 69 void inferApplyArgTypes(enum TOK op, Arguments *arguments, Expression *aggr); |
70 void argExpTypesToCBuffer(OutBuffer *buf, Expressions *arguments, HdrGenState *hgs); | 70 void argExpTypesToCBuffer(OutBuffer *buf, Expressions *arguments, HdrGenState *hgs); |
71 void argsToCBuffer(OutBuffer *buf, Expressions *arguments, HdrGenState *hgs); | 71 void argsToCBuffer(OutBuffer *buf, Expressions *arguments, HdrGenState *hgs); |
72 void expandTuples(Expressions *exps); | 72 void expandTuples(Expressions *exps); |
73 FuncDeclaration *hasThis(Scope *sc); | |
74 Expression *fromConstInitializer(int result, Expression *e); | |
73 | 75 |
74 struct Expression : Object | 76 struct Expression : Object |
75 { | 77 { |
76 Loc loc; // file location | 78 Loc loc; // file location |
77 enum TOK op; // handy to minimize use of dynamic_cast | 79 enum TOK op; // handy to minimize use of dynamic_cast |
620 int checkSideEffect(int flag); | 622 int checkSideEffect(int flag); |
621 | 623 |
622 elem *toElem(IRState *irs); | 624 elem *toElem(IRState *irs); |
623 }; | 625 }; |
624 | 626 |
625 struct IftypeExp : Expression | 627 struct IsExp : Expression |
626 { | 628 { |
627 /* is(targ id tok tspec) | 629 /* is(targ id tok tspec) |
628 * is(targ id == tok2) | 630 * is(targ id == tok2) |
629 */ | 631 */ |
630 Type *targ; | 632 Type *targ; |
631 Identifier *id; // can be NULL | 633 Identifier *id; // can be NULL |
632 enum TOK tok; // ':' or '==' | 634 enum TOK tok; // ':' or '==' |
633 Type *tspec; // can be NULL | 635 Type *tspec; // can be NULL |
634 enum TOK tok2; // 'struct', 'union', 'typedef', etc. | 636 enum TOK tok2; // 'struct', 'union', 'typedef', etc. |
635 | 637 |
636 IftypeExp(Loc loc, Type *targ, Identifier *id, enum TOK tok, Type *tspec, enum TOK tok2); | 638 IsExp(Loc loc, Type *targ, Identifier *id, enum TOK tok, Type *tspec, enum TOK tok2); |
637 Expression *syntaxCopy(); | 639 Expression *syntaxCopy(); |
638 Expression *semantic(Scope *sc); | 640 Expression *semantic(Scope *sc); |
639 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); | 641 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); |
640 }; | 642 }; |
641 | 643 |