1 char rcsid_delta[] = "$Id$";
12 ASSIGNCOST(l, r) DeltaPtr l; DeltaPtr r;
17 for (i = 0; i < DELTAWIDTH; i++) {
26 ADDCOST(l, r) DeltaPtr l; DeltaPtr r;
31 for (i = 0; i < DELTAWIDTH; i++) {
40 MINUSCOST(l, r) DeltaPtr l; DeltaPtr r;
45 for (i = 0; i < DELTAWIDTH; i++) {
54 ZEROCOST(x) DeltaPtr x;
59 for (i = 0; i < DELTAWIDTH; i++) {
68 LESSCOST(l, r) DeltaPtr l; DeltaPtr r;
73 for (i = 0; i < DELTAWIDTH; i++) {
76 } else if (l[i] > r[i]) {
87 EQUALCOST(l, r) DeltaPtr l; DeltaPtr r;
92 for (i = 0; i < DELTAWIDTH; i++) {
105 CHECKDIVERGE(c, its, nt, base) DeltaPtr c; Item_Set its; int nt; int base;
109 if (prevent_divergence <= 0) {
114 for (i = 0; i < DELTAWIDTH; i++) {
115 if (c[i] > prevent_divergence) {
118 nonTerminalName(ntname, nt);
119 nonTerminalName(basename, base);
120 fprintf(stderr, "ERROR: The grammar appears to diverge\n");
121 fprintf(stderr, "\tRelative Costs: %s(0), %s(%d)\n", basename, ntname, c[i]);
122 fprintf(stderr, "\tOffending Operator: %s\n", its->op->name);
123 fprintf(stderr, "\tOffending Tree: ");
124 printRepresentative(stderr, its);
125 fprintf(stderr, "\n");
130 } else if (PRINCIPLECOST(c) > prevent_divergence) {
133 nonTerminalName(ntname, nt);
134 nonTerminalName(basename, base);
135 fprintf(stderr, "ERROR: The grammar appears to diverge\n");
136 fprintf(stderr, "\tRelative Costs: %s(0), %s(%d)\n", basename, ntname, PRINCIPLECOST(c));
137 fprintf(stderr, "\tOffending Operator: %s\n", its->op->name);
138 fprintf(stderr, "\tOffending Tree: ");
139 printRepresentative(stderr, its);
140 fprintf(stderr, "\n");