Lines Matching defs:expr

35     if ((op.kind() == Token::Kind::TK_LOGICALAND && rightVal)  ||  // (expr && true)  -> (expr)
36 (op.kind() == Token::Kind::TK_LOGICALOR && !rightVal) || // (expr || false) -> (expr)
37 (op.kind() == Token::Kind::TK_LOGICALXOR && !rightVal) || // (expr ^^ false) -> (expr)
38 (op.kind() == Token::Kind::TK_EQEQ && rightVal) || // (expr == true) -> (expr)
39 (op.kind() == Token::Kind::TK_NEQ && !rightVal)) { // (expr != false) -> (expr)
53 if ((op.kind() == Token::Kind::TK_LOGICALAND && !leftVal) || // (false && expr) -> (false)
54 (op.kind() == Token::Kind::TK_LOGICALOR && leftVal)) { // (true || expr) -> (true)
132 const Expression& expr,
135 ctorArgs.push_back(expr.clone());
136 return Constructor::Convert(context, expr.fLine, type, std::move(ctorArgs));
140 const Expression* expr = GetConstantValueForVariable(value);
141 if (!expr->isIntLiteral()) {
144 *out = expr->as<Literal>().intValue();
149 const Expression* expr = GetConstantValueForVariable(value);
150 if (!expr->is<Literal>()) {
153 *out = expr->as<Literal>().value();
157 static bool contains_constant_zero(const Expression& expr) {
158 int numSlots = expr.type().slotCount();
160 skstd::optional<double> slotVal = expr.getConstantValue(index);
168 static bool is_constant_value(const Expression& expr, double value) {
169 int numSlots = expr.type().slotCount();
171 skstd::optional<double> slotVal = expr.getConstantValue(index);
197 for (const Expression* expr = &inExpr;;) {
198 if (!expr->is<VariableReference>()) {
201 const VariableReference& varRef = expr->as<VariableReference>();
209 expr = var.initialValue();
210 if (!expr) {
214 if (expr->isCompileTimeConstant()) {
215 return expr;
223 std::unique_ptr<Expression> expr) {
224 const Expression* constantExpr = GetConstantValueForVariable(*expr);
225 if (constantExpr != expr.get()) {
226 expr = constantExpr->clone();
228 return expr;
410 std::unique_ptr<Expression> expr = simplify_no_op_arithmetic(context, *left, op, *right,
412 if (expr) {
413 return expr;