diff options
author | Karel Kočí <cynerd@email.cz> | 2015-07-17 11:41:50 +0200 |
---|---|---|
committer | Karel Kočí <cynerd@email.cz> | 2015-07-17 12:07:08 +0200 |
commit | 485c55bcca5ad0480cf3c73b006a98e26ccc3f52 (patch) | |
tree | 8e237c9bd33c8d58e928ef65fceb098b030848de /scripts/parse_kconfig/cnfbuild.c | |
parent | 0369c9efcd941d9f76364568d56024b841aa66b9 (diff) | |
download | linux-conf-perf-485c55bcca5ad0480cf3c73b006a98e26ccc3f52.tar.gz linux-conf-perf-485c55bcca5ad0480cf3c73b006a98e26ccc3f52.tar.bz2 linux-conf-perf-485c55bcca5ad0480cf3c73b006a98e26ccc3f52.zip |
Simplify parse_kconfig generated CNF formulas
Not isn't now generated using additional variable.
All head formulas for all configuration options are now printed directly as formulas. Not build using functions.
Diffstat (limited to 'scripts/parse_kconfig/cnfbuild.c')
-rw-r--r-- | scripts/parse_kconfig/cnfbuild.c | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/scripts/parse_kconfig/cnfbuild.c b/scripts/parse_kconfig/cnfbuild.c index 398a934..26a9265 100644 --- a/scripts/parse_kconfig/cnfbuild.c +++ b/scripts/parse_kconfig/cnfbuild.c @@ -14,14 +14,10 @@ void cnf_or(struct symlist *sl, struct boolexpr *bl); void cnf_not(struct symlist *sl, struct boolexpr *bl); void cnf_boolexpr(struct symlist *sl, struct boolexpr *bl) { - if (bl->type == BT_TRUE) { - // Term is always true. No write required. + if (bl->type == BT_TRUE || bl->type == BT_FALSE) + return; + if (bl->id != 0) return; - } else if (bl->type == BT_FALSE) { - fprintf(stderr, - "E: Trying to write false term. This shouldn't happen.\n"); - exit(6); - } struct stck *stack = stack_create(); while (bl != NULL) { @@ -131,13 +127,18 @@ void cnf_or(struct symlist *sl, struct boolexpr *bl) { void cnf_not(struct symlist *sl, struct boolexpr *bl) { if (bl->id != 0) return; - bl->id = symlist_adddummy(sl); - // bl->id <-> !bl->left->id - // (bl->id || bl->left->id) && (!bl->id || !bl->left->id) - output_rules_symbol((int) bl->id); - output_rules_symbol((int) bl->left->id); - output_rules_endterm(); - output_rules_symbol(-(int) bl->id); - output_rules_symbol(-(int) bl->left->id); - output_rules_endterm(); + bl->id = -1 * bl->left->id; + /* + bl->id = symlist_adddummy(sl); + // bl->id <-> !bl->left->id + // (bl->id || bl->left->id) && (!bl->id || !bl->left->id) + output_rules_symbol((int) bl->id); + output_rules_symbol((int) bl->left->id); + output_rules_endterm(); + output_rules_symbol(-(int) bl->id); + output_rules_symbol(-(int) bl->left->id); + output_rules_endterm(); + output_rules_symbol((int) bl->id); + output_rules_symbol((int) bl->left->id); + */ } |