summaryrefslogtreecommitdiffstats
path: root/src/expr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/expr.c b/src/expr.c
index 5784220..110e9b7 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -2,6 +2,7 @@
// SPDX-License-Identifier: 0BSD
#include "expr.h"
+
#include "alloc.h"
#include "ctx.h"
#include "diag.h"
@@ -10,9 +11,12 @@
#include "list.h"
#include "printf.h"
#include "xregex.h"
+
#include <string.h>
-struct bfs_expr *bfs_expr_new(struct bfs_ctx *ctx, bfs_eval_fn *eval_fn, size_t argc, char **argv) {
+struct bfs_expr *bfs_expr_new(struct bfs_ctx *ctx, bfs_eval_fn *eval_fn, size_t argc, char **argv, enum bfs_kind kind) {
+ bfs_assert(kind != BFS_PATH);
+
struct bfs_expr *expr = arena_alloc(&ctx->expr_arena);
if (!expr) {
return NULL;
@@ -22,6 +26,7 @@ struct bfs_expr *bfs_expr_new(struct bfs_ctx *ctx, bfs_eval_fn *eval_fn, size_t
expr->eval_fn = eval_fn;
expr->argc = argc;
expr->argv = argv;
+ expr->kind = kind;
expr->probability = 0.5;
SLIST_PREPEND(&ctx->expr_list, expr, freelist);