Lines Matching refs:Expression

39 bool walkPostorder(Expression *e, StoppableVisitor *v);
40 bool checkParamArgumentEscape(Scope *sc, FuncDeclaration *fdc, Identifier *par, Expression *arg, bo…
42 VarDeclaration *copyToTemp(StorageClass stc, const char *name, Expression *e);
43 Expression *extractSideEffect(Scope *sc, const char *name, Expression **e0, Expression *e, bool alw…
48 Expression *trySemantic(Expression *e, Scope *sc);
49 Expression *semantic(Expression *e, Scope *sc);
50 Expression *semanticX(DotIdExp *exp, Scope *sc);
51 Expression *semanticY(DotIdExp *exp, Scope *sc, int flag);
52 Expression *semanticY(DotTemplateInstanceExp *exp, Scope *sc, int flag);
53 Expression *resolve(Loc loc, Scope *sc, Dsymbol *s, bool hasOverloads);
54 bool checkUnsafeAccess(Scope *sc, Expression *e, bool readonly, bool printmsg);
66 Expression *getRightThis(Loc loc, Scope *sc, AggregateDeclaration *ad,
67 Expression *e1, Declaration *var, int flag = 0)
242 Expression *resolvePropertiesX(Scope *sc, Expression *e1, Expression *e2 = NULL)
293 Expression *e = new CallExp(loc, e1, e2);
314 Expression *e = new CallExp(loc, e1);
400 Expression *e = new CallExp(loc, e1, e2);
414 Expression *e = new CallExp(loc, e1);
425 Expression *e = new CallExp(loc, e1, e2);
452 Expression *e = new CallExp(loc, e1);
487 Expression *resolveProperties(Scope *sc, Expression *e) in resolveProperties()
500 static bool checkPropertyCall(Expression *e) in checkPropertyCall()
536 Expression *resolvePropertiesOnly(Scope *sc, Expression *e1) in resolvePropertiesOnly()
675 Expression *searchUFCS(Scope *sc, UnaExp *ue, Identifier *ident) in searchUFCS()
762 bool isDotOpDispatch(Expression *e) in isDotOpDispatch()
772 Expression *resolveUFCS(Scope *sc, CallExp *ce) in resolveUFCS()
775 Expression *eleft; in resolveUFCS()
776 Expression *e; in resolveUFCS()
783 Expression *ex = semanticX(die, sc); in resolveUFCS()
817 Expression *key = (*ce->arguments)[0]; in resolveUFCS()
834 if (Expression *ey = semanticY(die, sc, 1)) in resolveUFCS()
856 if (Expression *ey = semanticY(dti, sc, 1)) in resolveUFCS()
880 Expression *resolveUFCSProperties(Scope *sc, Expression *e1, Expression *e2 = NULL)
883 Expression *eleft;
884 Expression *e;
913 Expression *ex = e->copy();
968 Expression *e = (*exps)[i]; in arrayExpressionSemantic()
997 Expression *arg = (*exps)[i]; in expandTuples()
1028 (*exps)[i] = Expression::combine(te->e0, (*exps)[i]); in expandTuples()
1039 TupleDeclaration *isAliasThisTuple(Expression *e) in isAliasThisTuple()
1075 Expression *exp = (*exps)[u]; in expandAliasThisTuples()
1082 Expression *e = isExpression((*td->objects)[i]); in expandAliasThisTuples()
1121 Expression *e0 = NULL; // dead-store to prevent spurious warning in arrayExpressionToCommonType()
1127 Expression *e = (*exps)[i]; in arrayExpressionToCommonType()
1168 Expression *ex = semantic(&condexp, sc); in arrayExpressionToCommonType()
1190 Expression *e = (*exps)[i]; in arrayExpressionToCommonType()
1239 Expression *valueNoDtor(Expression *e) in valueNoDtor()
1313 Expression *callCpCtor(Scope *sc, Expression *e) in callCpCtor()
1330 Expression *de = new DeclarationExp(e->loc, tmp); in callCpCtor()
1331 Expression *ve = new VarExp(e->loc, tmp); in callCpCtor()
1334 e = Expression::combine(de, ve); in callCpCtor()
1343 Expression *doCopyOrMove(Scope *sc, Expression *e) in doCopyOrMove()
1377 … Type *tthis, Expressions *arguments, FuncDeclaration *fd, Type **prettype, Expression **peprefix) in functionParameters()
1387 Expression *eprefix = NULL; in functionParameters()
1435 Expression *arg; in functionParameters()
1499 Expression *a = (*arguments)[i + u]; in functionParameters()
1614 Expression *arg = (*arguments)[i]; in functionParameters()
1678 Expression *a = arg; in functionParameters()
1816 Expression *arg = (*arguments)[i]; in functionParameters()
1843 Expression *ae = new DeclarationExp(loc, gate); in functionParameters()
1849 Expression *arg = (*arguments)[i]; in functionParameters()
1892 Expression *e = tmp->edtor; in functionParameters()
1900 eprefix = Expression::combine(eprefix, semantic(ae, sc)); in functionParameters()
1921Expression *e = new AssignExp(gate->loc, new VarExp(gate->loc, gate), new IntegerExp(gate->loc, 1,… in functionParameters()
1922 eprefix = Expression::combine(eprefix, semantic(e, sc)); in functionParameters()
1956 Expression *e = new TypeidExp(loc, tup); in functionParameters()
2002 Expression::Expression(Loc loc, TOK op, int size) in Expression() function
2012 void Expression::_init() in _init()
2021 Expression *Expression::syntaxCopy() in syntaxCopy()
2032 Expression *Expression::copy() in copy()
2034 Expression *e; in copy()
2041 e = (Expression *)memcpy(pe, (void *)this, size); in copy()
2045 void Expression::print() in print()
2051 const char *Expression::toChars() in toChars()
2059 void Expression::error(const char *format, ...) const in error()
2070 void Expression::warning(const char *format, ...) const in warning()
2081 void Expression::deprecation(const char *format, ...) const in deprecation()
2095 Expression *Expression::combine(Expression *e1, Expression *e2) in combine()
2116 Expression *Expression::extractLast(Expression *e, Expression **pe0) in extractLast()
2134 Expression **pce = &ce->e2; in extractLast()
2147 dinteger_t Expression::toInteger() in toInteger()
2154 uinteger_t Expression::toUInteger() in toUInteger()
2160 real_t Expression::toReal() in toReal()
2166 real_t Expression::toImaginary() in toImaginary()
2172 complex_t Expression::toComplex() in toComplex()
2178 StringExp *Expression::toStringExp() in toStringExp()
2183 TupleExp *Expression::toTupleExp() in toTupleExp()
2192 bool Expression::isLvalue() in isLvalue()
2202 Expression *Expression::toLvalue(Scope *, Expression *e) in toLvalue()
2227 int Expression::checkModifiable(Scope *, int) in checkModifiable()
2232 Expression *Expression::modifiableLvalue(Scope *sc, Expression *e) in modifiableLvalue()
2262 bool Expression::checkType() in checkType()
2273 bool Expression::checkValue() in checkValue()
2286 bool Expression::checkScalar() in checkScalar()
2300 bool Expression::checkNoBool() in checkNoBool()
2314 bool Expression::checkIntegral() in checkIntegral()
2328 bool Expression::checkArithmetic() in checkArithmetic()
2342 void Expression::checkDeprecated(Scope *sc, Dsymbol *s) in checkDeprecated()
2353 bool Expression::checkPurity(Scope *sc, FuncDeclaration *f) in checkPurity()
2448 bool Expression::checkPurity(Scope *sc, VarDeclaration *v) in checkPurity()
2586 bool Expression::checkSafety(Scope *sc, FuncDeclaration *f) in checkSafety()
2618 bool Expression::checkNogc(Scope *sc, FuncDeclaration *f) in checkNogc()
2648 bool Expression::checkPostblit(Scope *sc, Type *t) in checkPostblit()
2678 bool Expression::checkRightThis(Scope *sc) in checkRightThis()
2701 bool Expression::checkReadModifyWrite(TOK rmwOp, Expression *ex) in checkReadModifyWrite()
2738 Expression *Expression::toBoolean(Scope *sc) in toBoolean()
2741 Expression *e = this; in toBoolean()
2786 Expression *Expression::addressOf() in addressOf()
2789 Expression *e = new AddrExp(loc, this); in addressOf()
2798 Expression *Expression::deref() in deref()
2804 Expression *e = new PtrExp(loc, this); in deref()
2814 bool Expression::isBool(bool) in isBool()
2823 Expression *Expression::resolveLoc(Loc, Scope *) in resolveLoc()
2828 Expressions *Expression::arraySyntaxCopy(Expressions *exps) in arraySyntaxCopy()
2837 Expression *e = (*exps)[i]; in arraySyntaxCopy()
2850 Expression *Expression::addDtorHook(Scope *) in addDtorHook()
2858 : Expression(loc, TOKint64, sizeof(IntegerExp)) in IntegerExp()
2874 : Expression(Loc(), TOKint64, sizeof(IntegerExp)) in IntegerExp()
2889 if (((Expression *)o)->op == TOKint64) in equals()
2972 Expression *IntegerExp::toLvalue(Scope *, Expression *e) in toLvalue()
2989 : Expression(Loc(), TOKerror, sizeof(ErrorExp)) in ErrorExp()
2994 Expression *ErrorExp::toLvalue(Scope *, Expression *) in toLvalue() argument
3002 : Expression(loc, TOKfloat64, sizeof(RealExp)) in RealExp()
3055 if (((Expression *)o)->op == TOKfloat64) in equals()
3075 : Expression(loc, TOKcomplex80, sizeof(ComplexExp)), value(value) in ComplexExp()
3115 if (((Expression *)o)->op == TOKcomplex80) in equals()
3139 : Expression(loc, TOKidentifier, sizeof(IdentifierExp)) in IdentifierExp()
3154 Expression *IdentifierExp::toLvalue(Scope *, Expression *) in toLvalue() argument
3169 : Expression(loc, TOKdsymbol, sizeof(DsymbolExp)) in DsymbolExp()
3182 Expression *resolve(Loc loc, Scope *sc, Dsymbol *s, bool hasOverloads) in resolve()
3185 Expression *e; in resolve()
3363 Expression *DsymbolExp::toLvalue(Scope *, Expression *) in toLvalue() argument
3371 : Expression(loc, TOKthis, sizeof(ThisExp)) in ThisExp()
3388 Expression *ThisExp::toLvalue(Scope *sc, Expression *e) in toLvalue()
3393 return Expression::toLvalue(sc, e); in toLvalue()
3409 : Expression(loc, TOKnull, sizeof(NullExp)) in NullExp()
3419 Expression *e = (Expression *)o; in equals()
3448 : Expression(loc, TOKstring, sizeof(StringExp)) in StringExp()
3459 : Expression(loc, TOKstring, sizeof(StringExp)) in StringExp()
3470 : Expression(loc, TOKstring, sizeof(StringExp)) in StringExp()
3495 Expression *e = (Expression *)o; in equals()
3628 Expression *e = castTo(sc, Type::tchar->arrayOf()); in toUTF8()
3709 Expression *StringExp::toLvalue(Scope *sc, Expression *e) in toLvalue()
3713 ? this : Expression::toLvalue(sc, e); in toLvalue()
3716 Expression *StringExp::modifiableLvalue(Scope *, Expression *) in modifiableLvalue() argument
3751 : Expression(loc, TOKarrayliteral, sizeof(ArrayLiteralExp)) in ArrayLiteralExp()
3759 ArrayLiteralExp::ArrayLiteralExp(Loc loc, Type *type, Expression *e) in ArrayLiteralExp()
3760 : Expression(loc, TOKarrayliteral, sizeof(ArrayLiteralExp)) in ArrayLiteralExp()
3769 ArrayLiteralExp::ArrayLiteralExp(Loc loc, Type *type, Expression *basis, Expressions *elements) in ArrayLiteralExp()
3770 : Expression(loc, TOKarrayliteral, sizeof(ArrayLiteralExp)) in ArrayLiteralExp()
3788 ((Expression *)o)->op == TOKarrayliteral) in equals()
3800 Expression *e1 = (*elements)[i]; in equals()
3801 Expression *e2 = (*ae->elements)[i]; in equals()
3815 Expression *ArrayLiteralExp::syntaxCopy() in syntaxCopy()
3823 Expression *ArrayLiteralExp::getElement(d_size_t i) in getElement()
3825 Expression *el = (*elements)[i]; in getElement()
3839 Expression *el = (*elems)[i]; in appendArrayLiteral()
3855 Expressions* ArrayLiteralExp::copyElements(Expression *e1, Expression *e2) in copyElements()
3897 Expression *ch = getElement(i); in toStringExp()
3928 : Expression(loc, TOKassocarrayliteral, sizeof(AssocArrayLiteralExp)) in AssocArrayLiteralExp()
3941 ((Expression *)o)->op == TOKassocarrayliteral) in equals()
3964 Expression *AssocArrayLiteralExp::syntaxCopy() in syntaxCopy()
3981 : Expression(loc, TOKstructliteral, sizeof(StructLiteralExp)) in StructLiteralExp()
4007 ((Expression *)o)->op == TOKstructliteral) in equals()
4016 Expression *e1 = (*elements)[i]; in equals()
4017 Expression *e2 = (*se->elements)[i]; in equals()
4027 Expression *StructLiteralExp::syntaxCopy() in syntaxCopy()
4034 Expression *StructLiteralExp::addDtorHook(Scope *sc) in addDtorHook()
4053 Expression *ae = new DeclarationExp(loc, tmp); in addDtorHook()
4054 Expression *e = new CommaExp(loc, ae, new VarExp(loc, tmp)); in addDtorHook()
4066 Expression *StructLiteralExp::getField(Type *type, unsigned offset) in getField()
4070 Expression *e = NULL; in getField()
4134 Expression *e = (*elements)[i]; in getFieldIndex()
4166 : Expression(loc, TOKtype, sizeof(TypeExp)) in TypeExp()
4172 Expression *TypeExp::syntaxCopy() in syntaxCopy()
4200 : Expression(loc, TOKscope, sizeof(ScopeExp)) in ScopeExp()
4208 Expression *ScopeExp::syntaxCopy() in syntaxCopy()
4245 : Expression(loc, TOKtemplate, sizeof(TemplateExp)) in TemplateExp()
4269 Expression *TemplateExp::toLvalue(Scope *sc, Expression *e) in toLvalue()
4272 return Expression::toLvalue(sc, e); in toLvalue()
4282 NewExp::NewExp(Loc loc, Expression *thisexp, Expressions *newargs, in NewExp()
4284 : Expression(loc, TOKnew, sizeof(NewExp)) in NewExp()
4296 NewExp *NewExp::create(Loc loc, Expression *thisexp, Expressions *newargs, in create()
4302 Expression *NewExp::syntaxCopy() in syntaxCopy()
4312 NewAnonClassExp::NewAnonClassExp(Loc loc, Expression *thisexp, in NewAnonClassExp()
4314 : Expression(loc, TOKnewanonclass, sizeof(NewAnonClassExp)) in NewAnonClassExp()
4322 Expression *NewAnonClassExp::syntaxCopy() in syntaxCopy()
4334 : Expression(loc, op, size) in SymbolExp()
4382 if (((Expression *)o)->op == TOKvar) in equals()
4401 Expression *VarExp::toLvalue(Scope *, Expression *) in toLvalue() argument
4433 Expression *VarExp::modifiableLvalue(Scope *sc, Expression *e) in modifiableLvalue()
4442 return Expression::modifiableLvalue(sc, e); in modifiableLvalue()
4449 : Expression(loc, TOKoverloadset, sizeof(OverExp)) in OverExp()
4461 Expression *OverExp::toLvalue(Scope *, Expression *) in toLvalue() argument
4468 TupleExp::TupleExp(Loc loc, Expression *e0, Expressions *exps) in TupleExp()
4469 : Expression(loc, TOKtuple, sizeof(TupleExp)) in TupleExp()
4477 : Expression(loc, TOKtuple, sizeof(TupleExp)) in TupleExp()
4485 : Expression(loc, TOKtuple, sizeof(TupleExp)) in TupleExp()
4498 Expression *e = new DsymbolExp(loc, s); in TupleExp()
4503 Expression *e = ((Expression *)o)->copy(); in TupleExp()
4510 Expression *e = new TypeExp(loc, t); in TupleExp()
4524 if (((Expression *)o)->op == TOKtuple) in equals()
4533 Expression *e1 = (*exps)[i]; in equals()
4534 Expression *e2 = (*te->exps)[i]; in equals()
4543 Expression *TupleExp::syntaxCopy() in syntaxCopy()
4556 : Expression(loc, TOKfunction, sizeof(FuncExp)) in FuncExp()
4576 if (((Expression *)o)->op == TOKfunction) in equals()
4626 Expression *FuncExp::syntaxCopy() in syntaxCopy()
4714 Expression *ex = new ScopeExp(loc, ti); in matchType()
4829 : Expression(loc, TOKdeclaration, sizeof(DeclarationExp)) in DeclarationExp()
4834 Expression *DeclarationExp::syntaxCopy() in syntaxCopy()
4855 : Expression(loc, TOKtypeid, sizeof(TypeidExp)) in TypeidExp()
4860 Expression *TypeidExp::syntaxCopy() in syntaxCopy()
4871 : Expression(loc, TOKtraits, sizeof(TraitsExp)) in TraitsExp()
4877 Expression *TraitsExp::syntaxCopy() in syntaxCopy()
4885 : Expression(loc, TOKhalt, sizeof(HaltExp)) in HaltExp()
4893 : Expression(loc, TOKis, sizeof(IsExp)) in IsExp()
4903 Expression *IsExp::syntaxCopy() in syntaxCopy()
4927 UnaExp::UnaExp(Loc loc, TOK op, int size, Expression *e1) in UnaExp()
4928 : Expression(loc, op, size) in UnaExp()
4934 Expression *UnaExp::syntaxCopy() in syntaxCopy()
4948 Expression *UnaExp::incompatibleTypes() in incompatibleTypes()
4966 Expression *UnaExp::resolveLoc(Loc loc, Scope *sc) in resolveLoc()
4974 BinExp::BinExp(Loc loc, TOK op, int size, Expression *e1, Expression *e2) in BinExp()
4975 : Expression(loc, op, size) in BinExp()
4984 Expression *BinExp::syntaxCopy() in syntaxCopy()
4993 Expression *BinExp::checkOpAssignTypes(Scope *sc) in checkOpAssignTypes()
5098 Expression *e = new AssignExp(loc, e1, e2); in checkOpAssignTypes()
5114 Expression *e = new AssignExp(loc, e1, e2); in checkOpAssignTypes()
5137 Expression *BinExp::incompatibleTypes() in incompatibleTypes()
5176 BinAssignExp::BinAssignExp(Loc loc, TOK op, int size, Expression *e1, Expression *e2) in BinAssignExp()
5186 Expression *BinAssignExp::toLvalue(Scope *, Expression *) in toLvalue() argument
5192 Expression *BinAssignExp::modifiableLvalue(Scope *sc, Expression *) in modifiableLvalue() argument
5200 CompileExp::CompileExp(Loc loc, Expression *e) in CompileExp()
5207 ImportExp::ImportExp(Loc loc, Expression *e) in ImportExp()
5214 AssertExp::AssertExp(Loc loc, Expression *e, Expression *msg) in AssertExp()
5220 Expression *AssertExp::syntaxCopy() in syntaxCopy()
5227 DotIdExp::DotIdExp(Loc loc, Expression *e, Identifier *ident) in DotIdExp()
5235 DotIdExp *DotIdExp::create(Loc loc, Expression *e, Identifier *ident) in create()
5244 DotTemplateExp::DotTemplateExp(Loc loc, Expression *e, TemplateDeclaration *td) in DotTemplateExp()
5265 DotVarExp::DotVarExp(Loc loc, Expression *e, Declaration *var, bool hasOverloads) in DotVarExp()
5278 Expression *DotVarExp::toLvalue(Scope *, Expression *) in toLvalue() argument
5288 int modifyFieldVar(Loc loc, Scope *sc, VarDeclaration *var, Expression *e1) in modifyFieldVar()
5405 Expression *DotVarExp::modifiableLvalue(Scope *sc, Expression *e) in modifiableLvalue()
5407 return Expression::modifiableLvalue(sc, e); in modifiableLvalue()
5416 DotTemplateInstanceExp::DotTemplateInstanceExp(Loc loc, Expression *e, Identifier *name, Objects *t… in DotTemplateInstanceExp()
5424 DotTemplateInstanceExp::DotTemplateInstanceExp(Loc loc, Expression *e, TemplateInstance *ti) in DotTemplateInstanceExp()
5430 Expression *DotTemplateInstanceExp::syntaxCopy() in syntaxCopy()
5443 Expression *e = new DotIdExp(loc, e1, ti->name); in findTempDecl()
5463 DelegateExp::DelegateExp(Loc loc, Expression *e, FuncDeclaration *f, bool hasOverloads) in DelegateExp()
5472 DotTypeExp::DotTypeExp(Loc loc, Expression *e, Dsymbol *s) in DotTypeExp()
5481 CallExp::CallExp(Loc loc, Expression *e, Expressions *exps) in CallExp()
5489 CallExp::CallExp(Loc loc, Expression *e) in CallExp()
5497 CallExp::CallExp(Loc loc, Expression *e, Expression *earg1) in CallExp()
5511 CallExp::CallExp(Loc loc, Expression *e, Expression *earg1, Expression *earg2) in CallExp()
5524 CallExp *CallExp::create(Loc loc, Expression *e, Expressions *exps) in create()
5529 CallExp *CallExp::create(Loc loc, Expression *e) in create()
5534 CallExp *CallExp::create(Loc loc, Expression *e, Expression *earg1) in create()
5539 Expression *CallExp::syntaxCopy() in syntaxCopy()
5559 Expression *CallExp::toLvalue(Scope *sc, Expression *e) in toLvalue()
5563 return Expression::toLvalue(sc, e); in toLvalue()
5566 Expression *CallExp::addDtorHook(Scope *sc) in addDtorHook()
5592 Expression *e = new CommaExp(loc, de, ve); in addDtorHook()
5600 FuncDeclaration *isFuncAddress(Expression *e, bool *hasOverloads = NULL)
5604 Expression *ae1 = ((AddrExp *)e)->e1;
5642 AddrExp::AddrExp(Loc loc, Expression *e) in AddrExp()
5647 AddrExp::AddrExp(Loc loc, Expression *e, Type *t) in AddrExp()
5655 PtrExp::PtrExp(Loc loc, Expression *e) in PtrExp()
5662 PtrExp::PtrExp(Loc loc, Expression *e, Type *t) in PtrExp()
5673 Expression *PtrExp::toLvalue(Scope *, Expression *) in toLvalue() argument
5692 Expression *PtrExp::modifiableLvalue(Scope *sc, Expression *e) in modifiableLvalue()
5695 return Expression::modifiableLvalue(sc, e); in modifiableLvalue()
5700 NegExp::NegExp(Loc loc, Expression *e) in NegExp()
5707 UAddExp::UAddExp(Loc loc, Expression *e) in UAddExp()
5714 ComExp::ComExp(Loc loc, Expression *e) in ComExp()
5721 NotExp::NotExp(Loc loc, Expression *e) in NotExp()
5728 DeleteExp::DeleteExp(Loc loc, Expression *e, bool isRAII) in DeleteExp()
5734 Expression *DeleteExp::toBoolean(Scope *) in toBoolean()
5742 CastExp::CastExp(Loc loc, Expression *e, Type *t) in CastExp()
5751 CastExp::CastExp(Loc loc, Expression *e, unsigned char mod) in CastExp()
5758 Expression *CastExp::syntaxCopy() in syntaxCopy()
5766 VectorExp::VectorExp(Loc loc, Expression *e, Type *t) in VectorExp()
5775 VectorExp *VectorExp::create(Loc loc, Expression *e, Type *t) in create()
5780 Expression *VectorExp::syntaxCopy() in syntaxCopy()
5787 VectorArrayExp::VectorArrayExp(Loc loc, Expression *e1) in VectorArrayExp()
5797 Expression *VectorArrayExp::toLvalue(Scope *sc, Expression *e) in toLvalue()
5805 SliceExp::SliceExp(Loc loc, Expression *e1, IntervalExp *ie) in SliceExp()
5816 SliceExp::SliceExp(Loc loc, Expression *e1, Expression *lwr, Expression *upr) in SliceExp()
5827 Expression *SliceExp::syntaxCopy() in syntaxCopy()
5856 Expression *SliceExp::toLvalue(Scope *sc, Expression *e) in toLvalue()
5860 ? this : Expression::toLvalue(sc, e); in toLvalue()
5863 Expression *SliceExp::modifiableLvalue(Scope *, Expression *) in modifiableLvalue() argument
5876 ArrayLengthExp::ArrayLengthExp(Loc loc, Expression *e1) in ArrayLengthExp()
5881 Expression *opAssignToOp(Loc loc, TOK op, Expression *e1, Expression *e2) in opAssignToOp()
5882 { Expression *e; in opAssignToOp()
5912 Expression *ArrayLengthExp::rewriteOpAssign(BinExp *exp) in rewriteOpAssign()
5914 Expression *e; in rewriteOpAssign()
5930Expression *e1 = new ArrayLengthExp(ale->loc, new PtrExp(ale->loc, new VarExp(ale->loc, tmp))); in rewriteOpAssign()
5931 Expression *elvalue = e1->syntaxCopy(); in rewriteOpAssign()
5943 IntervalExp::IntervalExp(Loc loc, Expression *lwr, Expression *upr) in IntervalExp()
5944 : Expression(loc, TOKinterval, sizeof(IntervalExp)) in IntervalExp()
5950 Expression *IntervalExp::syntaxCopy() in syntaxCopy()
5957 DelegatePtrExp::DelegatePtrExp(Loc loc, Expression *e1) in DelegatePtrExp()
5967 Expression *DelegatePtrExp::toLvalue(Scope *sc, Expression *e) in toLvalue()
5973 Expression *DelegatePtrExp::modifiableLvalue(Scope *sc, Expression *e) in modifiableLvalue()
5980 return Expression::modifiableLvalue(sc, e); in modifiableLvalue()
5985 DelegateFuncptrExp::DelegateFuncptrExp(Loc loc, Expression *e1) in DelegateFuncptrExp()
5995 Expression *DelegateFuncptrExp::toLvalue(Scope *sc, Expression *e) in toLvalue()
6001 Expression *DelegateFuncptrExp::modifiableLvalue(Scope *sc, Expression *e) in modifiableLvalue()
6008 return Expression::modifiableLvalue(sc, e); in modifiableLvalue()
6015 ArrayExp::ArrayExp(Loc loc, Expression *e1, Expression *index) in ArrayExp()
6025 ArrayExp::ArrayExp(Loc loc, Expression *e1, Expressions *args) in ArrayExp()
6033 Expression *ArrayExp::syntaxCopy() in syntaxCopy()
6047 Expression *ArrayExp::toLvalue(Scope *, Expression *) in toLvalue() argument
6056 DotExp::DotExp(Loc loc, Expression *e1, Expression *e2) in DotExp()
6063 CommaExp::CommaExp(Loc loc, Expression *e1, Expression *e2, bool generated) in CommaExp()
6075 Expression *CommaExp::toLvalue(Scope *sc, Expression *) in toLvalue() argument
6086 Expression *CommaExp::modifiableLvalue(Scope *sc, Expression *e) in modifiableLvalue()
6097 Expression *CommaExp::toBoolean(Scope *sc) in toBoolean()
6099 Expression *ex2 = e2->toBoolean(sc); in toBoolean()
6107 Expression *CommaExp::addDtorHook(Scope *sc) in addDtorHook()
6117 IndexExp::IndexExp(Loc loc, Expression *e1, Expression *e2) in IndexExp()
6126 Expression *IndexExp::syntaxCopy() in syntaxCopy()
6138 Expression *IndexExp::toLvalue(Scope *, Expression *) in toLvalue() argument
6155 Expression *IndexExp::modifiableLvalue(Scope *sc, Expression *e) in modifiableLvalue()
6158 Expression *ex = markSettingAAElem(); in modifiableLvalue()
6162 return Expression::modifiableLvalue(sc, e); in modifiableLvalue()
6165 Expression *IndexExp::markSettingAAElem() in markSettingAAElem()
6179 Expression *ex = ((IndexExp *)e1)->markSettingAAElem(); in markSettingAAElem()
6190 PostExp::PostExp(TOK op, Loc loc, Expression *e) in PostExp()
6198 PreExp::PreExp(TOK op, Loc loc, Expression *e) in PreExp()
6207 AssignExp::AssignExp(Loc loc, Expression *e1, Expression *e2) in AssignExp()
6225 Expression *AssignExp::toLvalue(Scope *sc, Expression *ex) in toLvalue()
6230 return Expression::toLvalue(sc, ex); in toLvalue()
6240 Expression *AssignExp::toBoolean(Scope *) in toBoolean()
6252 ConstructExp::ConstructExp(Loc loc, Expression *e1, Expression *e2) in ConstructExp()
6258 ConstructExp::ConstructExp(Loc loc, VarDeclaration *v, Expression *e2) in ConstructExp()
6270 BlitExp::BlitExp(Loc loc, Expression *e1, Expression *e2) in BlitExp()
6276 BlitExp::BlitExp(Loc loc, VarDeclaration *v, Expression *e2) in BlitExp()
6288 AddAssignExp::AddAssignExp(Loc loc, Expression *e1, Expression *e2) in AddAssignExp()
6295 MinAssignExp::MinAssignExp(Loc loc, Expression *e1, Expression *e2) in MinAssignExp()
6302 CatAssignExp::CatAssignExp(Loc loc, Expression *e1, Expression *e2) in CatAssignExp()
6309 MulAssignExp::MulAssignExp(Loc loc, Expression *e1, Expression *e2) in MulAssignExp()
6316 DivAssignExp::DivAssignExp(Loc loc, Expression *e1, Expression *e2) in DivAssignExp()
6323 ModAssignExp::ModAssignExp(Loc loc, Expression *e1, Expression *e2) in ModAssignExp()
6330 ShlAssignExp::ShlAssignExp(Loc loc, Expression *e1, Expression *e2) in ShlAssignExp()
6337 ShrAssignExp::ShrAssignExp(Loc loc, Expression *e1, Expression *e2) in ShrAssignExp()
6344 UshrAssignExp::UshrAssignExp(Loc loc, Expression *e1, Expression *e2) in UshrAssignExp()
6351 AndAssignExp::AndAssignExp(Loc loc, Expression *e1, Expression *e2) in AndAssignExp()
6358 OrAssignExp::OrAssignExp(Loc loc, Expression *e1, Expression *e2) in OrAssignExp()
6365 XorAssignExp::XorAssignExp(Loc loc, Expression *e1, Expression *e2) in XorAssignExp()
6372 PowAssignExp::PowAssignExp(Loc loc, Expression *e1, Expression *e2) in PowAssignExp()
6379 AddExp::AddExp(Loc loc, Expression *e1, Expression *e2) in AddExp()
6386 MinExp::MinExp(Loc loc, Expression *e1, Expression *e2) in MinExp()
6393 CatExp::CatExp(Loc loc, Expression *e1, Expression *e2) in CatExp()
6400 MulExp::MulExp(Loc loc, Expression *e1, Expression *e2) in MulExp()
6407 DivExp::DivExp(Loc loc, Expression *e1, Expression *e2) in DivExp()
6414 ModExp::ModExp(Loc loc, Expression *e1, Expression *e2) in ModExp()
6421 PowExp::PowExp(Loc loc, Expression *e1, Expression *e2) in PowExp()
6428 ShlExp::ShlExp(Loc loc, Expression *e1, Expression *e2) in ShlExp()
6435 ShrExp::ShrExp(Loc loc, Expression *e1, Expression *e2) in ShrExp()
6442 UshrExp::UshrExp(Loc loc, Expression *e1, Expression *e2) in UshrExp()
6449 AndExp::AndExp(Loc loc, Expression *e1, Expression *e2) in AndExp()
6456 OrExp::OrExp(Loc loc, Expression *e1, Expression *e2) in OrExp()
6463 XorExp::XorExp(Loc loc, Expression *e1, Expression *e2) in XorExp()
6470 OrOrExp::OrOrExp(Loc loc, Expression *e1, Expression *e2) in OrOrExp()
6475 Expression *OrOrExp::toBoolean(Scope *sc) in toBoolean()
6477 Expression *ex2 = e2->toBoolean(sc); in toBoolean()
6486 AndAndExp::AndAndExp(Loc loc, Expression *e1, Expression *e2) in AndAndExp()
6491 Expression *AndAndExp::toBoolean(Scope *sc) in toBoolean()
6493 Expression *ex2 = e2->toBoolean(sc); in toBoolean()
6502 InExp::InExp(Loc loc, Expression *e1, Expression *e2) in InExp()
6512 RemoveExp::RemoveExp(Loc loc, Expression *e1, Expression *e2) in RemoveExp()
6520 CmpExp::CmpExp(TOK op, Loc loc, Expression *e1, Expression *e2) in CmpExp()
6527 EqualExp::EqualExp(TOK op, Loc loc, Expression *e1, Expression *e2) in EqualExp()
6535 IdentityExp::IdentityExp(TOK op, Loc loc, Expression *e1, Expression *e2) in IdentityExp()
6542 CondExp::CondExp(Loc loc, Expression *econd, Expression *e1, Expression *e2) in CondExp()
6548 Expression *CondExp::syntaxCopy() in syntaxCopy()
6570 void visit(Expression *) in hookDtors()
6594 Expression *de = new DeclarationExp(ce->econd->loc, vcond); in hookDtors()
6597 Expression *ve = new VarExp(ce->econd->loc, vcond); in hookDtors()
6598 ce->econd = Expression::combine(de, ve); in hookDtors()
6602 Expression *ve = new VarExp(vcond->loc, vcond); in hookDtors()
6627 Expression *CondExp::toLvalue(Scope *sc, Expression *) in toLvalue() argument
6642 Expression *CondExp::modifiableLvalue(Scope *sc, Expression *) in modifiableLvalue() argument
6650 Expression *CondExp::toBoolean(Scope *sc) in toBoolean()
6652 Expression *ex1 = e1->toBoolean(sc); in toBoolean()
6653 Expression *ex2 = e2->toBoolean(sc); in toBoolean()
6666 : Expression(loc, TOKdefault, size) in DefaultInitExp()
6678 Expression *FileInitExp::resolveLoc(Loc loc, Scope *sc) in resolveLoc()
6684 Expression *e = new StringExp(loc, const_cast<char *>(s)); in resolveLoc()
6697 Expression *LineInitExp::resolveLoc(Loc loc, Scope *sc) in resolveLoc()
6699 Expression *e = new IntegerExp(loc, loc.linnum, Type::tint32); in resolveLoc()
6711 Expression *ModuleInitExp::resolveLoc(Loc loc, Scope *sc) in resolveLoc()
6718 Expression *e = new StringExp(loc, const_cast<char *>(s)); in resolveLoc()
6731 Expression *FuncInitExp::resolveLoc(Loc loc, Scope *sc) in resolveLoc()
6740 Expression *e = new StringExp(loc, const_cast<char *>(s)); in resolveLoc()
6753 Expression *PrettyFuncInitExp::resolveLoc(Loc loc, Scope *sc) in resolveLoc()
6774 Expression *e = new StringExp(loc, const_cast<char *>(s)); in resolveLoc()
6782 Expression *extractOpDollarSideEffect(Scope *sc, UnaExp *ue) in extractOpDollarSideEffect()
6784 Expression *e0; in extractOpDollarSideEffect()
6785 Expression *e1 = Expression::extractLast(ue->e1, &e0); in extractOpDollarSideEffect()
6811 Expression *resolveOpDollar(Scope *sc, ArrayExp *ae, Expression **pe0) in resolveOpDollar()
6826 Expression *e = (*ae->arguments)[i]; in resolveOpDollar()
6851 Expression *de = new DeclarationExp(ae->loc, ae->lengthVar); in resolveOpDollar()
6853 *pe0 = Expression::combine(*pe0, de); in resolveOpDollar()
6862 Expression *edim = new IntegerExp(ae->loc, i, Type::tsize_t); in resolveOpDollar()
6906 StringExp *semanticString(Scope *sc, Expression *exp, const char *s) in semanticString()
6916 Expression *e = exp; in semanticString()
6938 Expression *resolveOpDollar(Scope *sc, ArrayExp *ae, IntervalExp *ie, Expression **pe0) in resolveOpDollar()
6954 Expression *e = i == 0 ? ie->lwr : ie->upr; in resolveOpDollar()
6968 Expression *de = new DeclarationExp(ae->loc, ae->lengthVar); in resolveOpDollar()
6970 *pe0 = Expression::combine(*pe0, de); in resolveOpDollar()
6977 Expression *BinExp::reorderSettingAAElem(Scope *sc) in reorderSettingAAElem()
6997 Expression *e0 = NULL; in reorderSettingAAElem()
7000 Expression *de = NULL; in reorderSettingAAElem()
7002 e0 = Expression::combine(de, e0); in reorderSettingAAElem()
7004 Expression *ie1 = ie->e1; in reorderSettingAAElem()
7014 Expression *de = NULL; in reorderSettingAAElem()
7016 e0 = Expression::combine(de, e0); in reorderSettingAAElem()
7021 return Expression::combine(e0, be); in reorderSettingAAElem()