new->parent = TREENULL;
new->label = NULL;
new->name = new->reg = (char *)NULL;
- new->val = new->exprcount = 0;
+ new->val = 0;
new->param_index = -1;
return new;
}
-struct treenode *new_node(int op, struct treenode *l, struct treenode *r, int exprcount)
+struct treenode *new_node(int op, struct treenode *l, struct treenode *r)
{
struct treenode *new = TREENULL;
fprintf(stderr, "new_node: %i (%s)\n", op, o_names[op]);
#endif
if(op == O_SUB && l != TREENULL && r != TREENULL && l->op == O_NUM && r->op == O_NUM) {
- new = new_number(l->val - r->val, exprcount);
+ new = new_number(l->val - r->val);
free(l); free(r);
} else {
new = _new_plain(op);
new->kids[0] = l;
new->kids[1] = r;
- new->exprcount = exprcount;
}
new->name = (char *)NULL;
return new;
}
-struct treenode *new_param(int op, char *name, struct treenode *l, struct treenode *r, int param_index, int exprcount)
+struct treenode *new_param(int op, char *name, struct treenode *l, struct treenode *r, int param_index)
{
- struct treenode *new = new_node(op, l, r, exprcount);
+ struct treenode *new = new_node(op, l, r);
#ifdef DDTREE
fprintf(stderr, "new_param: %i (index)\n", param_index);
return new;
}
-struct treenode *new_field(char *name, struct treenode *l, struct treenode *r, int soffset, int exprcount)
+struct treenode *new_field(char *name, struct treenode *l, struct treenode *r, int soffset)
{
- struct treenode *new = new_node(O_FIELD, l, r, exprcount);
+ struct treenode *new = new_node(O_FIELD, l, r);
#ifdef DDTREE
fprintf(stderr, "new_field: %i (soffset)\n", soffset);
return new;
}
-struct treenode *new_number(long val, int exprcount)
+struct treenode *new_number(long val)
{
struct treenode *new;
/* TODO: maximal groesse? */
fprintf(stderr, "new_number: %i\n", val);
#endif
new->val = val;
- new->exprcount = exprcount;
memset(t, 0, BUFMAX);
sprintf(t, "%li", val);
new->name = t;
{
if(node == TREENULL) return;
write_indent(indent);
- fprintf(stderr, "%s @ %%%s (%i). \"%s\"\n", o_names[node->op], node->reg, node->exprcount, node->name == (char*) NULL ? "" : node->name);
+ fprintf(stderr, "%s @ %%%s. \"%s\"\n", o_names[node->op], node->reg, node->name == (char*) NULL ? "" : node->name);
if(node->kids[0] != TREENULL) {
write_tree(node->kids[0], indent+1);
}