diff baum.c @ 2:557fa4df2bcd

added difference between char and number
author meillo@marmaro.de
date Thu, 07 Feb 2008 14:46:27 +0100
parents 3da0ff17c8e7
children 15d7d6b9766f
line wrap: on
line diff
--- a/baum.c	Thu Feb 07 14:31:02 2008 +0100
+++ b/baum.c	Thu Feb 07 14:46:27 2008 +0100
@@ -12,8 +12,8 @@
 #include <string.h>
 
 #include "baum.h"
+#include "actions.h"
 
-char action(struct Node* node);
 
 struct Node* root;
 
@@ -49,7 +49,7 @@
 
 /* print */
 void printNode(struct Node* node) {
-	printf("Node: %20s (%c)\n", node->name, node->value);
+	printf("Node: %20s (%d|%c)\n", node->name, node->value, node->value);
 }
 
 void printTree(struct Node* root) {
@@ -69,42 +69,6 @@
 }
 
 
-char action_print(struct Node* node) {
-	printf("%c\n", action(node->down));
-	return 0;
-}
-
-char action_sum(struct Node* node) {
-	struct Node* tp;
-	tp = node->down;
-	while (tp != NULL) {
-		node->value += action(tp);
-		tp = tp->right;
-	}
-	return node->value;
-}
-
-char action_number(struct Node* node) {
-	return node->value;
-}
-
-char action(struct Node* node) {
-	if (strcmp(node->name, "print") == 0) {
-		logit("print-node");
-		return action_print(node);
-	} else if (strcmp(node->name, "sum") == 0) {
-		logit("sum-node");
-		return action_sum(node);
-	} else if (strcmp(node->name, "number") == 0) {
-		logit("number-node");
-		return action_number(node);
-	} else {
-		fprintf(stderr, "unknown kind of node");
-		exit(1);
-	}
-}
-
-
 
 /* traverse */
 void traverse(struct Node* root) {
@@ -114,7 +78,7 @@
 
 /* init */
 void init() {
-	root = newNode("print");
+	root = newNode("printchar");
 	root->down = newNode("number");
 	root->down = newNode("sum");
 	root->down->down = newNode("number");