зеркало из https://github.com/mozilla/gecko-dev.git
49 строки
764 B
C
49 строки
764 B
C
char rcsid_operator[] = "$Id: operator.c,v 1.1 1998/12/17 06:36:48 fur%netscape.com Exp $";
|
|
|
|
#include "b.h"
|
|
#include <stdio.h>
|
|
|
|
int max_arity = -1;
|
|
|
|
List operators;
|
|
List leaves;
|
|
|
|
Operator
|
|
newOperator(name, num, arity) char *name; OperatorNum num; ArityNum arity;
|
|
{
|
|
Operator op;
|
|
|
|
assert(arity <= MAX_ARITY);
|
|
op = (Operator) zalloc(sizeof(struct operator));
|
|
assert(op);
|
|
op->name = name;
|
|
op->num = num;
|
|
op->arity = arity;
|
|
|
|
operators = newList(op, operators);
|
|
|
|
return op;
|
|
}
|
|
|
|
void
|
|
dumpOperator_s(op) Operator op;
|
|
{
|
|
printf("Op: %s(%d)=%d\n", op->name, op->arity, op->num);
|
|
}
|
|
|
|
void
|
|
dumpOperator(op, full) Operator op; int full;
|
|
{
|
|
dumpOperator_s(op);
|
|
if (full) {
|
|
dumpTable(op->table, 0);
|
|
}
|
|
}
|
|
|
|
void
|
|
dumpOperator_l(op) Operator op;
|
|
{
|
|
dumpOperator(op, 1);
|
|
}
|
|
|