/**
* enum expr_flags
*
- * @EXPR_F_PRIMARY: primary expression
* @EXPR_F_CONSTANT: constant expression
* @EXPR_F_SINGLETON: singleton (implies primary and constant)
* @EXPR_F_INTERVAL_END: set member ends an open interval
*/
enum expr_flags {
- EXPR_F_PRIMARY = 0x1,
- EXPR_F_CONSTANT = 0x2,
- EXPR_F_SINGLETON = 0x4,
- EXPR_F_INTERVAL_END = 0x8,
+ EXPR_F_CONSTANT = 0x1,
+ EXPR_F_SINGLETON = 0x2,
+ EXPR_F_INTERVAL_END = 0x4,
};
#include <payload.h>
#define expr_error(ctx, expr, fmt, args...) \
expr_binary_error(ctx, expr, NULL, fmt, ## args)
-static inline bool expr_is_primary(const struct expr *expr)
-{
- return expr->flags & EXPR_F_PRIMARY ? true : false;
-}
-
static inline bool expr_is_constant(const struct expr *expr)
{
return expr->flags & EXPR_F_CONSTANT ? true : false;
*/
static int expr_evaluate_primary(struct eval_ctx *ctx, struct expr **expr)
{
- ctx->ectx.dtype = (*expr)->dtype;
- ctx->ectx.len = (*expr)->len;
- (*expr)->flags |= EXPR_F_PRIMARY;
+ expr_set_context(&ctx->ectx, (*expr)->dtype, (*expr)->len);
return 0;
}