X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=config%2Fexpr.c;h=e1a39e90841d809451517c7dc2b8b51cf424c329;hb=4416b9e4ef3eac922cff7913a1355518379990d1;hp=49376e12fa303df54ff84caa39863534a32657f5;hpb=1b9db75182e45199d6d2bbc3bf9eeb5014a12947;p=carl9170fw.git diff --git a/config/expr.c b/config/expr.c index 49376e1..e1a39e9 100644 --- a/config/expr.c +++ b/config/expr.c @@ -1137,48 +1137,6 @@ static int expr_compare_type(enum expr_type t1, enum expr_type t2) return 0; } -static inline struct expr * -expr_get_leftmost_symbol(const struct expr *e) -{ - - if (e == NULL) - return NULL; - - while (e->type != E_SYMBOL) - e = e->left.expr; - - return expr_copy(e); -} - -/* - * Given expression `e1' and `e2', returns the leaf of the longest - * sub-expression of `e1' not containing 'e2. - */ -struct expr *expr_simplify_unmet_dep(struct expr *e1, struct expr *e2) -{ - struct expr *ret; - - switch (e1->type) { - case E_OR: - return expr_alloc_and( - expr_simplify_unmet_dep(e1->left.expr, e2), - expr_simplify_unmet_dep(e1->right.expr, e2)); - case E_AND: { - struct expr *e; - e = expr_alloc_and(expr_copy(e1), expr_copy(e2)); - e = expr_eliminate_dups(e); - ret = (!expr_eq(e, e1)) ? e1 : NULL; - expr_free(e); - break; - } - default: - ret = e1; - break; - } - - return expr_get_leftmost_symbol(ret); -} - void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char *), void *data, int prevtoken)