exit(4);
}
- if(tab_lookup(tab, ident, type) != SYMNULL) {
+ if(tab_lookup(tab, ident, type) != SYMNULL || (type == S_VAR && tab_lookup(tab, ident, S_PARM) != SYMNULL)) {
if(check) {
fprintf(stderr, "Identifier doppelt vorhanden: \"%s\"\n", ident);
exit(3);
void write_tree(struct treenode *node, int indent)
{
+ 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);
if(node->kids[0] != TREENULL) {