Lines Matching defs:expr

73         bool visitExpression(const Expression& expr) override {
117 bool visitExpression(const Expression& expr) override {
118 if (expr.is<FunctionCall>() && expr.as<FunctionCall>().function().matches(*fFuncDecl)) {
121 return INHERITED::visitExpression(expr);
160 std::unique_ptr<Expression> clone_with_ref_kind(const Expression& expr,
162 std::unique_ptr<Expression> clone = expr.clone();
173 bool visitExpression(const Expression& expr) override {
228 Expression* expr = iter->second.get();
229 SkASSERT(expr);
230 if (!expr->is<VariableReference>()) {
235 return expr->as<VariableReference>().variable();
304 auto expr = [&](const std::unique_ptr<Expression>& e) -> std::unique_ptr<Expression> {
314 args.push_back(expr(arg));
323 expr(binaryExpr.left()),
325 expr(binaryExpr.right()));
347 expr(ctor.argument()));
359 expr(ctor.argument()));
365 expr(ctor.argument()));
371 expr(ctor.argument()));
377 expr(ctor.argument()));
383 expr(ctor.argument()));
400 return FieldAccess::Make(*fContext, expr(f.base()), f.fieldIndex(), f.ownerKind());
414 return IndexExpression::Make(*fContext, expr(idx.base()), expr(idx.index()));
420 return PrefixExpression::Make(*fContext, p.getOperator(), expr(p.operand()));
424 return PostfixExpression::Make(*fContext, expr(p.operand()), p.getOperator());
430 return Swizzle::Make(*fContext, expr(s.base()), s.components());
434 return TernaryExpression::Make(*fContext, expr(t.test()),
435 expr(t.ifTrue()), expr(t.ifFalse()));
475 auto expr = [&](const std::unique_ptr<Expression>& e) -> std::unique_ptr<Expression> {
499 return DoStatement::Make(*fContext, stmt(d.statement()), expr(d.test()));
503 return ExpressionStatement::Make(*fContext, expr(e.expression()));
519 return ForStatement::Make(*fContext, line, std::move(initializer), expr(f.test()),
520 expr(f.next()), stmt(f.statement()), std::move(unrollInfo),
525 return IfStatement::Make(*fContext, line, i.isStatic(), expr(i.test()),
545 *resultExpr = expr(r.expression());
557 expr(r.expression())));
569 cases.push_back(std::make_unique<SwitchCase>(line, expr(sc.value()),
572 return SwitchStatement::Make(*fContext, line, ss.isStatic(), expr(ss.value()),
577 std::unique_ptr<Expression> initialValue = expr(decl.value());
860 ExpressionStatement& expr = (*stmt)->as<ExpressionStatement>();
861 this->visitExpression(&expr.expression());
931 void visitExpression(std::unique_ptr<Expression>* expr) {
932 if (!*expr) {
936 switch ((*expr)->kind()) {
949 BinaryExpression& binaryExpr = (*expr)->as<BinaryExpression>();
969 ChildCall& childCallExpr = (*expr)->as<ChildCall>();
984 AnyConstructor& constructorExpr = (*expr)->asAnyConstructor();
991 ExternalFunctionCall& funcCallExpr = (*expr)->as<ExternalFunctionCall>();
998 FunctionCall& funcCallExpr = (*expr)->as<FunctionCall>();
1002 this->addInlineCandidate(expr);
1006 IndexExpression& indexExpr = (*expr)->as<IndexExpression>();
1012 PostfixExpression& postfixExpr = (*expr)->as<PostfixExpression>();
1017 PrefixExpression& prefixExpr = (*expr)->as<PrefixExpression>();
1022 Swizzle& swizzleExpr = (*expr)->as<Swizzle>();
1027 TernaryExpression& ternaryExpr = (*expr)->as<TernaryExpression>();