Mercurial > hg > dmlib
changeset 700:6d96d5bf9653
Add output file stream argument to dm_print_optree().
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 16 Apr 2013 21:29:37 +0300 |
parents | f6cf172a6ef7 |
children | e8224750f576 |
files | dmeval.c dmeval.h tests/evaltest.c |
diffstat | 3 files changed, 19 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/dmeval.c Tue Apr 16 21:03:52 2013 +0300 +++ b/dmeval.c Tue Apr 16 21:29:37 2013 +0300 @@ -679,7 +679,7 @@ }; -static void dm_print_optree_do(DMEvalContext *ev, DMEvalNode *node, const int level) +static void dm_print_optree_do(FILE *out, DMEvalContext *ev, DMEvalNode *node, const int level) { int i; while (node != NULL) @@ -687,38 +687,38 @@ switch (node->op) { case OP_FUNC: - printf("%s(", node->id != NULL ? node->id->name : "?ERROR"); + fprintf(out, "%s(", node->id != NULL ? node->id->name : "?ERROR"); for (i = 0; i < node->id->nargs; i++) { - dm_print_optree_do(ev, node->args[i], level + 1); + dm_print_optree_do(out, ev, node->args[i], level + 1); if (i < node->id->nargs - 1) - printf(","); + fprintf(out, ","); } - printf(")"); + fprintf(out, ")"); break; case OP_VAR: - printf("%s", node->id != NULL ? node->id->name : "?ERROR"); + fprintf(out, "%s", node->id != NULL ? node->id->name : "?ERROR"); break; case OP_CONST: - printf("%.1f", node->val); + fprintf(out, "%.1f", node->val); break; case OP_SUBEXPR: - printf("("); + fprintf(out, "("); if (node->subexpr != NULL) - dm_print_optree_do(ev, node->subexpr, level + 1); + dm_print_optree_do(out, ev, node->subexpr, level + 1); else - printf("?ERROR"); - printf(")"); + fprintf(out, "?ERROR"); + fprintf(out, ")"); break; default: if (node->op > 0 && node->op < OP_NOPERS) - printf("%s", dm_oper_names[node->op]); + fprintf(out, "%s", dm_oper_names[node->op]); else - printf("ERROR!"); + fprintf(out, "ERROR!"); break; } node = node->next; @@ -726,10 +726,10 @@ } -void dm_print_optree(DMEvalContext *ev, DMEvalNode *node) +void dm_print_optree(FILE *out, DMEvalContext *ev, DMEvalNode *node) { - dm_print_optree_do(ev, node, 0); - printf("\n"); + dm_print_optree_do(out, ev, node, 0); + fprintf(out, "\n"); }
--- a/dmeval.h Tue Apr 16 21:03:52 2013 +0300 +++ b/dmeval.h Tue Apr 16 21:29:37 2013 +0300 @@ -93,7 +93,7 @@ int dm_eval_reorder(DMEvalContext *ev, DMEvalNode *node, DMEvalNode **result); int dm_eval_exec(DMEvalContext *ev, DMEvalNode *tree, DMValue *presult); -void dm_print_optree(DMEvalContext *ev, DMEvalNode *node); +void dm_print_optree(FILE *out, DMEvalContext *ev, DMEvalNode *node); #endif // DMEVAL_H
--- a/tests/evaltest.c Tue Apr 16 21:03:52 2013 +0300 +++ b/tests/evaltest.c Tue Apr 16 21:29:37 2013 +0300 @@ -95,7 +95,7 @@ dmError("%s\n", ev->errStr); if (dmVerbosity > 0) - dm_print_optree(ev, parsed); + dm_print_optree(stdout, ev, parsed); if (ret != 0) return -1; @@ -109,7 +109,7 @@ dmError("%s\n", ev->errStr); if (dmVerbosity > 0) - dm_print_optree(ev, ordered); + dm_print_optree(stdout, ev, ordered); if (ret != 0) return -2;