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;