| char rcsid_pattern[] = "$Id$"; | |
| #include <stdio.h> | |
| #include "b.h" | |
| Pattern | |
| newPattern(op) Operator op; | |
| { | |
| Pattern p; | |
| p = (Pattern) zalloc(sizeof(struct pattern)); | |
| p->op = op; | |
| return p; | |
| } | |
| void | |
| dumpPattern(p) Pattern p; | |
| { | |
| int i; | |
| if (!p) { | |
| printf("[no-pattern]"); | |
| return; | |
| } | |
| if (p->op) { | |
| printf("%s", p->op->name); | |
| if (p->op->arity > 0) { | |
| printf("("); | |
| for (i = 0; i < p->op->arity; i++) { | |
| printf("%s ", p->children[i]->name); | |
| } | |
| printf(")"); | |
| } | |
| } else { | |
| printf("%s", p->children[0]->name); | |
| } | |
| } |