static base_number pack_vector (vector_number vector) { vector_number i = order[vector]; int j; int t = tally[i]; int loc = 0; base_number *from = froms[i]; base_number *to = tos[i]; unsigned int *conflict_to = conflict_tos[i];
aver (t != 0); for (j = lowzero - from[0]; ; j++) { int k; bool ok = true; aver (j < table_size); for (k = 0; ok && k < t; k++) { loc = j + state_number_as_int (from[k]); if (table_size <= loc) table_grow (loc); if (table[loc] != 0) ok = false; } for (k = 0; ok && k < vector; k++) if (pos[k] == j) ok = false; I don't know this code's role!!! delete it bison can complete it's task. if (ok) { for (k = 0; k < t; k++) { loc = j + from[k]; table[loc] = to[k]; if (nondeterministic_parser && conflict_to != NULL) conflict_table[loc] = conflict_to[k]; check[loc] = from[k]; } while (table[lowzero] != 0) lowzero++; if (loc > high) high = loc; aver (BASE_MINIMUM <= j && j <= BASE_MAXIMUM); return j; } } } _______________________________________________ help-bison@gnu.org http://lists.gnu.org/mailman/listinfo/help-bison