aboutsummaryrefslogtreecommitdiff
path: root/scripts/parse_kconfig/doutput.c
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2015-05-01 21:52:27 +0200
committerKarel Kočí <cynerd@email.cz>2015-05-01 21:52:27 +0200
commitad499b111339a813cfcce4f717c38513f0e05ab7 (patch)
treefbd0b8a1a70bb42966186a53fc5319d36de51bb7 /scripts/parse_kconfig/doutput.c
parentf9a646a81d90b64ee83db7bb8c5a4ac2c4402298 (diff)
downloadlinux-conf-perf-ad499b111339a813cfcce4f717c38513f0e05ab7.tar.gz
linux-conf-perf-ad499b111339a813cfcce4f717c38513f0e05ab7.tar.bz2
linux-conf-perf-ad499b111339a813cfcce4f717c38513f0e05ab7.zip
parse_kconfig add debug outputs
Diffstat (limited to 'scripts/parse_kconfig/doutput.c')
-rw-r--r--scripts/parse_kconfig/doutput.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/scripts/parse_kconfig/doutput.c b/scripts/parse_kconfig/doutput.c
new file mode 100644
index 0000000..ac7927f
--- /dev/null
+++ b/scripts/parse_kconfig/doutput.c
@@ -0,0 +1,64 @@
+#include "doutput.h"
+
+void doutput_expr(struct expr *expr) {
+#ifdef DEBUG
+ if (verbose_level < 3)
+ return;
+ switch (expr->type) {
+ case E_OR:
+ printf(" OR\n");
+ doutput_expr(expr->left.expr);
+ doutput_expr(expr->right.expr);
+ break;
+ case E_AND:
+ printf(" AND\n");
+ doutput_expr(expr->left.expr);
+ doutput_expr(expr->right.expr);
+ break;
+ case E_NOT:
+ printf(" NOT\n");
+ doutput_expr(expr->left.expr);
+ break;
+ case E_EQUAL:
+ printf(" = ");
+ printf("%s ", expr->left.sym->name);
+ if (!strcmp("y", expr->right.sym->name))
+ printf("YES\n");
+ else if (!strcmp("n", expr->right.sym->name))
+ printf("NO\n");
+ else if (!strcmp("m", expr->right.sym->name))
+ printf("MODULE\n");
+ else
+ printf("%s\n", expr->left.sym->name);
+ break;
+ case E_UNEQUAL:
+ printf(" != ");
+ printf("%s ", expr->left.sym->name);
+ if (!strcmp("y", expr->right.sym->name))
+ printf("YES\n");
+ else if (!strcmp("n", expr->right.sym->name))
+ printf("NO\n");
+ else
+ printf("OTHER %s\n", expr->right.sym->name);
+ break;
+ case E_LIST:
+ printf(" list\n");
+ break;
+ case E_SYMBOL:
+ printf(" symbol");
+ if (expr->left.sym->name != NULL)
+ printf(": %s", expr->left.sym->name);
+ printf("\n");
+ break;
+ case E_RANGE:
+ printf(" range\n");
+ break;
+ case E_NONE:
+ printf(" none\n");
+ break;
+ default:
+ printf(" ERROR\n");
+ break;
+ }
+#endif /* DEBUG */
+}