Lines Matching refs:Ctx
123 CallingContext Ctx(nullptr, D); in translateAttrExpr() local
130 Ctx.SelfArg = ME->getBase(); in translateAttrExpr()
131 Ctx.SelfArrow = ME->isArrow(); in translateAttrExpr()
133 Ctx.SelfArg = CE->getImplicitObjectArgument(); in translateAttrExpr()
134 Ctx.SelfArrow = isCalleeArrow(CE->getCallee()); in translateAttrExpr()
135 Ctx.NumArgs = CE->getNumArgs(); in translateAttrExpr()
136 Ctx.FunArgs = CE->getArgs(); in translateAttrExpr()
138 Ctx.NumArgs = CE->getNumArgs(); in translateAttrExpr()
139 Ctx.FunArgs = CE->getArgs(); in translateAttrExpr()
141 Ctx.SelfArg = nullptr; // Will be set below in translateAttrExpr()
142 Ctx.NumArgs = CE->getNumArgs(); in translateAttrExpr()
143 Ctx.FunArgs = CE->getArgs(); in translateAttrExpr()
147 assert(!Ctx.SelfArg && "Ambiguous self argument"); in translateAttrExpr()
150 Ctx.SelfArg = Self; in translateAttrExpr()
152 Ctx.FunArgs = Self; in translateAttrExpr()
162 return translateAttrExpr(AttrExp, &Ctx); in translateAttrExpr()
167 return translateAttrExpr(cast<const Expr *>(Ctx.SelfArg), nullptr); in translateAttrExpr()
169 return translateAttrExpr(AttrExp, &Ctx); in translateAttrExpr()
175 CallingContext *Ctx) { in translateAttrExpr() argument
204 til::SExpr *E = translate(AttrExp, Ctx); in translateAttrExpr()
234 til::SExpr *SExprBuilder::translate(const Stmt *S, CallingContext *Ctx) { in translate() argument
245 return translateDeclRefExpr(cast<DeclRefExpr>(S), Ctx); in translate()
247 return translateCXXThisExpr(cast<CXXThisExpr>(S), Ctx); in translate()
249 return translateMemberExpr(cast<MemberExpr>(S), Ctx); in translate()
251 return translateObjCIVarRefExpr(cast<ObjCIvarRefExpr>(S), Ctx); in translate()
253 return translateCallExpr(cast<CallExpr>(S), Ctx); in translate()
255 return translateCXXMemberCallExpr(cast<CXXMemberCallExpr>(S), Ctx); in translate()
257 return translateCXXOperatorCallExpr(cast<CXXOperatorCallExpr>(S), Ctx); in translate()
259 return translateUnaryOperator(cast<UnaryOperator>(S), Ctx); in translate()
262 return translateBinaryOperator(cast<BinaryOperator>(S), Ctx); in translate()
265 return translateArraySubscriptExpr(cast<ArraySubscriptExpr>(S), Ctx); in translate()
268 cast<ConditionalOperator>(S), Ctx); in translate()
271 cast<BinaryConditionalOperator>(S), Ctx); in translate()
275 return translate(cast<ConstantExpr>(S)->getSubExpr(), Ctx); in translate()
277 return translate(cast<ParenExpr>(S)->getSubExpr(), Ctx); in translate()
279 return translate(cast<ExprWithCleanups>(S)->getSubExpr(), Ctx); in translate()
281 return translate(cast<CXXBindTemporaryExpr>(S)->getSubExpr(), Ctx); in translate()
283 return translate(cast<MaterializeTemporaryExpr>(S)->getSubExpr(), Ctx); in translate()
298 return translateDeclStmt(cast<DeclStmt>(S), Ctx); in translate()
303 return translateCastExpr(CE, Ctx); in translate()
309 CallingContext *Ctx) { in translateDeclRefExpr() argument
316 if (Ctx && Ctx->FunArgs) { in translateDeclRefExpr()
317 const Decl *Canonical = Ctx->AttrDecl->getCanonicalDecl(); in translateDeclRefExpr()
323 Ctx->FunArgs.dyn_cast<const Expr *const *>()) { in translateDeclRefExpr()
324 assert(I < Ctx->NumArgs); in translateDeclRefExpr()
325 return translate(FunArgs[I], Ctx->Prev); in translateDeclRefExpr()
329 return Ctx->FunArgs.get<til::SExpr *>(); in translateDeclRefExpr()
344 CallingContext *Ctx) { in translateCXXThisExpr() argument
346 if (Ctx && Ctx->SelfArg) { in translateCXXThisExpr()
347 if (const auto *SelfArg = dyn_cast<const Expr *>(Ctx->SelfArg)) in translateCXXThisExpr()
348 return translate(SelfArg, Ctx->Prev); in translateCXXThisExpr()
350 return cast<til::SExpr *>(Ctx->SelfArg); in translateCXXThisExpr()
392 CallingContext *Ctx) { in translateMemberExpr() argument
393 til::SExpr *BE = translate(ME->getBase(), Ctx); in translateMemberExpr()
407 CallingContext *Ctx) { in translateObjCIVarRefExpr() argument
408 til::SExpr *BE = translate(IVRE->getBase(), Ctx); in translateObjCIVarRefExpr()
420 CallingContext *Ctx, in translateCallExpr() argument
427 CallingContext LRCallCtx(Ctx); in translateCallExpr()
438 til::SExpr *E = translate(CE->getCallee(), Ctx); in translateCallExpr()
440 til::SExpr *A = translate(Arg, Ctx); in translateCallExpr()
447 const CXXMemberCallExpr *ME, CallingContext *Ctx) { in translateCXXMemberCallExpr() argument
452 auto *E = translate(ME->getImplicitObjectArgument(), Ctx); in translateCXXMemberCallExpr()
457 return translateCallExpr(cast<CallExpr>(ME), Ctx, in translateCXXMemberCallExpr()
462 const CXXOperatorCallExpr *OCE, CallingContext *Ctx) { in translateCXXOperatorCallExpr() argument
467 auto *E = translate(OCE->getArg(0), Ctx); in translateCXXOperatorCallExpr()
472 return translateCallExpr(cast<CallExpr>(OCE), Ctx); in translateCXXOperatorCallExpr()
476 CallingContext *Ctx) { in translateUnaryOperator() argument
497 return translate(UO->getSubExpr(), Ctx); in translateUnaryOperator()
502 return translate(UO->getSubExpr(), Ctx); in translateUnaryOperator()
506 til::UnaryOp(til::UOP_Minus, translate(UO->getSubExpr(), Ctx)); in translateUnaryOperator()
509 til::UnaryOp(til::UOP_BitNot, translate(UO->getSubExpr(), Ctx)); in translateUnaryOperator()
512 til::UnaryOp(til::UOP_LogicNot, translate(UO->getSubExpr(), Ctx)); in translateUnaryOperator()
526 CallingContext *Ctx, bool Reverse) { in translateBinOp() argument
527 til::SExpr *E0 = translate(BO->getLHS(), Ctx); in translateBinOp()
528 til::SExpr *E1 = translate(BO->getRHS(), Ctx); in translateBinOp()
537 CallingContext *Ctx, in translateBinAssign() argument
541 til::SExpr *E0 = translate(LHS, Ctx); in translateBinAssign()
542 til::SExpr *E1 = translate(RHS, Ctx); in translateBinAssign()
562 CallingContext *Ctx) { in translateBinaryOperator() argument
568 case BO_Mul: return translateBinOp(til::BOP_Mul, BO, Ctx); in translateBinaryOperator()
569 case BO_Div: return translateBinOp(til::BOP_Div, BO, Ctx); in translateBinaryOperator()
570 case BO_Rem: return translateBinOp(til::BOP_Rem, BO, Ctx); in translateBinaryOperator()
571 case BO_Add: return translateBinOp(til::BOP_Add, BO, Ctx); in translateBinaryOperator()
572 case BO_Sub: return translateBinOp(til::BOP_Sub, BO, Ctx); in translateBinaryOperator()
573 case BO_Shl: return translateBinOp(til::BOP_Shl, BO, Ctx); in translateBinaryOperator()
574 case BO_Shr: return translateBinOp(til::BOP_Shr, BO, Ctx); in translateBinaryOperator()
575 case BO_LT: return translateBinOp(til::BOP_Lt, BO, Ctx); in translateBinaryOperator()
576 case BO_GT: return translateBinOp(til::BOP_Lt, BO, Ctx, true); in translateBinaryOperator()
577 case BO_LE: return translateBinOp(til::BOP_Leq, BO, Ctx); in translateBinaryOperator()
578 case BO_GE: return translateBinOp(til::BOP_Leq, BO, Ctx, true); in translateBinaryOperator()
579 case BO_EQ: return translateBinOp(til::BOP_Eq, BO, Ctx); in translateBinaryOperator()
580 case BO_NE: return translateBinOp(til::BOP_Neq, BO, Ctx); in translateBinaryOperator()
581 case BO_Cmp: return translateBinOp(til::BOP_Cmp, BO, Ctx); in translateBinaryOperator()
582 case BO_And: return translateBinOp(til::BOP_BitAnd, BO, Ctx); in translateBinaryOperator()
583 case BO_Xor: return translateBinOp(til::BOP_BitXor, BO, Ctx); in translateBinaryOperator()
584 case BO_Or: return translateBinOp(til::BOP_BitOr, BO, Ctx); in translateBinaryOperator()
585 case BO_LAnd: return translateBinOp(til::BOP_LogicAnd, BO, Ctx); in translateBinaryOperator()
586 case BO_LOr: return translateBinOp(til::BOP_LogicOr, BO, Ctx); in translateBinaryOperator()
588 case BO_Assign: return translateBinAssign(til::BOP_Eq, BO, Ctx, true); in translateBinaryOperator()
589 case BO_MulAssign: return translateBinAssign(til::BOP_Mul, BO, Ctx); in translateBinaryOperator()
590 case BO_DivAssign: return translateBinAssign(til::BOP_Div, BO, Ctx); in translateBinaryOperator()
591 case BO_RemAssign: return translateBinAssign(til::BOP_Rem, BO, Ctx); in translateBinaryOperator()
592 case BO_AddAssign: return translateBinAssign(til::BOP_Add, BO, Ctx); in translateBinaryOperator()
593 case BO_SubAssign: return translateBinAssign(til::BOP_Sub, BO, Ctx); in translateBinaryOperator()
594 case BO_ShlAssign: return translateBinAssign(til::BOP_Shl, BO, Ctx); in translateBinaryOperator()
595 case BO_ShrAssign: return translateBinAssign(til::BOP_Shr, BO, Ctx); in translateBinaryOperator()
596 case BO_AndAssign: return translateBinAssign(til::BOP_BitAnd, BO, Ctx); in translateBinaryOperator()
597 case BO_XorAssign: return translateBinAssign(til::BOP_BitXor, BO, Ctx); in translateBinaryOperator()
598 case BO_OrAssign: return translateBinAssign(til::BOP_BitOr, BO, Ctx); in translateBinaryOperator()
602 return translate(BO->getRHS(), Ctx); in translateBinaryOperator()
608 CallingContext *Ctx) { in translateCastExpr() argument
617 til::SExpr *E0 = translate(CE->getSubExpr(), Ctx); in translateCastExpr()
627 til::SExpr *E0 = translate(CE->getSubExpr(), Ctx); in translateCastExpr()
632 til::SExpr *E0 = translate(CE->getSubExpr(), Ctx); in translateCastExpr()
642 CallingContext *Ctx) { in translateArraySubscriptExpr() argument
643 til::SExpr *E0 = translate(E->getBase(), Ctx); in translateArraySubscriptExpr()
644 til::SExpr *E1 = translate(E->getIdx(), Ctx); in translateArraySubscriptExpr()
650 const AbstractConditionalOperator *CO, CallingContext *Ctx) { in translateAbstractConditionalOperator() argument
651 auto *C = translate(CO->getCond(), Ctx); in translateAbstractConditionalOperator()
652 auto *T = translate(CO->getTrueExpr(), Ctx); in translateAbstractConditionalOperator()
653 auto *E = translate(CO->getFalseExpr(), Ctx); in translateAbstractConditionalOperator()
658 SExprBuilder::translateDeclStmt(const DeclStmt *S, CallingContext *Ctx) { in translateDeclStmt() argument
663 til::SExpr* SE = translate(E, Ctx); in translateDeclStmt()