version 1.17, 2011/09/28 19:27:18 |
version 1.18, 2014/12/19 19:28:55 |
|
|
f->re[info(v)].ltype = type(v); |
f->re[info(v)].ltype = type(v); |
f->re[info(v)].lval.np = right(v); |
f->re[info(v)].lval.np = right(v); |
while (f->accept >= maxsetvec) { /* guessing here! */ |
while (f->accept >= maxsetvec) { /* guessing here! */ |
maxsetvec *= 4; |
setvec = reallocarray(setvec, maxsetvec, |
setvec = (int *) realloc(setvec, maxsetvec * sizeof(int)); |
4 * sizeof(int)); |
tmpset = (int *) realloc(tmpset, maxsetvec * sizeof(int)); |
tmpset = reallocarray(tmpset, maxsetvec, |
|
4 * sizeof(int)); |
if (setvec == 0 || tmpset == 0) |
if (setvec == 0 || tmpset == 0) |
overflo("out of space in cfoll()"); |
overflo("out of space in cfoll()"); |
|
maxsetvec *= 4; |
} |
} |
for (i = 0; i <= f->accept; i++) |
for (i = 0; i <= f->accept; i++) |
setvec[i] = 0; |
setvec[i] = 0; |
|
|
LEAF |
LEAF |
lp = info(p); /* look for high-water mark of subscripts */ |
lp = info(p); /* look for high-water mark of subscripts */ |
while (setcnt >= maxsetvec || lp >= maxsetvec) { /* guessing here! */ |
while (setcnt >= maxsetvec || lp >= maxsetvec) { /* guessing here! */ |
maxsetvec *= 4; |
setvec = reallocarray(setvec, maxsetvec, |
setvec = (int *) realloc(setvec, maxsetvec * sizeof(int)); |
4 * sizeof(int)); |
tmpset = (int *) realloc(tmpset, maxsetvec * sizeof(int)); |
tmpset = reallocarray(tmpset, maxsetvec, |
|
4 * sizeof(int)); |
if (setvec == 0 || tmpset == 0) |
if (setvec == 0 || tmpset == 0) |
overflo("out of space in first()"); |
overflo("out of space in first()"); |
|
maxsetvec *= 4; |
} |
} |
if (type(p) == EMPTYRE) { |
if (type(p) == EMPTYRE) { |
setvec[lp] = 0; |
setvec[lp] = 0; |
|
|
|
|
assert(c == HAT || c < NCHARS); |
assert(c == HAT || c < NCHARS); |
while (f->accept >= maxsetvec) { /* guessing here! */ |
while (f->accept >= maxsetvec) { /* guessing here! */ |
maxsetvec *= 4; |
setvec = reallocarray(setvec, maxsetvec, 4 * sizeof(int)); |
setvec = (int *) realloc(setvec, maxsetvec * sizeof(int)); |
tmpset = reallocarray(tmpset, maxsetvec, 4 * sizeof(int)); |
tmpset = (int *) realloc(tmpset, maxsetvec * sizeof(int)); |
|
if (setvec == 0 || tmpset == 0) |
if (setvec == 0 || tmpset == 0) |
overflo("out of space in cgoto()"); |
overflo("out of space in cgoto()"); |
|
maxsetvec *= 4; |
} |
} |
for (i = 0; i <= f->accept; i++) |
for (i = 0; i <= f->accept; i++) |
setvec[i] = 0; |
setvec[i] = 0; |
|
|
q = f->re[p[i]].lfollow; |
q = f->re[p[i]].lfollow; |
for (j = 1; j <= *q; j++) { |
for (j = 1; j <= *q; j++) { |
if (q[j] >= maxsetvec) { |
if (q[j] >= maxsetvec) { |
maxsetvec *= 4; |
setvec = reallocarray(setvec, |
setvec = (int *) realloc(setvec, maxsetvec * sizeof(int)); |
maxsetvec, 4 * sizeof(int)); |
tmpset = (int *) realloc(tmpset, maxsetvec * sizeof(int)); |
tmpset = reallocarray(tmpset, |
|
maxsetvec, 4 * sizeof(int)); |
if (setvec == 0 || tmpset == 0) |
if (setvec == 0 || tmpset == 0) |
overflo("cgoto overflow"); |
overflo("cgoto overflow"); |
|
maxsetvec *= 4; |
} |
} |
if (setvec[q[j]] == 0) { |
if (setvec[q[j]] == 0) { |
setcnt++; |
setcnt++; |