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